Skip to content
This repository was archived by the owner on Mar 2, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
f9e925b
Add 00-setup/00-setup-manifest.sql
dilyand May 21, 2018
e85fcd9
Add 01-page-views/00-setup.sql
dilyand May 21, 2018
d398bb7
Rename 01-page-views/00-setup.sql to 01-page-views/00-setup-page-view…
dilyand May 21, 2018
e80c682
Ensure seed timestamp in manifest is at start of day
dilyand May 21, 2018
8176b06
Fix typo
dilyand May 21, 2018
5470772
Ensure manifest seed is a valid etl_tstamp
dilyand May 21, 2018
2d6d257
Typo
dilyand May 21, 2018
32edc0f
Formatting
dilyand May 21, 2018
c054e81
Add 01-page-views/01-select-etl-tstamps.sql
dilyand May 21, 2018
1459de3
Add 01-page-views/02-select-event-ids.sql
dilyand May 22, 2018
5b8b1f5
Add 01-page-views/03-select-page-view-ids.sql
dilyand May 22, 2018
bc8a46f
Add 01-page-views/04-select-ids.sql
dilyand May 22, 2018
8bc2ae2
Add 01-page-views/05-page-view-events.sql
dilyand May 22, 2018
71f55c3
Typos
dilyand May 22, 2018
3bd7d70
Add 01-page-views/06-page-view-time.sql
dilyand May 22, 2018
af819e0
Add 01-page-views/07-page-view-rank.sql
dilyand May 22, 2018
e367d85
Typo
dilyand May 22, 2018
01acf90
Typo
dilyand May 22, 2018
e201b65
Typo
dilyand May 23, 2018
f6a25e3
Add 01-page-views/08-page-views.sql
dilyand May 23, 2018
585335a
Typo
dilyand May 23, 2018
0cac312
Ensure quarantined data is not missed
dilyand May 23, 2018
68f4202
Consistency
dilyand May 23, 2018
f5e23c1
Consistency
dilyand May 23, 2018
1f60379
Consistency
dilyand May 23, 2018
dfa6f4d
Add 01-page-views/09-delete-page-views.sql
dilyand May 23, 2018
f06e012
Add 01-page-views/10-append-page-views.sql
dilyand May 23, 2018
693750b
Add 01-page-views/11-append-manifest.sql
dilyand May 23, 2018
7a45799
Add 01-page-views/12-cleanup.sql
dilyand May 23, 2018
9d8ffbe
Add 01-page-views/13-vacuum.sql
dilyand May 23, 2018
f536152
Add 01-page-views/14-analyze.sql
dilyand May 23, 2018
24eded3
Restructure repo
dilyand May 23, 2018
5da4080
Add playbook/incremental-web-model.yml.tmpl
dilyand May 23, 2018
581cad5
Make templateable
dilyand May 23, 2018
c183816
Remove permissions step
dilyand May 23, 2018
dd183bb
Add playbook/incremental-web-model-manifest-setup.yml.tmpl
dilyand May 23, 2018
996625f
Make templateable
dilyand May 23, 2018
d96fefc
Make SQL queries templateable
dilyand May 25, 2018
85c5ec4
Restructure repo
dilyand Jul 4, 2018
adbc84e
Update playbooks/incremental-web-model-manifest-setup.yml.tmpl
dilyand Jul 4, 2018
a0e4162
Rename playbook
dilyand Jul 4, 2018
d194cd6
Patch playbooks/incremental-page-views-manifest.yml.tmpl
dilyand Jul 4, 2018
06e8885
Update playbooks/incremental-web-model.yml.tmpl
dilyand Jul 4, 2018
4fba8b7
Add playbooks/incremental-sessions-manifest.yml.tmpl
dilyand Jul 4, 2018
63e0ae0
Formatting
dilyand Jul 4, 2018
b3ad860
Add playbooks/incremental-sessions.yml.tmpl
dilyand Jul 4, 2018
02da7e6
Formatting
dilyand Jul 4, 2018
df86647
Add playbooks/incremental-users-manifest.yml.tmpl
dilyand Jul 4, 2018
5439a64
Add playbooks/incremental-users.yml.tmpl
dilyand Jul 4, 2018
b9592fb
Update sql/incremental-web-model/00-setup/00-setup-manifest.sql
dilyand Jul 4, 2018
7fd02aa
Add sql/incremental-web-model/00-setup/01-setup-sessions-manifest.sql
dilyand Jul 4, 2018
07a0282
Add sql/incremental-web-model/00-setup/02-setup-users-manifest.sql
dilyand Jul 4, 2018
2ed15d1
Update sql/incremental-web-model/01-page-views/00-setup-page-views.sql
dilyand Jul 4, 2018
66b8a24
Update sql/incremental-web-model/01-page-views/01-select-etl-tstamps.sql
dilyand Jul 4, 2018
8f60201
Update sql/incremental-web-model/01-page-views/02-select-event-ids.sql
dilyand Jul 4, 2018
9dc6002
Update sql/incremental-web-model/01-page-views/03-select-page-view-id…
dilyand Jul 4, 2018
708af3e
Update sql/incremental-web-model/01-page-views/04-select-ids.sql
dilyand Jul 4, 2018
aa946f0
Update sql/incremental-web-model/01-page-views/05-page-view-events.sql
dilyand Jul 4, 2018
5672306
Update sql/incremental-web-model/01-page-views/06-page-view-time.sql
dilyand Jul 4, 2018
042ae1c
Update sql/incremental-web-model/01-page-views/07-page-view-rank.sql
dilyand Jul 4, 2018
dc61411
Add sql/incremental-web-model/01-page-views/08-events-scroll-depth.sql
dilyand Jul 4, 2018
7d0fc79
Update sql/incremental-web-model/01-page-views/08-page-views.sql
dilyand Jul 4, 2018
766f840
Update sql/incremental-web-model/01-page-views/09-delete-page-views.sql
dilyand Jul 4, 2018
d081c37
Update sql/incremental-web-model/01-page-views/10-append-page-views.sql
dilyand Jul 4, 2018
4b6e609
Update sql/incremental-web-model/01-page-views/11-append-manifest.sql
dilyand Jul 4, 2018
cae3b89
Update sql/incremental-web-model/01-page-views/12-cleanup.sql
dilyand Jul 4, 2018
ef741d8
Update sql/incremental-web-model/01-page-views/13-vacuum.sql
dilyand Jul 4, 2018
df8e1c1
Update sql/incremental-web-model/01-page-views/14-analyze.sql
dilyand Jul 4, 2018
b615656
Add sql/incremental-web-model/02-sessions/00-setup-sessions.sql
dilyand Jul 4, 2018
7b1003f
Add sql/incremental-web-model/02-sessions/01-select-page-view-ids.sql
dilyand Jul 4, 2018
3cbf5f1
Add sql/incremental-web-model/02-sessions/02-sessions.sql
dilyand Jul 4, 2018
a37ec4c
Add sql/incremental-web-model/02-sessions/03-delete-sessions.sql
dilyand Jul 4, 2018
099f03c
Add sql/incremental-web-model/02-sessions/04-append-sessions.sql
dilyand Jul 4, 2018
3810a1b
Add sql/incremental-web-model/02-sessions/05-populate-sessions-manife…
dilyand Jul 4, 2018
fbdb494
Add sql/incremental-web-model/02-sessions/06-cleanup.sql
dilyand Jul 4, 2018
5fc1a6e
Add sql/incremental-web-model/02-sessions/07-vacuum.sql
dilyand Jul 4, 2018
8aad9de
Add sql/incremental-web-model/02-sessions/08-analyze.sql
dilyand Jul 4, 2018
cc9a012
Add sql/incremental-web-model/03-users/00-setup-users.sql
dilyand Jul 4, 2018
d53c2e4
Add sql/incremental-web-model/03-users/01-select-session-ids.sql
dilyand Jul 4, 2018
49bfece
Add sql/incremental-web-model/03-users/02-users.sql
dilyand Jul 4, 2018
cb0da95
Add sql/incremental-web-model/03-users/03-delete-users.sql
dilyand Jul 4, 2018
aac95d5
Add sql/incremental-web-model/03-users/04-append-users.sql
dilyand Jul 4, 2018
0e66878
Add sql/incremental-web-model/03-users/05-populate-users-manifest.sql
dilyand Jul 4, 2018
fb14cb9
Add sql/incremental-web-model/03-users/06-cleanup.sql
dilyand Jul 4, 2018
1e85657
Add sql/incremental-web-model/03-users/07-vacuum.sql
dilyand Jul 4, 2018
411cd4f
Add sql/incremental-web-model/03-users/08-analyze.sql
dilyand Jul 4, 2018
b46e9eb
Formatting & indentation
dilyand Jul 4, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:output_schema: # insert schema name (default: derived)
:start_date: # insert start date (must be a valid Redshift DATE, eg 2018-01-01)
:steps:
- :name: 00-setup-page-views-manifest
:queries:
- :name: 00-setup-page-views-manifest
:file: incremental-web-model/00-setup/00-setup-page-views-manifest.sql
:template: true
95 changes: 95 additions & 0 deletions incremental/sql-runner/playbooks/incremental-page-views.yml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:scratch_schema: # insert schema name (default: scratch)
:output_schema: # insert schema name (default: derived)
:update_cadence: # insert time period (must be a valid Redshift INTERVAL, eg 1 week)
:start_date: # insert start date (must be a valid Redshift DATE, eg 2018-01-01)
:steps:
- :name: 00-setup-page-views
:queries:
- :name: 00-setup-page-views
:file: incremental-web-model/01-page-views/00-setup-page-views.sql
:template: true
- :name: 01-select-etl-tstamps
:queries:
- :name: 01-select-etl-tstamps
:file: incremental-web-model/01-page-views/01-select-etl-tstamps.sql
:template: true
- :name: 02-select-event-ids
:queries:
- :name: 02-select-event-ids
:file: incremental-web-model/01-page-views/02-select-event-ids.sql
:template: true
- :name: 03-select-page-view-ids
:queries:
- :name: 03-select-page-view-ids
:file: incremental-web-model/01-page-views/03-select-page-view-ids.sql
:template: true
- :name: 04-select-ids
:queries:
- :name: 04-select-ids
:file: incremental-web-model/01-page-views/04-select-ids.sql
:template: true
- :name: 05-page-view-events
:queries:
- :name: 05-page-view-events
:file: incremental-web-model/01-page-views/05-page-view-events.sql
:template: true
- :name: 06-page-view-time
:queries:
- :name: 06-page-view-time
:file: incremental-web-model/01-page-views/06-page-view-time.sql
:template: true
- :name: 07-page-view-rank
:queries:
- :name: 07-page-view-rank
:file: incremental-web-model/01-page-views/07-page-view-rank.sql
:template: true
- :name: 08-events-scroll-depth
:queries:
- :name: 08-events-scroll-depth
:file: incremental-web-model/01-page-views/08-events-scroll-depth.sql
:template: true
- :name: 09-page-views
:queries:
- :name: 09-page-views
:file: incremental-web-model/01-page-views/09-page-views.sql
:template: true
- :name: 10-delete-page-views
:queries:
- :name: 10-delete-page-views
:file: incremental-web-model/01-page-views/10-delete-page-views.sql
:template: true
- :name: 11-append-page-views
:queries:
- :name: 11-append-page-views
:file: incremental-web-model/01-page-views/11-append-page-views.sql
:template: true
- :name: 12-append-manifest
:queries:
- :name: 12-append-manifest
:file: incremental-web-model/01-page-views/12-append-manifest.sql
:template: true
- :name: 13-cleanup
:queries:
- :name: 13-cleanup
:file: incremental-web-model/01-page-views/13-cleanup.sql
:template: true
- :name: 14-vacuum
:queries:
- :name: 14-vacuum
:file: incremental-web-model/01-page-views/14-vacuum.sql
:template: true
- :name: 15-analyze
:queries:
- :name: 15-analyze
:file: incremental-web-model/01-page-views/15-analyze.sql
:template: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:output_schema: # insert schema name (default: derived)
:start_date: # insert start date (must be a valid Redshift DATE, eg 2018-01-01)
:steps:
- :name: 01-setup-sessions-manifest
:queries:
- :name: 01-setup-sessions-manifest
:file: incremental-web-model/00-setup/01-setup-sessions-manifest.sql
:template: true
59 changes: 59 additions & 0 deletions incremental/sql-runner/playbooks/incremental-sessions.yml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:scratch_schema: # insert schema name (default: scratch)
:output_schema: # insert schema name (default: derived)
:update_cadence: # insert time period (must be a valid Redshift INTERVAL, eg 1 week)
:steps:
- :name: 00-setup-sessions
:queries:
- :name: 00-setup-sessions
:file: incremental-web-model/02-sessions/00-setup-sessions.sql
:template: true
- :name: 01-select-page-views
:queries:
- :name: 01-select-page-view-ids
:file: incremental-web-model/02-sessions/01-select-page-view-ids.sql
:template: true
- :name: 02-sessions
:queries:
- :name: 02-sessions
:file: incremental-web-model/02-sessions/02-sessions.sql
:template: true
- :name: 03-delete-sessions
:queries:
- :name: 03-delete-sessions
:file: incremental-web-model/02-sessions/03-delete-sessions.sql
:template: true
- :name: 04-append-sessions
:queries:
- :name: 04-append-sessions
:file: incremental-web-model/02-sessions/04-append-sessions.sql
:template: true
- :name: 05-populate-sessions-manifest
:queries:
- :name: 05-populate-sessions-manifest
:file: incremental-web-model/02-sessions/05-populate-sessions-manifest.sql
:template: true
- :name: 06-cleanup
:queries:
- :name: 06-cleanup
:file: incremental-web-model/02-sessions/06-cleanup.sql
:template: true
- :name: 07-vacuum
:queries:
- :name: 07-vacuum
:file: incremental-web-model/02-sessions/07-vacuum.sql
:template: true
- :name: 08-analyze
:queries:
- :name: 08-analyze
:file: incremental-web-model/02-sessions/08-analyze.sql
:template: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:output_schema: # insert schema name (default: derived)
:start_date: # insert start date (must be a valid Redshift DATE, eg 2018-01-01)
:steps:
- :name: 02-setup-users-manifest
:queries:
- :name: 02-setup-users-manifest
:file: incremental-web-model/00-setup/02-setup-users-manifest.sql
:template: true
59 changes: 59 additions & 0 deletions incremental/sql-runner/playbooks/incremental-users.yml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
:targets:
- :name: # insert name
:type: redshift
:host: # insert host
:database: # insert database name (default: snowplow)
:port: # insert database port (default: 5439)
:username: # insert Redshift user name (default: datamodeling)
:password: # insert Redshift user password
:variables:
:input_schema: # insert schema name (default: atomic)
:scratch_schema: # insert schema name (default: scratch)
:output_schema: # insert schema name (default: derived)
:update_cadence: # insert time period (must be a valid Redshift INTERVAL, eg 1 week)
:steps:
- :name: 00-setup-users
:queries:
- :name: 00-setup-users
:file: incremental-web-model/03-users/00-setup-users.sql
:template: true
- :name: 01-select-session-ids
:queries:
- :name: 01-select-session-ids
:file: incremental-web-model/03-users/01-select-session-ids.sql
:template: true
- :name: 02-users
:queries:
- :name: 02-users
:file: incremental-web-model/03-users/02-users.sql
:template: true
- :name: 03-delete-users
:queries:
- :name: 03-delete-users
:file: incremental-web-model/03-users/03-delete-users.sql
:template: true
- :name: 04-append-users
:queries:
- :name: 04-append-users
:file: incremental-web-model/03-users/04-append-users.sql
:template: true
- :name: 05-populate-users-manifest
:queries:
- :name: 05-populate-users-manifest
:file: incremental-web-model/03-users/05-populate-users-manifest.sql
:template: true
- :name: 06-cleanup
:queries:
- :name: 06-cleanup
:file: incremental-web-model/03-users/06-cleanup.sql
:template: true
- :name: 07-vacuum
:queries:
- :name: 07-vacuum
:file: incremental-web-model/03-users/07-vacuum.sql
:template: true
- :name: 08-analyze
:queries:
- :name: 08-analyze
:file: incremental-web-model/03-users/08-analyze.sql
:template: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Create and seed a manifest table for the page views
** job.
*/

