mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-23 10:51:30 +00:00
106 lines
3.5 KiB
TypeScript
106 lines
3.5 KiB
TypeScript
export const newTableCommand = `DROP SCHEMA IF EXISTS cosmosdb_tutorial CASCADE;
|
|
CREATE SCHEMA cosmosdb_tutorial;
|
|
SET search_path to cosmosdb_tutorial;
|
|
CREATE TABLE github_users
|
|
(
|
|
user_id bigint,
|
|
url text,
|
|
login text,
|
|
avatar_url text,
|
|
gravatar_id text,
|
|
display_login text
|
|
);
|
|
CREATE TABLE github_events
|
|
(
|
|
event_id bigint,
|
|
event_type text,
|
|
event_public boolean,
|
|
repo_id bigint,
|
|
payload jsonb,
|
|
repo jsonb,
|
|
user_id bigint,
|
|
org jsonb,
|
|
created_at timestamp
|
|
);
|
|
CREATE INDEX event_type_index ON github_events (event_type);
|
|
CREATE INDEX payload_index ON github_events USING GIN (payload jsonb_path_ops);
|
|
`;
|
|
|
|
export const newTableCommandForDisplay = `DROP SCHEMA IF EXISTS cosmosdb_tutorial CASCADE;
|
|
CREATE SCHEMA cosmosdb_tutorial;
|
|
|
|
-- Using schema created for tutorial
|
|
SET search_path to cosmosdb_tutorial;
|
|
|
|
CREATE TABLE github_users
|
|
(
|
|
user_id bigint,
|
|
url text,
|
|
login text,
|
|
avatar_url text,
|
|
gravatar_id text,
|
|
display_login text
|
|
);
|
|
|
|
CREATE TABLE github_events
|
|
(
|
|
event_id bigint,
|
|
event_type text,
|
|
event_public boolean,
|
|
repo_id bigint,
|
|
payload jsonb,
|
|
repo jsonb,
|
|
user_id bigint,
|
|
org jsonb,
|
|
created_at timestamp
|
|
);
|
|
|
|
--Create indexes on events table
|
|
CREATE INDEX event_type_index ON github_events (event_type);
|
|
CREATE INDEX payload_index ON github_events USING GIN (payload jsonb_path_ops);`;
|
|
|
|
export const distributeTableCommand = `SET search_path to cosmosdb_tutorial;
|
|
SELECT create_distributed_table('github_users', 'user_id');
|
|
SELECT create_distributed_table('github_events', 'user_id');
|
|
`;
|
|
|
|
export const distributeTableCommandForDisplay = `-- Using schema created for the tutorial
|
|
SET search_path to cosmosdb_tutorial;
|
|
|
|
SELECT create_distributed_table('github_users', 'user_id');
|
|
SELECT create_distributed_table('github_events', 'user_id');`;
|
|
|
|
export const loadDataCommand = `SET search_path to cosmosdb_tutorial;
|
|
\\COPY github_users FROM PROGRAM 'wget -q -O - "$@" "https://examples.citusdata.com/users.csv"' WITH (FORMAT CSV);
|
|
\\COPY github_events FROM PROGRAM 'wget -q -O - "$@" "https://examples.citusdata.com/events.csv"' WITH (FORMAT CSV);
|
|
`;
|
|
|
|
export const loadDataCommandForDisplay = `-- Using schema created for the tutorial
|
|
SET search_path to cosmosdb_tutorial;
|
|
|
|
-- download users and store in table
|
|
\\COPY github_users FROM PROGRAM 'wget -q -O - "$@" "https://examples.citusdata.com/users.csv"' WITH (FORMAT CSV);
|
|
\\COPY github_events FROM PROGRAM 'wget -q -O - "$@" "https://examples.citusdata.com/events.csv"' WITH (FORMAT CSV);`;
|
|
|
|
export const queryCommand = `SET search_path to cosmosdb_tutorial;
|
|
SELECT count(*) FROM github_users;
|
|
SELECT created_at, event_type, repo->>'name' AS repo_name
|
|
FROM github_events
|
|
WHERE user_id = 3861633;
|
|
SELECT date_trunc('hour', created_at) AS hour, sum((payload->>'distinct_size')::int) AS num_commits FROM github_events WHERE event_type = 'PushEvent' AND payload @> '{"ref":"refs/heads/master"}' GROUP BY hour ORDER BY hour;
|
|
`;
|
|
|
|
export const queryCommandForDisplay = `-- Using schema created for the tutorial
|
|
SET search_path to cosmosdb_tutorial;
|
|
|
|
-- count all rows (across shards)
|
|
SELECT count(*) FROM github_users;
|
|
|
|
-- Find all events for a single user.
|
|
SELECT created_at, event_type, repo->>'name' AS repo_name
|
|
FROM github_events
|
|
WHERE user_id = 3861633;
|
|
|
|
-- Find the number of commits on the master branch per hour
|
|
SELECT date_trunc('hour', created_at) AS hour, sum((payload->>'distinct_size')::int) AS num_commits FROM github_events WHERE event_type = 'PushEvent' AND payload @> '{"ref":"refs/heads/master"}' GROUP BY hour ORDER BY hour;`;
|