-- Create the table if it doesn't exist
CREATE TABLE IF NOT EXISTS {{.output_schema}}.page_views_manifest (
etl_tstamp TIMESTAMP ENCODE ZSTD,
CONSTRAINT {{.output_schema}}_page_views_manifest_pk PRIMARY KEY(etl_tstamp)
)
DISTSTYLE ALL
SORTKEY(etl_tstamp);

-- Seed the manifest table
INSERT INTO {{.output_schema}}.page_views_manifest(etl_tstamp) (
SELECT
MIN(etl_tstamp)
FROM
{{.input_schema}}.events
WHERE
DATE_TRUNC('day', etl_tstamp) = DATE_TRUNC('day', '{{.start_date}}'::TIMESTAMP)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Create and seed a manifest table for the sessions
** job.
*/

-- Create the table if it doesn't exist
CREATE TABLE IF NOT EXISTS {{.output_schema}}.sessions_manifest (
page_view_start_time TIMESTAMP ENCODE ZSTD,
CONSTRAINT {{.output_schema}}_sessions_manifest_pk PRIMARY KEY(page_view_start_time)
)
DISTKEY(page_view_start_time)
SORTKEY(page_view_start_time);

-- Seed the manifest table
INSERT INTO {{.output_schema}}.sessions_manifest (
SELECT
MIN(page_view_start_time)
FROM
{{.output_schema}}.page_views
WHERE
DATE_TRUNC('day', page_view_start_time) = DATE_TRUNC('day', '{{.start_date}}'::TIMESTAMP)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Create and seed a manifest table for the users
** job.
*/

-- Create the table if it doesn't exist
CREATE TABLE IF NOT EXISTS {{.output_schema}}.users_manifest (
session_start_time TIMESTAMP ENCODE ZSTD,
CONSTRAINT {{.output_schema}}_users_manifest_pk PRIMARY KEY(session_start_time)
)
DISTKEY(session_start_time)
SORTKEY(session_start_time);

-- Seed the manifest table
INSERT INTO {{.output_schema}}.users_manifest (
SELECT
MIN(session_start_time)
FROM
{{.output_schema}}.sessions
WHERE
DATE_TRUNC('day', session_start_time) = DATE_TRUNC('day', '{{.start_date}}'::TIMESTAMP)
);
Loading