From 2563807db438844f941ab28224a573301fe3925a Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Thu, 29 Jul 2021 16:46:54 +0200 Subject: [PATCH 01/15] implement fundamentals for IncrementalPostgresOperator --- .../emails_blog.yml | 28 +++++++ demo/scripts/load_postgres.sql | 24 +++++- .../incremental_postgres_operator.py | 82 +++++++++++++++++++ viewflow/operators/template_incremental.sql | 48 +++++++++++ 4 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 demo/dags/viewflow-demo-incremental-update/emails_blog.yml create mode 100644 viewflow/operators/incremental_postgres_operator.py create mode 100644 viewflow/operators/template_incremental.sql diff --git a/demo/dags/viewflow-demo-incremental-update/emails_blog.yml b/demo/dags/viewflow-demo-incremental-update/emails_blog.yml new file mode 100644 index 0000000..2d63cf0 --- /dev/null +++ b/demo/dags/viewflow-demo-incremental-update/emails_blog.yml @@ -0,0 +1,28 @@ +owner: engineering@datacamp.com +type: IncrementalPostgresOperator +description: List the email addresses of all users who are subscribed to notifications in the category blog. +fields: + user_id: The user ID + notification_mode: The detailed mode for which notifications to receive + email: Email address of the user +schema: viewflow_demo +connection_id: postgres_demo +parameters: + initial: + min_time: '''2021-01-01 12:00:00''' + max_time: '''2022-01-01 12:00:00''' + update: + min_time: (SELECT max(updated_at) FROM viewflow_demo.emails_blog) + max_time: (SELECT (max(updated_at) + interval '1 day' * 31) FROM viewflow_demo.emails_blog) +content: |- + SELECT user_id, notification_mode, email, updated_at + FROM + viewflow_raw.notifications n + INNER JOIN viewflow_raw.users c + ON n.user_id = c.id + WHERE + category = 'blog' AND + notification_mode <> 'off' AND + updated_at >= {{min_time}} AND + updated_at < {{max_time}} +primary_key: [user_id, notification_mode] diff --git a/demo/scripts/load_postgres.sql b/demo/scripts/load_postgres.sql index c2dabb6..b192156 100755 --- a/demo/scripts/load_postgres.sql +++ b/demo/scripts/load_postgres.sql @@ -76,4 +76,26 @@ VALUES (8, 5, '2021-01-21 10:00:00', '2021-01-21 14:00:00'), (9, 1, '2021-02-15 10:00:00', '2021-02-16 14:00:00'), (10, 1, '2021-03-15 10:00:00', '2021-03-15 14:00:00'), -(10, 3, '2021-03-16 10:00:00', '2021-03-16 14:00:00'); \ No newline at end of file +(10, 3, '2021-03-16 10:00:00', '2021-03-16 14:00:00'); + + +DROP TABLE IF EXISTS viewflow_raw.notifications; +CREATE TABLE viewflow_raw.notifications ( + user_id INTEGER, + category VARCHAR, + notification_mode VARCHAR, + updated_at TIMESTAMP, + PRIMARY KEY (user_id, category) +); +INSERT INTO + viewflow_raw.notifications (user_id, category, notification_mode, updated_at) +VALUES +(1, 'daily', 'off', '2021-07-01 12:00:00'), +(1, 'recommended', 'off', '2021-07-01 12:00:00'), +(1, 'blog', 'selection', '2021-07-01 12:00:00'), +(2, 'daily', 'all', '2021-07-01 12:00:00'), +(2, 'recommended', 'off', '2021-07-01 12:00:00'), +(2, 'blog', 'all', '2021-07-01 12:00:00'), +(3, 'daily', 'selection', '2021-07-01 12:00:00'), +(3, 'recommended', 'selection', '2021-07-01 12:00:00'), +(3, 'blog', 'all', '2021-07-01 12:00:00'); diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py new file mode 100644 index 0000000..dbb4c63 --- /dev/null +++ b/viewflow/operators/incremental_postgres_operator.py @@ -0,0 +1,82 @@ +from jinja2 import Template +from pathlib import Path +import os + +from airflow.hooks.postgres_hook import PostgresHook # type: ignore +from airflow.providers.postgres.operators.postgres import PostgresOperator # type: ignore + + +SQL_TEMPLATE = ( + Path(os.path.dirname(os.path.realpath(__file__))) / "template_incremental.sql" +).read_text() + +class IncrementalPostgresOperator(PostgresOperator): + """ + Operator intended to efficiently maintain a materialized view on a regular basis. + The destination view is not made from scratch every time the operator runs, only recently created/updated rows from the data source are taken into account. + This is done by running a query with a filter: only rows between the min_time and max_time parameters are selected. + + The destination view is updated by upserting the resulting rows of the query. + Rows that have been changed (determined based on the primary key) are updated, new rows are inserted. + """ + + def __init__( + self, + conn_id, + task_id, + description, + content, + owner, + schema, + params, + primary_key, + fields, + alias, + default_args={} + ): + + self.content = content + self.parameters_initial = params["initial"] + self.parameters_update = params["update"] + + super().__init__( + sql=SQL_TEMPLATE, + task_id=task_id, + postgres_conn_id=conn_id, + email=owner, + owner=owner, + params={ + "task_id": task_id, + "fields": fields, + "description": description, + "schema": schema, + "alias": alias, + "primary_key": primary_key + }, + default_args=default_args + ) + + + + def execute(self, context): + """If the view doesn't yet exist, run the initial query. If it does, run the incremental update.""" + + # Does table already exist? + con = PostgresHook(postgres_conn_id=self.conn_id).get_conn() + con.cursor().execute(f"select exists(select * from information_schema.tables where table_schema='{self.schema}' and table_name='{self.task_id}');") + table_exists = con.cursor().fetchone()[0] + + # self.params["query"] must be set to self.content where + # the appropriate parameters (min_time and max_time) are filled out + if not table_exists: + # Run with initial parameters + self.params["query"] = Template(self.content.render( + params=self.parameters_initial + )) + else: + # Run with update parameters + self.params["query"] = Template(self.content.render( + params=self.parameters_update + )) + super().execute(context) + diff --git a/viewflow/operators/template_incremental.sql b/viewflow/operators/template_incremental.sql new file mode 100644 index 0000000..ed40684 --- /dev/null +++ b/viewflow/operators/template_incremental.sql @@ -0,0 +1,48 @@ + + + +-- Create staging table with new rows +DROP TABLE IF EXISTS {{ params.schema }}.{{ params.task_id }}_stage; +CREATE TABLE + {{ params.schema }}.{{ params.task_id }}_stage + AS ( + {{ params.query }} + ); + +-- Create target table if necessary +CREATE TABLE IF NOT EXISTS {{ params.schema }}.{{ params.task_id }} (LIKE {{ params.schema }}.{{ params.task_id }}_stage); + + + +BEGIN TRANSACTION; +-- Delete changed rows from target table +DELETE FROM {{ params.schema }}.{{ params.task_id }} AS target +USING {{ params.schema }}.{{ params.task_id }}_stage AS stage +WHERE + {% for column in params.primary_key %} + {% if loop.index > 1 %} + AND + {% endif %} + target.{{ column }} = stage.{{ column }} + {% endfor %}; + +-- Insert all rows from staging table into target table +INSERT INTO {{ params.schema }}.{{ params.task_id }} + SELECT * FROM {{ params.schema }}.{{ params.task_id }}_stage; +END TRANSACTION; + + +DROP TABLE {{ params.schema }}.{{ params.task_id }}_stage + + +-- Create aliases +{% if params.alias is not none %} +CREATE OR REPLACE VIEW {{ params.schema }}.{{ params.alias }} AS (SELECT * FROM {{ params.schema }}.{{ params.task_id }}) WITH NO SCHEMA BINDING; +{% endif %} + +-- Comment the table +-- NOTE: Add more metadata: owner, tags, alias +COMMENT ON TABLE {{ params.schema }}.{{ params.task_id }} IS '{{ params.description }}'; +{% for name, value in params.fields.items() %} +COMMENT ON COLUMN {{ params.schema }}.{{ params.task_id }}."{{ name }}" IS '{{ value }}'; +{% endfor %} From 2f031c916b3b67207f0e0c0943433004cbdcd436 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Fri, 30 Jul 2021 09:15:47 +0200 Subject: [PATCH 02/15] edit folder structure of DAGs in demo --- README.md | 6 +++--- .../emails_blog.yml | 0 .../top_3_user_xp_duplicate.Rmd | 0 demo/dags/viewflow-demo-4/config.yml | 8 -------- 4 files changed, 3 insertions(+), 11 deletions(-) rename demo/dags/{viewflow-demo-incremental-update => viewflow-demo-2}/emails_blog.yml (100%) rename demo/dags/{viewflow-demo-4 => viewflow-demo-3}/top_3_user_xp_duplicate.Rmd (100%) delete mode 100644 demo/dags/viewflow-demo-4/config.yml diff --git a/README.md b/README.md index db3a454..f939cce 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Do you want more context on why we built and released Viewflow? Check out our an ## Viewflow demo -We created a demo that shows how Viewflow works. The demo creates multiple DAGs: `viewflow-demo-1` through `viewflow-demo-4`. These DAGs create a total of four views in a local Postgres database. Check out the view files in [demo/dags/](./demo/dags/). Some of the following commands are different based on which Airflow version you're using. For new users, Airflow 2 is the best option. However, you can also run the demo using the older Airflow 1.10 version by using the indicated commands. +We created a demo that shows how Viewflow works. The demo creates multiple DAGs: `viewflow-demo-1` through `viewflow-demo-3`. These DAGs create a total of four views in a local Postgres database. Check out the view files in [demo/dags/](./demo/dags/). Some of the following commands are different based on which Airflow version you're using. For new users, Airflow 2 is the best option. However, you can also run the demo using the older Airflow 1.10 version by using the indicated commands. ### Run the demo We use `docker-compose` to instantiate an Apache Airflow instance and a Postgres database. The Airflow container and the Postgres container are defined in the `docker-compose-airflow.yml` files. The first time you want to run the demo, you will first have to build the Apache Airflow docker image that embeds Viewflow: @@ -28,7 +28,7 @@ docker-compose -f docker-compose-airflow2.yml up # Airflow 2 docker-compose -f docker-compose-airflow1.10.yml up # Airflow 1.10 ``` -Go to your local Apache Airflow instance on [http://localhost:8080](http://localhost:8080). There are four DAGs called `viewflow-demo-1` through `viewflow-demo-4`. Notice how Viewflow automatically generated these DAGs based on the example queries in the subfolders of [demo/dags/](./demo/dags/)! +Go to your local Apache Airflow instance on [http://localhost:8080](http://localhost:8080). There are three DAGs called `viewflow-demo-1` through `viewflow-demo-3`. Notice how Viewflow automatically generated these DAGs based on the example queries in the subfolders of [demo/dags/](./demo/dags/)! @@ -251,7 +251,7 @@ This default behaviour can be changed by adding a new function in [dependencies_ ### Rmd views -Rmd scripts can be used mostly like R scripts. For Rmd scripts, you do have to explicitly configure the automated reading and writing of tables by adding `automate_read_write: True` to the metadata. By default, the script is executed as is. The task [top_3_user_xp_duplicate.Rmd](./demo/dags/viewflow-demo-4/top_3_user_xp_duplicate.Rmd) contains an explanation of the usage of Rmd scripts. +Rmd scripts can be used mostly like R scripts. For Rmd scripts, you do have to explicitly configure the automated reading and writing of tables by adding `automate_read_write: True` to the metadata. By default, the script is executed as is. The task [top_3_user_xp_duplicate.Rmd](./demo/dags/viewflow-demo-3/top_3_user_xp_duplicate.Rmd) contains an explanation of the usage of Rmd scripts. # Contributing to Viewflow diff --git a/demo/dags/viewflow-demo-incremental-update/emails_blog.yml b/demo/dags/viewflow-demo-2/emails_blog.yml similarity index 100% rename from demo/dags/viewflow-demo-incremental-update/emails_blog.yml rename to demo/dags/viewflow-demo-2/emails_blog.yml diff --git a/demo/dags/viewflow-demo-4/top_3_user_xp_duplicate.Rmd b/demo/dags/viewflow-demo-3/top_3_user_xp_duplicate.Rmd similarity index 100% rename from demo/dags/viewflow-demo-4/top_3_user_xp_duplicate.Rmd rename to demo/dags/viewflow-demo-3/top_3_user_xp_duplicate.Rmd diff --git a/demo/dags/viewflow-demo-4/config.yml b/demo/dags/viewflow-demo-4/config.yml deleted file mode 100644 index a112000..0000000 --- a/demo/dags/viewflow-demo-4/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -default_args: - owner: data@datacamp.com - retries: 1 - catchup: false -schedule_interval: 0 6 * * * -start_date: "2021-07-15" -max_active_runs: 1 -catchup: false \ No newline at end of file From e267a21228052123c9f92c4d7009aeb6ddc9bab6 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Fri, 30 Jul 2021 09:47:09 +0200 Subject: [PATCH 03/15] implement adapter for incremental postgres operator --- .../adapters/postgresql/postgres_adapter.py | 25 +++++++++++++++++-- viewflow/create_dag.py | 12 ++++++--- .../incremental_postgres_operator.py | 10 ++++---- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/viewflow/adapters/postgresql/postgres_adapter.py b/viewflow/adapters/postgresql/postgres_adapter.py index 0e96716..96dbb9d 100644 --- a/viewflow/adapters/postgresql/postgres_adapter.py +++ b/viewflow/adapters/postgresql/postgres_adapter.py @@ -2,8 +2,10 @@ from jinja2 import Template from pathlib import Path from typing import Dict, Any +import logging from airflow.providers.postgres.operators.postgres import PostgresOperator # type: ignore -from airflow.models import BaseOperator +from airflow.models import BaseOperator # type: ignore +from viewflow.operators.incremental_postgres_operator import IncrementalPostgresOperator from ..post_execute_monkey_patch import monkey_post_execute SQL_TEMPLATE = ( @@ -30,6 +32,19 @@ def _get_postgres_operator(parsed_task: Dict[str, Any]) -> PostgresOperator: }, ) +def _get_incremental_postgres_operator(parsed_task: Dict[str, Any]) -> IncrementalPostgresOperator: + return IncrementalPostgresOperator( + conn_id=parsed_task["connection_id"], + task_id=parsed_task["task_id"], + description=parsed_task["description"], + content=parsed_task["content"], + owner=parsed_task["owner"], + schema=parsed_task["schema"], + params=parsed_task["parameters"], + primary_key=parsed_task["primary_key"], + fields=parsed_task["fields"], + alias=parsed_task.get("alias"), + ) def create_task(parsed_task: Dict[str, Any]): parsed_task["fields"] = { @@ -39,7 +54,13 @@ def create_task(parsed_task: Dict[str, Any]): None if "description" not in parsed_task else parsed_task["description"].strip() ) - operator = _get_postgres_operator(parsed_task) + if parsed_task["type"] == "PostgresOperator": + operator = _get_postgres_operator(parsed_task) + elif parsed_task["type"] == "IncrementalPostgresOperator": + operator = _get_incremental_postgres_operator(parsed_task) + else: + logging.error(f"Invalid operator type for Postgres adapter\nThe parsed_task:\n{parsed_task}") + operator.schema_name = parsed_task.get("schema") operator.conn_id = parsed_task.get("connection_id") operator.post_execute = monkey_post_execute.__get__(operator, BaseOperator) diff --git a/viewflow/create_dag.py b/viewflow/create_dag.py index 5c41121..2fc2971 100644 --- a/viewflow/create_dag.py +++ b/viewflow/create_dag.py @@ -37,14 +37,20 @@ DAG_CONFIG_FILE = "config.yml" OPERATORS = { "PostgresOperator": postgres_adapter.create_task, + "IncrementalPostgresOperator": postgres_adapter.create_task, "PythonToPostgresOperator": python_adapter.create_task, "RmdOperator": rmd_adapter.create_task, "ROperator": r_adapter.create_task } -PARSERS = {".yml": parse_yml, ".sql": parse_sql, ".py": parse_python, ".rmd": parse_rmd, ".r": parse_r} - -SQL_OPERATORS = ["PostgresOperator"] +PARSERS = { + ".yml": parse_yml, + ".yaml": parse_yml, + ".sql": parse_sql, + ".py": parse_python, + ".rmd": parse_rmd, + ".r": parse_r +} @dataclass diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py index dbb4c63..dfc3fef 100644 --- a/viewflow/operators/incremental_postgres_operator.py +++ b/viewflow/operators/incremental_postgres_operator.py @@ -12,12 +12,12 @@ class IncrementalPostgresOperator(PostgresOperator): """ - Operator intended to efficiently maintain a materialized view on a regular basis. - The destination view is not made from scratch every time the operator runs, only recently created/updated rows from the data source are taken into account. + Operator intended to efficiently update a materialized view on a regular basis. + The destination view is not made from scratch every time the operator runs, only recently inserted/updated rows from the data source are taken into account. This is done by running a query with a filter: only rows between the min_time and max_time parameters are selected. The destination view is updated by upserting the resulting rows of the query. - Rows that have been changed (determined based on the primary key) are updated, new rows are inserted. + Rows that have been changed (determined based on the primary key specified in the yml file) are updated, new rows are inserted. """ def __init__( @@ -66,8 +66,8 @@ def execute(self, context): con.cursor().execute(f"select exists(select * from information_schema.tables where table_schema='{self.schema}' and table_name='{self.task_id}');") table_exists = con.cursor().fetchone()[0] - # self.params["query"] must be set to self.content where - # the appropriate parameters (min_time and max_time) are filled out + # self.params["query"] must be set to the SELECT-statement with a filter that retrieves the new rows of the target view. + # It is set to self.content where the appropriate parameters (min_time and max_time) are filled out. if not table_exists: # Run with initial parameters self.params["query"] = Template(self.content.render( From 0e3df3cf33166d877e5e02e2f2b1e13e46e0971a Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Fri, 30 Jul 2021 16:14:48 +0200 Subject: [PATCH 04/15] add testcases for incremental postgres operator --- README.md | 8 +- demo/dags/viewflow-demo-2/emails_blog.yml | 15 ++- demo/scripts/load_postgres.sql | 18 ++-- img/viewflow-demo-2.png | Bin 206088 -> 0 bytes tests/adapters/test_postgres_incremental.py | 86 ++++++++++++++++++ tests/fixtures/load_postgres.sql | 32 ++++--- .../incremental_operator/config.yml | 4 + .../incremental_operator/emails_blog.yml | 27 ++++++ .../adapters/postgresql/postgres_adapter.py | 2 +- viewflow/create_dag.py | 5 + .../incremental_postgres_operator.py | 68 +++++++------- viewflow/operators/template_incremental.sql | 7 +- 12 files changed, 199 insertions(+), 73 deletions(-) delete mode 100644 img/viewflow-demo-2.png create mode 100644 tests/adapters/test_postgres_incremental.py create mode 100644 tests/projects/postgresql/incremental_operator/config.yml create mode 100644 tests/projects/postgresql/incremental_operator/emails_blog.yml diff --git a/README.md b/README.md index f939cce..3c744be 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,9 @@ docker-compose -f docker-compose-airflow1.10.yml up # Airflow 1.10 Go to your local Apache Airflow instance on [http://localhost:8080](http://localhost:8080). There are three DAGs called `viewflow-demo-1` through `viewflow-demo-3`. Notice how Viewflow automatically generated these DAGs based on the example queries in the subfolders of [demo/dags/](./demo/dags/)! - +TODO overview img - + By default, the DAGs are disabled. Turn the DAGs on by clicking on the button `Off`. This will trigger the DAGs. @@ -193,7 +193,7 @@ Viewflow expects some metadata that must be included in the SQL and Python files * **schema**: The name of the schema in which Viewflow creates the view. It's also used by Viewflow to create the dependencies. * **connection_id**: Airflow connection name used to connect to the database (See Section [*Create an Airflow connection to your destination*](https://github.com/datacamp/viewflow#create-an-airflow-connection-to-your-destination)). -The newly created view has the same name as the filename of the SQL query, Python script or R(md) script. +The newly created view has the same name as the filename (actually the file stem, without extension) of the SQL query, Python script or R(md) script. Viewflow materializes the view in the database with this name, so it must be unique over all DAGs! ### SQL views @@ -244,7 +244,7 @@ Please note that Viewflow expects the Python function that creates the view to h ### R views -Viewflow handles R scripts similar to the existing SQL and Python files. Additionally, there's an element of automatisation. You simply define the view in R code, Viewflow will automatically read the necessary tables and write the new view to the database. Note that you need to define the new view in the R script with the same name as the R script (which is also the name of the table where the view is materialized in the database). +Viewflow handles R scripts similar to the existing SQL and Python files. Additionally, there's an element of automatisation. You simply define the view in R code, Viewflow will automatically read the necessary tables and write the new view to the database. Note that you need to define the new view in the R script with the same name as the R script (which is also the name of the table of the materialized view in the database). By default, other tables are expected to be referenced as `.`. This default behaviour can be changed by adding a new function in [dependencies_r_patterns.py](./viewflow/parsers/dependencies_r_patterns.py) and adding a line `dependency_function: ` to the metadata of the R script. The script [user_xp_duplicate.R](./demo/dags/viewflow-demo-3/user_xp_duplicate.R) illustrates this. diff --git a/demo/dags/viewflow-demo-2/emails_blog.yml b/demo/dags/viewflow-demo-2/emails_blog.yml index 2d63cf0..7a1194c 100644 --- a/demo/dags/viewflow-demo-2/emails_blog.yml +++ b/demo/dags/viewflow-demo-2/emails_blog.yml @@ -1,6 +1,6 @@ owner: engineering@datacamp.com type: IncrementalPostgresOperator -description: List the email addresses of all users who are subscribed to notifications in the category blog. +description: For all users, list the email address and notification mode of the category blog. fields: user_id: The user ID notification_mode: The detailed mode for which notifications to receive @@ -9,20 +9,19 @@ schema: viewflow_demo connection_id: postgres_demo parameters: initial: - min_time: '''2021-01-01 12:00:00''' - max_time: '''2022-01-01 12:00:00''' + min_time: '''2020-01-01 12:00:00''' + max_time: '''2021-12-31 12:00:00''' update: min_time: (SELECT max(updated_at) FROM viewflow_demo.emails_blog) - max_time: (SELECT (max(updated_at) + interval '1 day' * 31) FROM viewflow_demo.emails_blog) + max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow_demo.emails_blog) content: |- SELECT user_id, notification_mode, email, updated_at FROM viewflow_raw.notifications n - INNER JOIN viewflow_raw.users c - ON n.user_id = c.id + INNER JOIN viewflow_raw.users u + ON n.user_id = u.id WHERE category = 'blog' AND - notification_mode <> 'off' AND updated_at >= {{min_time}} AND updated_at < {{max_time}} -primary_key: [user_id, notification_mode] +primary_key: [user_id] diff --git a/demo/scripts/load_postgres.sql b/demo/scripts/load_postgres.sql index b192156..02101b9 100755 --- a/demo/scripts/load_postgres.sql +++ b/demo/scripts/load_postgres.sql @@ -90,12 +90,12 @@ CREATE TABLE viewflow_raw.notifications ( INSERT INTO viewflow_raw.notifications (user_id, category, notification_mode, updated_at) VALUES -(1, 'daily', 'off', '2021-07-01 12:00:00'), -(1, 'recommended', 'off', '2021-07-01 12:00:00'), -(1, 'blog', 'selection', '2021-07-01 12:00:00'), -(2, 'daily', 'all', '2021-07-01 12:00:00'), -(2, 'recommended', 'off', '2021-07-01 12:00:00'), -(2, 'blog', 'all', '2021-07-01 12:00:00'), -(3, 'daily', 'selection', '2021-07-01 12:00:00'), -(3, 'recommended', 'selection', '2021-07-01 12:00:00'), -(3, 'blog', 'all', '2021-07-01 12:00:00'); + (1, 'daily', 'off', '2021-12-01 12:00:00'), + (1, 'recommended', 'off', '2021-12-01 12:00:00'), + (1, 'blog', 'selection', '2021-12-01 12:00:00'), + (2, 'daily', 'all', '2022-11-01 12:00:00'), + (2, 'recommended', 'off', '2022-11-01 12:00:00'), + (2, 'blog', 'all', '2022-11-01 12:00:00'), + (3, 'daily', 'selection', '2023-10-01 12:00:00'), + (3, 'recommended', 'selection', '2023-10-01 12:00:00'), + (3, 'blog', 'all', '2023-10-01 12:00:00'); diff --git a/img/viewflow-demo-2.png b/img/viewflow-demo-2.png deleted file mode 100644 index e4cd91d2c9a09cee40170ee15664b30677f4bb0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206088 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

a9-)CVO|-X4RkgnZbplF;6Effo02 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 diff --git a/tests/adapters/test_postgres_incremental.py b/tests/adapters/test_postgres_incremental.py new file mode 100644 index 0000000..cd9d735 --- /dev/null +++ b/tests/adapters/test_postgres_incremental.py @@ -0,0 +1,86 @@ +import viewflow +from datetime import datetime +import re + +from airflow.models import TaskInstance, Connection +from airflow.providers.postgres.hooks.postgres import PostgresHook +from airflow import settings +from airflow.utils import db + + +def _create_postgres_session(): + session = settings.Session() + conn = Connection( + conn_id="postgres_viewflow", + conn_type="postgres", + login="user", + password="passw0rd", + schema="viewflow", + host="localhost", + port=5432, + ) + db.merge_conn(conn, session) + return session + + +def test_incremental_updates(): + session = _create_postgres_session() + + dag = viewflow.create_dag("./tests/projects/postgresql/incremental_operator") + task = dag.get_task("emails_blog") + ti = TaskInstance(task, datetime(2020, 1, 1)) + + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("DROP TABLE IF EXISTS viewflow.emails_blog") + + # Table 'emails_blog' does not yet exist --> query must be run with initial parameters + ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + # (count,) = cur.fetchone() + # assert count == 1 + # cur.execute("SELECT * FROM viewflow.emails_blog") + # (user_id, notification_mode, email, updated_at, __view_generated_at) = cur.fetchone() + # assert user_id == 1 and notification_mode == "selection" \ + # and email == "test1@datacamp.com" and updated_at == "2021-12-01 12:00:00" \ + # and re.search(r"\d\{4}-\d\d-\d\d", __view_generated_at) + + # # First incremental update --> additional rows are added (only 1 in this case) + # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + # (count,) = cur.fetchone() + # assert count == 2 + + # # Second incremental update --> additional row is added + # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + # (count,) = cur.fetchone() + # assert count == 3 + + # # User 1 disables the blog notifications + # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + # cur.execute(""" + # UPDATE viewflow.notifications + # SET notification_mode='off', updated_at='2024-9-01 12:00:00' + # WHERE user_id=1 AND category='blog'; + # """) + + # # Third incremental update --> changed row must be updated + # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + # (count,) = cur.fetchone() + # assert count == 3 + + # cur.execute("SELECT notification_mode, updated_at FROM viewflow.emails_blog WHERE user_id = 1") + # (notification_mode, updated_at) = cur.fetchone() + # assert notification_mode == "off" and updated_at == "2024-9-01 12:00:00" + + # # Restore change to user 1's notification mode + # cur.execute(""" + # UPDATE viewflow.notifications + # SET notification_mode='selection', updated_at='2021-12-01 12:00:00' + # WHERE user_id=1 AND category='blog'; + # """) diff --git a/tests/fixtures/load_postgres.sql b/tests/fixtures/load_postgres.sql index f1237eb..6f9f892 100644 --- a/tests/fixtures/load_postgres.sql +++ b/tests/fixtures/load_postgres.sql @@ -20,22 +20,24 @@ VALUES ('test7@datacamp.com', 'testtest7'), ('test8@datacamp.com', 'testtest8'); -DROP TABLE IF EXISTS viewflow.incremental_users; -CREATE TABLE viewflow.incremental_users ( - user_id SERIAL, - email VARCHAR, - password VARCHAR +DROP TABLE IF EXISTS viewflow.notifications; +CREATE TABLE viewflow.notifications ( + user_id INTEGER, + category VARCHAR, + notification_mode VARCHAR, + updated_at TIMESTAMP, + PRIMARY KEY (user_id, category) ); - INSERT INTO - viewflow.incremental_users (email, password) + viewflow.notifications (user_id, category, notification_mode, updated_at) VALUES - ('test_incremental1@datacamp.com', 'testtest1'), - ('test_incremental2@datacamp.com', 'testtest2'), - ('test_incremental3@datacamp.com', 'testtest3'), - ('test_incremental4@datacamp.com', 'testtest4'), - ('test_incremental5@datacamp.com', 'testtest5'), - ('test_incremental6@datacamp.com', 'testtest6'), - ('test_incremental7@datacamp.com', 'testtest7'), - ('test_incremental8@datacamp.com', 'testtest8'); \ No newline at end of file + (1, 'daily', 'off', '2021-12-01 12:00:00'), + (1, 'recommended', 'off', '2021-12-01 12:00:00'), + (1, 'blog', 'selection', '2021-12-01 12:00:00'), + (2, 'daily', 'all', '2022-11-01 12:00:00'), + (2, 'recommended', 'off', '2022-11-01 12:00:00'), + (2, 'blog', 'all', '2022-11-01 12:00:00'), + (3, 'daily', 'selection', '2023-10-01 12:00:00'), + (3, 'recommended', 'selection', '2023-10-01 12:00:00'), + (3, 'blog', 'all', '2023-10-01 12:00:00'); diff --git a/tests/projects/postgresql/incremental_operator/config.yml b/tests/projects/postgresql/incremental_operator/config.yml new file mode 100644 index 0000000..2b213b8 --- /dev/null +++ b/tests/projects/postgresql/incremental_operator/config.yml @@ -0,0 +1,4 @@ +default_args: + owner: data@datacamp.com +schedule_interval: 0 5 * * * +start_date: "2020-04-29" diff --git a/tests/projects/postgresql/incremental_operator/emails_blog.yml b/tests/projects/postgresql/incremental_operator/emails_blog.yml new file mode 100644 index 0000000..bc939c8 --- /dev/null +++ b/tests/projects/postgresql/incremental_operator/emails_blog.yml @@ -0,0 +1,27 @@ +owner: engineering@datacamp.com +type: IncrementalPostgresOperator +description: For all users, list the email address and notification mode of the category blog. +fields: + user_id: The user ID + notification_mode: The detailed mode for which notifications to receive + email: Email address of the user +schema: viewflow +connection_id: postgres_viewflow +parameters: + initial: + min_time: '''2020-01-01 12:00:00''' + max_time: '''2021-12-31 12:00:00''' + update: + min_time: (SELECT max(updated_at) FROM viewflow.emails_blog) + max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow.emails_blog) +content: |- + SELECT u.user_id, notification_mode, email, updated_at + FROM + viewflow.users u + INNER JOIN viewflow.notifications n + ON n.user_id = u.user_id + WHERE + category = 'blog' AND + updated_at >= {{min_time}} AND + updated_at < {{max_time}} +primary_key: [user_id] diff --git a/viewflow/adapters/postgresql/postgres_adapter.py b/viewflow/adapters/postgresql/postgres_adapter.py index 96dbb9d..96a19c2 100644 --- a/viewflow/adapters/postgresql/postgres_adapter.py +++ b/viewflow/adapters/postgresql/postgres_adapter.py @@ -12,7 +12,6 @@ Path(os.path.dirname(os.path.realpath(__file__))) / "template.sql" ).read_text() - def _get_postgres_operator(parsed_task: Dict[str, Any]) -> PostgresOperator: return PostgresOperator( sql=SQL_TEMPLATE, @@ -32,6 +31,7 @@ def _get_postgres_operator(parsed_task: Dict[str, Any]) -> PostgresOperator: }, ) + def _get_incremental_postgres_operator(parsed_task: Dict[str, Any]) -> IncrementalPostgresOperator: return IncrementalPostgresOperator( conn_id=parsed_task["connection_id"], diff --git a/viewflow/create_dag.py b/viewflow/create_dag.py index 2fc2971..4838868 100644 --- a/viewflow/create_dag.py +++ b/viewflow/create_dag.py @@ -122,6 +122,11 @@ def parse_task_file( def get_all_dependencies(task, schema_name): if task["type"] == "PostgresOperator": dependencies = get_sql_dependencies(task["content"], schema_name) + elif task["type"] == "IncrementalPostgresOperator": + dependencies = get_sql_dependencies(task["content"], schema_name) + # The incremental update query can refer to the view itself without any problem + if task["task_id"] in dependencies: + dependencies.remove(task["task_id"]) elif task["type"] == "PythonToPostgresOperator": dependencies = get_python_dependencies(task["content"], schema_name) elif task["type"] == "RmdOperator": diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py index dfc3fef..9bb9736 100644 --- a/viewflow/operators/incremental_postgres_operator.py +++ b/viewflow/operators/incremental_postgres_operator.py @@ -2,7 +2,7 @@ from pathlib import Path import os -from airflow.hooks.postgres_hook import PostgresHook # type: ignore +from airflow.providers.postgres.hooks.postgres import PostgresHook # type: ignore from airflow.providers.postgres.operators.postgres import PostgresOperator # type: ignore @@ -35,48 +35,54 @@ def __init__( default_args={} ): - self.content = content - self.parameters_initial = params["initial"] - self.parameters_update = params["update"] - super().__init__( - sql=SQL_TEMPLATE, + sql="", # To be determined in self.execute task_id=task_id, postgres_conn_id=conn_id, email=owner, owner=owner, - params={ - "task_id": task_id, - "fields": fields, - "description": description, - "schema": schema, - "alias": alias, - "primary_key": primary_key - }, default_args=default_args ) + self.conn_id = conn_id + self.task_id = task_id + self.description = description + self.content = content + self.owner = owner + self.schema = schema + self.parameters_time = params + self.primary_key = primary_key + self.fields = fields + self.alias = alias + + + def get_query(self): + """Return the query that selects the new rows for the target view. + If the target view doesn't yet exist, use the initial parameters. If it does, use the update parameters.""" + + # Does table already exist? + with PostgresHook(postgres_conn_id=self.conn_id).get_conn().cursor() as cur: + cur.execute(f"select exists(select * from information_schema.tables where table_schema='{self.schema}' and table_name='{self.task_id}');") + table_exists = cur.fetchone()[0] + + # The result is equal to self.content where the appropriate parameters (min_time and max_time) are filled out. + return Template(self.content).render( + min_time=self.parameters_time["update" if table_exists else "initial"]["min_time"], + max_time=self.parameters_time["update" if table_exists else "initial"]["max_time"] + ) def execute(self, context): """If the view doesn't yet exist, run the initial query. If it does, run the incremental update.""" - # Does table already exist? - con = PostgresHook(postgres_conn_id=self.conn_id).get_conn() - con.cursor().execute(f"select exists(select * from information_schema.tables where table_schema='{self.schema}' and table_name='{self.task_id}');") - table_exists = con.cursor().fetchone()[0] + self.sql = Template(SQL_TEMPLATE).render(params={ + "task_id": self.task_id, + "fields": self.fields, + "description": self.description, + "schema": self.schema, + "alias": self.alias, + "primary_key": self.primary_key, + "query": self.get_query() + }) - # self.params["query"] must be set to the SELECT-statement with a filter that retrieves the new rows of the target view. - # It is set to self.content where the appropriate parameters (min_time and max_time) are filled out. - if not table_exists: - # Run with initial parameters - self.params["query"] = Template(self.content.render( - params=self.parameters_initial - )) - else: - # Run with update parameters - self.params["query"] = Template(self.content.render( - params=self.parameters_update - )) super().execute(context) - diff --git a/viewflow/operators/template_incremental.sql b/viewflow/operators/template_incremental.sql index ed40684..9482bbf 100644 --- a/viewflow/operators/template_incremental.sql +++ b/viewflow/operators/template_incremental.sql @@ -1,7 +1,5 @@ - - --- Create staging table with new rows +-- Create staging table with new rows for target table DROP TABLE IF EXISTS {{ params.schema }}.{{ params.task_id }}_stage; CREATE TABLE {{ params.schema }}.{{ params.task_id }}_stage @@ -13,7 +11,6 @@ CREATE TABLE CREATE TABLE IF NOT EXISTS {{ params.schema }}.{{ params.task_id }} (LIKE {{ params.schema }}.{{ params.task_id }}_stage); - BEGIN TRANSACTION; -- Delete changed rows from target table DELETE FROM {{ params.schema }}.{{ params.task_id }} AS target @@ -32,7 +29,7 @@ INSERT INTO {{ params.schema }}.{{ params.task_id }} END TRANSACTION; -DROP TABLE {{ params.schema }}.{{ params.task_id }}_stage +DROP TABLE {{ params.schema }}.{{ params.task_id }}_stage; -- Create aliases From 046d388460a82fedbe578e41da80459e4b92d960 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Fri, 30 Jul 2021 18:51:06 +0200 Subject: [PATCH 05/15] bugfixes in test incremental operator --- tests/adapters/test_postgres_incremental.py | 96 +++++++++++---------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/tests/adapters/test_postgres_incremental.py b/tests/adapters/test_postgres_incremental.py index cd9d735..1a5cdd2 100644 --- a/tests/adapters/test_postgres_incremental.py +++ b/tests/adapters/test_postgres_incremental.py @@ -1,6 +1,5 @@ import viewflow -from datetime import datetime -import re +from datetime import datetime, date from airflow.models import TaskInstance, Connection from airflow.providers.postgres.hooks.postgres import PostgresHook @@ -28,59 +27,64 @@ def test_incremental_updates(): dag = viewflow.create_dag("./tests/projects/postgresql/incremental_operator") task = dag.get_task("emails_blog") - ti = TaskInstance(task, datetime(2020, 1, 1)) with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: cur.execute("DROP TABLE IF EXISTS viewflow.emails_blog") # Table 'emails_blog' does not yet exist --> query must be run with initial parameters + ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - # (count,) = cur.fetchone() - # assert count == 1 - # cur.execute("SELECT * FROM viewflow.emails_blog") - # (user_id, notification_mode, email, updated_at, __view_generated_at) = cur.fetchone() - # assert user_id == 1 and notification_mode == "selection" \ - # and email == "test1@datacamp.com" and updated_at == "2021-12-01 12:00:00" \ - # and re.search(r"\d\{4}-\d\d-\d\d", __view_generated_at) + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 1 + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT * FROM viewflow.emails_blog") + (user_id, notification_mode, email, updated_at, __view_generated_at) = cur.fetchone() + assert user_id == 1 + assert notification_mode == "selection" + assert email == "test1@datacamp.com" + assert updated_at == datetime.strptime("2021-12-01 12:00:00", "%Y-%m-%d %H:%M:%S") + assert __view_generated_at == date.today() - # # First incremental update --> additional rows are added (only 1 in this case) - # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - # (count,) = cur.fetchone() - # assert count == 2 + # First incremental update --> additional rows are added (only 1 in this case) + ti = TaskInstance(task, datetime(2020, 1, 1)) + ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 2 - # # Second incremental update --> additional row is added - # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - # (count,) = cur.fetchone() - # assert count == 3 + # Second incremental update --> additional row is added + ti = TaskInstance(task, datetime(2020, 1, 1)) + ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 3 - # # User 1 disables the blog notifications - # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - # cur.execute(""" - # UPDATE viewflow.notifications - # SET notification_mode='off', updated_at='2024-9-01 12:00:00' - # WHERE user_id=1 AND category='blog'; - # """) + # User 1 disables the blog notifications + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("UPDATE viewflow.notifications SET notification_mode='off', updated_at=timestamp '2024-9-01 12:00:00' WHERE user_id=1 AND category='blog'") - # # Third incremental update --> changed row must be updated - # ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - # with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - # cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - # (count,) = cur.fetchone() - # assert count == 3 + # Third incremental update --> changed row must be updated + ti = TaskInstance(task, datetime(2020, 1, 1)) + ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 3 + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: + cur.execute("SELECT notification_mode, updated_at FROM viewflow.emails_blog WHERE user_id = 1") + (notification_mode, updated_at) = cur.fetchone() - # cur.execute("SELECT notification_mode, updated_at FROM viewflow.emails_blog WHERE user_id = 1") - # (notification_mode, updated_at) = cur.fetchone() - # assert notification_mode == "off" and updated_at == "2024-9-01 12:00:00" + # TODO why old values instead of these new ones? + # assert notification_mode == "off" + # assert updated_at == datetime.strptime("2024-9-01 12:00:00", "%Y-%m-%d %H:%M:%S") - # # Restore change to user 1's notification mode - # cur.execute(""" - # UPDATE viewflow.notifications - # SET notification_mode='selection', updated_at='2021-12-01 12:00:00' - # WHERE user_id=1 AND category='blog'; - # """) + # Restore change to user 1's notification mode + cur.execute(""" + UPDATE viewflow.notifications + SET notification_mode='selection', updated_at=timestamp '2021-12-01 12:00:00' + WHERE user_id=1 AND category='blog'; + """) From b4c37505aad8260942376b420bb9cf52cbdfe017 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Fri, 30 Jul 2021 21:01:41 +0200 Subject: [PATCH 06/15] bugfix in tests inremental operator, successfully tested --- tests/adapters/test_postgres_incremental.py | 85 +++++++++++---------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/tests/adapters/test_postgres_incremental.py b/tests/adapters/test_postgres_incremental.py index 1a5cdd2..18fbea1 100644 --- a/tests/adapters/test_postgres_incremental.py +++ b/tests/adapters/test_postgres_incremental.py @@ -28,63 +28,68 @@ def test_incremental_updates(): dag = viewflow.create_dag("./tests/projects/postgresql/incremental_operator") task = dag.get_task("emails_blog") - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("DROP TABLE IF EXISTS viewflow.emails_blog") + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("DROP TABLE IF EXISTS viewflow.emails_blog") # Table 'emails_blog' does not yet exist --> query must be run with initial parameters ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - (count,) = cur.fetchone() - assert count == 1 - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT * FROM viewflow.emails_blog") - (user_id, notification_mode, email, updated_at, __view_generated_at) = cur.fetchone() - assert user_id == 1 - assert notification_mode == "selection" - assert email == "test1@datacamp.com" - assert updated_at == datetime.strptime("2021-12-01 12:00:00", "%Y-%m-%d %H:%M:%S") - assert __view_generated_at == date.today() + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 1 + + cur.execute("SELECT * FROM viewflow.emails_blog") + (user_id, notification_mode, email, updated_at, __view_generated_at) = cur.fetchone() + assert user_id == 1 + assert notification_mode == "selection" + assert email == "test1@datacamp.com" + assert updated_at == datetime.strptime("2021-12-01 12:00:00", "%Y-%m-%d %H:%M:%S") + assert __view_generated_at == date.today() # First incremental update --> additional rows are added (only 1 in this case) ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - (count,) = cur.fetchone() - assert count == 2 + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 2 # Second incremental update --> additional row is added ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - (count,) = cur.fetchone() - assert count == 3 + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 3 # User 1 disables the blog notifications - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("UPDATE viewflow.notifications SET notification_mode='off', updated_at=timestamp '2024-9-01 12:00:00' WHERE user_id=1 AND category='blog'") + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("UPDATE viewflow.notifications SET notification_mode='off', updated_at=timestamp '2024-9-01 12:00:00' WHERE user_id=1 AND category='blog'") # Third incremental update --> changed row must be updated ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") - (count,) = cur.fetchone() - assert count == 3 - with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn().cursor() as cur: - cur.execute("SELECT notification_mode, updated_at FROM viewflow.emails_blog WHERE user_id = 1") - (notification_mode, updated_at) = cur.fetchone() + with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: + with conn.cursor() as cur: + cur.execute("SELECT COUNT(*) FROM viewflow.emails_blog") + (count,) = cur.fetchone() + assert count == 3 - # TODO why old values instead of these new ones? - # assert notification_mode == "off" - # assert updated_at == datetime.strptime("2024-9-01 12:00:00", "%Y-%m-%d %H:%M:%S") + cur.execute("SELECT notification_mode, updated_at FROM viewflow.emails_blog WHERE user_id = 1") + (notification_mode, updated_at) = cur.fetchone() - # Restore change to user 1's notification mode - cur.execute(""" - UPDATE viewflow.notifications - SET notification_mode='selection', updated_at=timestamp '2021-12-01 12:00:00' - WHERE user_id=1 AND category='blog'; - """) + assert notification_mode == "off" + assert updated_at == datetime.strptime("2024-9-01 12:00:00", "%Y-%m-%d %H:%M:%S") + + # Restore change to user 1's notification mode + cur.execute(""" + UPDATE viewflow.notifications + SET notification_mode='selection', updated_at=timestamp '2021-12-01 12:00:00' + WHERE user_id=1 AND category='blog'; + """) From 027e533c67414419634647328f573d5900c9ae9c Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 08:54:21 +0200 Subject: [PATCH 07/15] refactor test --- tests/adapters/test_postgres_incremental.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/adapters/test_postgres_incremental.py b/tests/adapters/test_postgres_incremental.py index 18fbea1..ec9d41a 100644 --- a/tests/adapters/test_postgres_incremental.py +++ b/tests/adapters/test_postgres_incremental.py @@ -70,7 +70,11 @@ def test_incremental_updates(): # User 1 disables the blog notifications with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: with conn.cursor() as cur: - cur.execute("UPDATE viewflow.notifications SET notification_mode='off', updated_at=timestamp '2024-9-01 12:00:00' WHERE user_id=1 AND category='blog'") + cur.execute(""" + UPDATE viewflow.notifications + SET notification_mode='off', updated_at=timestamp '2024-9-01 12:00:00' + WHERE user_id=1 AND category='blog' + """) # Third incremental update --> changed row must be updated ti = TaskInstance(task, datetime(2020, 1, 1)) From fe007f3891604fdb19a9ece68a988a7d9f2b6e27 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 13:58:25 +0200 Subject: [PATCH 08/15] update image in README.md --- README.md | 5 ++--- demo/dags/viewflow-demo-2/emails_blog.yml | 2 +- img/airflow_web_homepage.png | Bin 0 -> 232153 bytes 3 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 img/airflow_web_homepage.png diff --git a/README.md b/README.md index 76d89b2..7f3eb3a 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,11 @@ docker-compose -f docker-compose-airflow1.10.yml up # Airflow 1.10 Go to your local Apache Airflow instance on [http://localhost:8080](http://localhost:8080). There are three DAGs called `viewflow-demo-1` through `viewflow-demo-3`. Notice how Viewflow automatically generated these DAGs based on the example queries in the subfolders of [demo/dags/](./demo/dags/)! -TODO overview img +By default, the DAGs are disabled. Turn the DAGs on by clicking on the button `Off`. This will trigger the DAGs. + -By default, the DAGs are disabled. Turn the DAGs on by clicking on the button `Off`. This will trigger the DAGs. - ### Query the views Once the DAGs have run and all tasks completed, you can query the views created by Viewflow in the local Postgres database created by Docker. You can use any Postgres client (note that Postgres is running locally on port `5432`): diff --git a/demo/dags/viewflow-demo-2/emails_blog.yml b/demo/dags/viewflow-demo-2/emails_blog.yml index 7a1194c..e55e92c 100644 --- a/demo/dags/viewflow-demo-2/emails_blog.yml +++ b/demo/dags/viewflow-demo-2/emails_blog.yml @@ -1,4 +1,4 @@ -owner: engineering@datacamp.com +owner: data@datacamp.com type: IncrementalPostgresOperator description: For all users, list the email address and notification mode of the category blog. fields: diff --git a/img/airflow_web_homepage.png b/img/airflow_web_homepage.png new file mode 100644 index 0000000000000000000000000000000000000000..602dd22ebc69ad0716488cce2c0455cd98aedaa6 GIT binary patch literal 232153 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 sazGvZnMp$Kinl-}BB6NKOSm+Cy9K#6 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%0DCjDnxH&r*0iPC+b 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 z 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%0A;|mKaZPxuRGBgoc=H4F!D7-W8W13H?;fT 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 literal 0 HcmV?d00001 From 3856d5c7b851287003176a19982ab67b22750da7 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 14:13:49 +0200 Subject: [PATCH 09/15] allow regular params in incremental operator --- README.md | 2 +- demo/dags/viewflow-demo-2/emails_blog.yml | 2 +- tests/adapters/test_postgres_incremental.py | 2 +- .../postgresql/incremental_operator/emails_blog.yml | 2 +- viewflow/adapters/postgresql/postgres_adapter.py | 3 ++- viewflow/operators/incremental_postgres_operator.py | 9 ++++++--- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7f3eb3a..184fb5c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ docker-compose -f docker-compose-airflow1.10.yml up # Airflow 1.10 Go to your local Apache Airflow instance on [http://localhost:8080](http://localhost:8080). There are three DAGs called `viewflow-demo-1` through `viewflow-demo-3`. Notice how Viewflow automatically generated these DAGs based on the example queries in the subfolders of [demo/dags/](./demo/dags/)! -By default, the DAGs are disabled. Turn the DAGs on by clicking on the button `Off`. This will trigger the DAGs. +By default, the DAGs are disabled. You will first have to turn them on. This will trigger the DAGs. diff --git a/demo/dags/viewflow-demo-2/emails_blog.yml b/demo/dags/viewflow-demo-2/emails_blog.yml index e55e92c..83df823 100644 --- a/demo/dags/viewflow-demo-2/emails_blog.yml +++ b/demo/dags/viewflow-demo-2/emails_blog.yml @@ -7,7 +7,7 @@ fields: email: Email address of the user schema: viewflow_demo connection_id: postgres_demo -parameters: +time_parameters: initial: min_time: '''2020-01-01 12:00:00''' max_time: '''2021-12-31 12:00:00''' diff --git a/tests/adapters/test_postgres_incremental.py b/tests/adapters/test_postgres_incremental.py index ec9d41a..8254c79 100644 --- a/tests/adapters/test_postgres_incremental.py +++ b/tests/adapters/test_postgres_incremental.py @@ -32,7 +32,7 @@ def test_incremental_updates(): with conn.cursor() as cur: cur.execute("DROP TABLE IF EXISTS viewflow.emails_blog") - # Table 'emails_blog' does not yet exist --> query must be run with initial parameters + # Table 'emails_blog' does not yet exist --> query must be run with initial time parameters ti = TaskInstance(task, datetime(2020, 1, 1)) ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True, session=session) with PostgresHook(postgres_conn_id="postgres_viewflow").get_conn() as conn: diff --git a/tests/projects/postgresql/incremental_operator/emails_blog.yml b/tests/projects/postgresql/incremental_operator/emails_blog.yml index bc939c8..67b47be 100644 --- a/tests/projects/postgresql/incremental_operator/emails_blog.yml +++ b/tests/projects/postgresql/incremental_operator/emails_blog.yml @@ -7,7 +7,7 @@ fields: email: Email address of the user schema: viewflow connection_id: postgres_viewflow -parameters: +time_parameters: initial: min_time: '''2020-01-01 12:00:00''' max_time: '''2021-12-31 12:00:00''' diff --git a/viewflow/adapters/postgresql/postgres_adapter.py b/viewflow/adapters/postgresql/postgres_adapter.py index 96a19c2..66e6ac4 100644 --- a/viewflow/adapters/postgresql/postgres_adapter.py +++ b/viewflow/adapters/postgresql/postgres_adapter.py @@ -40,7 +40,8 @@ def _get_incremental_postgres_operator(parsed_task: Dict[str, Any]) -> Increment content=parsed_task["content"], owner=parsed_task["owner"], schema=parsed_task["schema"], - params=parsed_task["parameters"], + params=parsed_task.get("params"), + time_parameters=parsed_task["time_parameters"], primary_key=parsed_task["primary_key"], fields=parsed_task["fields"], alias=parsed_task.get("alias"), diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py index 9bb9736..b0a4799 100644 --- a/viewflow/operators/incremental_postgres_operator.py +++ b/viewflow/operators/incremental_postgres_operator.py @@ -29,6 +29,7 @@ def __init__( owner, schema, params, + time_parameters, primary_key, fields, alias, @@ -50,7 +51,8 @@ def __init__( self.content = content self.owner = owner self.schema = schema - self.parameters_time = params + self.params = params, + self.time_parameters = time_parameters self.primary_key = primary_key self.fields = fields self.alias = alias @@ -67,8 +69,9 @@ def get_query(self): # The result is equal to self.content where the appropriate parameters (min_time and max_time) are filled out. return Template(self.content).render( - min_time=self.parameters_time["update" if table_exists else "initial"]["min_time"], - max_time=self.parameters_time["update" if table_exists else "initial"]["max_time"] + min_time=self.time_parameters["update" if table_exists else "initial"]["min_time"], + max_time=self.time_parameters["update" if table_exists else "initial"]["max_time"], + params=self.params ) From c11f4be5a6465290167e91d1dc5c5415eaa93c08 Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 15:06:39 +0200 Subject: [PATCH 10/15] allow usage of incremental postgres operator in both yml and sql files --- demo/dags/viewflow-demo-2/emails_blog.yml | 27 ------------------- .../incremental_operator/emails_blog.yml | 27 ------------------- .../adapters/postgresql/postgres_adapter.py | 4 +-- .../incremental_postgres_operator.py | 6 ++--- viewflow/parsers/parse_sql.py | 2 +- 5 files changed, 6 insertions(+), 60 deletions(-) delete mode 100644 demo/dags/viewflow-demo-2/emails_blog.yml delete mode 100644 tests/projects/postgresql/incremental_operator/emails_blog.yml diff --git a/demo/dags/viewflow-demo-2/emails_blog.yml b/demo/dags/viewflow-demo-2/emails_blog.yml deleted file mode 100644 index 83df823..0000000 --- a/demo/dags/viewflow-demo-2/emails_blog.yml +++ /dev/null @@ -1,27 +0,0 @@ -owner: data@datacamp.com -type: IncrementalPostgresOperator -description: For all users, list the email address and notification mode of the category blog. -fields: - user_id: The user ID - notification_mode: The detailed mode for which notifications to receive - email: Email address of the user -schema: viewflow_demo -connection_id: postgres_demo -time_parameters: - initial: - min_time: '''2020-01-01 12:00:00''' - max_time: '''2021-12-31 12:00:00''' - update: - min_time: (SELECT max(updated_at) FROM viewflow_demo.emails_blog) - max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow_demo.emails_blog) -content: |- - SELECT user_id, notification_mode, email, updated_at - FROM - viewflow_raw.notifications n - INNER JOIN viewflow_raw.users u - ON n.user_id = u.id - WHERE - category = 'blog' AND - updated_at >= {{min_time}} AND - updated_at < {{max_time}} -primary_key: [user_id] diff --git a/tests/projects/postgresql/incremental_operator/emails_blog.yml b/tests/projects/postgresql/incremental_operator/emails_blog.yml deleted file mode 100644 index 67b47be..0000000 --- a/tests/projects/postgresql/incremental_operator/emails_blog.yml +++ /dev/null @@ -1,27 +0,0 @@ -owner: engineering@datacamp.com -type: IncrementalPostgresOperator -description: For all users, list the email address and notification mode of the category blog. -fields: - user_id: The user ID - notification_mode: The detailed mode for which notifications to receive - email: Email address of the user -schema: viewflow -connection_id: postgres_viewflow -time_parameters: - initial: - min_time: '''2020-01-01 12:00:00''' - max_time: '''2021-12-31 12:00:00''' - update: - min_time: (SELECT max(updated_at) FROM viewflow.emails_blog) - max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow.emails_blog) -content: |- - SELECT u.user_id, notification_mode, email, updated_at - FROM - viewflow.users u - INNER JOIN viewflow.notifications n - ON n.user_id = u.user_id - WHERE - category = 'blog' AND - updated_at >= {{min_time}} AND - updated_at < {{max_time}} -primary_key: [user_id] diff --git a/viewflow/adapters/postgresql/postgres_adapter.py b/viewflow/adapters/postgresql/postgres_adapter.py index 66e6ac4..ce988c5 100644 --- a/viewflow/adapters/postgresql/postgres_adapter.py +++ b/viewflow/adapters/postgresql/postgres_adapter.py @@ -40,10 +40,10 @@ def _get_incremental_postgres_operator(parsed_task: Dict[str, Any]) -> Increment content=parsed_task["content"], owner=parsed_task["owner"], schema=parsed_task["schema"], - params=parsed_task.get("params"), + parameters=parsed_task.get("parameters", {}), time_parameters=parsed_task["time_parameters"], primary_key=parsed_task["primary_key"], - fields=parsed_task["fields"], + fields=parsed_task.get("fields", {}), alias=parsed_task.get("alias"), ) diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py index b0a4799..c06ac16 100644 --- a/viewflow/operators/incremental_postgres_operator.py +++ b/viewflow/operators/incremental_postgres_operator.py @@ -28,7 +28,7 @@ def __init__( content, owner, schema, - params, + parameters, time_parameters, primary_key, fields, @@ -51,7 +51,7 @@ def __init__( self.content = content self.owner = owner self.schema = schema - self.params = params, + self.parameters = parameters, self.time_parameters = time_parameters self.primary_key = primary_key self.fields = fields @@ -71,7 +71,7 @@ def get_query(self): return Template(self.content).render( min_time=self.time_parameters["update" if table_exists else "initial"]["min_time"], max_time=self.time_parameters["update" if table_exists else "initial"]["max_time"], - params=self.params + parameters=self.parameters ) diff --git a/viewflow/parsers/parse_sql.py b/viewflow/parsers/parse_sql.py index 0e9290a..2b69581 100644 --- a/viewflow/parsers/parse_sql.py +++ b/viewflow/parsers/parse_sql.py @@ -10,7 +10,7 @@ def parse_sql(file: pathlib.Path) -> Dict[str, Any]: yml = "\n".join(content[l[0] + 1 : l[1]]) task_config = yaml.safe_load(yml) extras = { - "type": "PostgresOperator", + "type": task_config.get("type", "PostgresOperator"), "content": "\n".join(content[0 : max(l[0]-1,0)] + content[(l[1] + 2) :]), "task_file_path": str(file), } From 903d8c5e93f6b38752a5c655e0481adb38f2935a Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 15:07:16 +0200 Subject: [PATCH 11/15] add sql files of incremental operator --- demo/dags/viewflow-demo-2/emails_blog.sql | 31 ++++++++++++++++++ .../incremental_operator/emails_blog.sql | 32 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 demo/dags/viewflow-demo-2/emails_blog.sql create mode 100644 tests/projects/postgresql/incremental_operator/emails_blog.sql diff --git a/demo/dags/viewflow-demo-2/emails_blog.sql b/demo/dags/viewflow-demo-2/emails_blog.sql new file mode 100644 index 0000000..dcfbb8a --- /dev/null +++ b/demo/dags/viewflow-demo-2/emails_blog.sql @@ -0,0 +1,31 @@ +/* +--- +owner: data@datacamp.com +type: IncrementalPostgresOperator +description: For all users, list the email address and notification mode of the category blog. +fields: + user_id: The user ID + notification_mode: The detailed mode for which notifications to receive + email: Email address of the user +schema: viewflow_demo +connection_id: postgres_demo +primary_key: [user_id] +time_parameters: + initial: + min_time: '''2020-01-01 12:00:00''' + max_time: '''2021-12-31 12:00:00''' + update: + min_time: (SELECT max(updated_at) FROM viewflow_demo.emails_blog) + max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow_demo.emails_blog) +--- +*/ + +SELECT user_id, notification_mode, email, updated_at +FROM + viewflow_raw.notifications n + INNER JOIN viewflow_raw.users u + ON n.user_id = u.id +WHERE + category = 'blog' AND + updated_at >= {{min_time}} AND + updated_at < {{max_time}} diff --git a/tests/projects/postgresql/incremental_operator/emails_blog.sql b/tests/projects/postgresql/incremental_operator/emails_blog.sql new file mode 100644 index 0000000..768c43d --- /dev/null +++ b/tests/projects/postgresql/incremental_operator/emails_blog.sql @@ -0,0 +1,32 @@ +/* +--- +owner: engineering@datacamp.com +type: IncrementalPostgresOperator +description: For all users, list the email address and notification mode of the category blog. +fields: + user_id: The user ID + notification_mode: The detailed mode for which notifications to receive + email: Email address of the user +schema: viewflow +connection_id: postgres_viewflow +time_parameters: + initial: + min_time: '''2020-01-01 12:00:00''' + max_time: '''2021-12-31 12:00:00''' + update: + min_time: (SELECT max(updated_at) FROM viewflow.emails_blog) + max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow.emails_blog) +primary_key: [user_id] +--- +*/ + +SELECT u.user_id, notification_mode, email, updated_at +FROM + viewflow.users u + INNER JOIN viewflow.notifications n + ON n.user_id = u.user_id +WHERE + category = 'blog' AND + updated_at >= {{min_time}} AND + updated_at < {{max_time}} + From d5b0218dbc25b63452b33a2e757abf54a8ed613b Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Mon, 2 Aug 2021 16:13:07 +0200 Subject: [PATCH 12/15] add explanation for incremental updates in README --- README.md | 7 +++++++ demo/dags/viewflow-demo-2/emails_blog.sql | 5 +---- viewflow/operators/incremental_postgres_operator.py | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 184fb5c..c585b78 100644 --- a/README.md +++ b/README.md @@ -275,6 +275,13 @@ on_retry_callback: on_retry_callback_custom Of course, options 1, 2 and 3 can be combined to efficiently configure the callbacks of a multitude of tasks. +## Incremental updates + +SQL views offer an extra feature for advanced users: incremental updating. In some cases, it's possible to update the materialized view very efficiently instead of creating the view from scratch. We will illustrate the advantages and disadvantages of incremental updates with an example: [emails_blog.sql](./demo/dags/viewflow-demo-2/emails_blog.sql). + +In the query, the `users` table is joined with the `notifications` table. Keep in mind that this query is run on a regular basis, e.g. every day. The key to understanding the incremental update is the filter in the query: the `notifications.updated_at` field is required to be at least as large as the maximal value in the "old" materialized view. This filter will effectively only select rows corresponding to recently created/changed rows in the `notifications` table. Viewflow will then make sure the selected rows are updated or inserted in the materialized view. Under the hood, this is implemented as in [this link](https://docs.aws.amazon.com/redshift/latest/dg/merge-replacing-existing-rows.html). For this to work, you have to specify the fields of the primary key of the materialized view in the metadata. + +The main advantage is now clear: the incremental update is incredibly efficient, especially if you run the query frequently for a long time. A disadvantage also becomes clear in the example: you have to be careful about stale data. Because the example query only returns results corresponding to recently changed rows of the `notification` table, changes to the `users.email` field can go unnoticed. This issue could easily be solved by adding an `updated_at` field to the `users` table and also selecting recently changed rows from this table. # Contributing to Viewflow diff --git a/demo/dags/viewflow-demo-2/emails_blog.sql b/demo/dags/viewflow-demo-2/emails_blog.sql index dcfbb8a..d9e7e6d 100644 --- a/demo/dags/viewflow-demo-2/emails_blog.sql +++ b/demo/dags/viewflow-demo-2/emails_blog.sql @@ -13,10 +13,8 @@ primary_key: [user_id] time_parameters: initial: min_time: '''2020-01-01 12:00:00''' - max_time: '''2021-12-31 12:00:00''' update: min_time: (SELECT max(updated_at) FROM viewflow_demo.emails_blog) - max_time: (SELECT (max(updated_at) + interval '1 day' * 365) FROM viewflow_demo.emails_blog) --- */ @@ -27,5 +25,4 @@ FROM ON n.user_id = u.id WHERE category = 'blog' AND - updated_at >= {{min_time}} AND - updated_at < {{max_time}} + updated_at >= {{min_time}} diff --git a/viewflow/operators/incremental_postgres_operator.py b/viewflow/operators/incremental_postgres_operator.py index c06ac16..8dcf0d7 100644 --- a/viewflow/operators/incremental_postgres_operator.py +++ b/viewflow/operators/incremental_postgres_operator.py @@ -70,7 +70,7 @@ def get_query(self): # The result is equal to self.content where the appropriate parameters (min_time and max_time) are filled out. return Template(self.content).render( min_time=self.time_parameters["update" if table_exists else "initial"]["min_time"], - max_time=self.time_parameters["update" if table_exists else "initial"]["max_time"], + max_time=self.time_parameters["update" if table_exists else "initial"].get("max_time"), parameters=self.parameters ) From 859700409a1934da4a5616da82637c39faaa66eb Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Tue, 3 Aug 2021 09:08:08 +0200 Subject: [PATCH 13/15] edit README --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c585b78..e25ffa5 100644 --- a/README.md +++ b/README.md @@ -281,7 +281,15 @@ SQL views offer an extra feature for advanced users: incremental updating. In so In the query, the `users` table is joined with the `notifications` table. Keep in mind that this query is run on a regular basis, e.g. every day. The key to understanding the incremental update is the filter in the query: the `notifications.updated_at` field is required to be at least as large as the maximal value in the "old" materialized view. This filter will effectively only select rows corresponding to recently created/changed rows in the `notifications` table. Viewflow will then make sure the selected rows are updated or inserted in the materialized view. Under the hood, this is implemented as in [this link](https://docs.aws.amazon.com/redshift/latest/dg/merge-replacing-existing-rows.html). For this to work, you have to specify the fields of the primary key of the materialized view in the metadata. -The main advantage is now clear: the incremental update is incredibly efficient, especially if you run the query frequently for a long time. A disadvantage also becomes clear in the example: you have to be careful about stale data. Because the example query only returns results corresponding to recently changed rows of the `notification` table, changes to the `users.email` field can go unnoticed. This issue could easily be solved by adding an `updated_at` field to the `users` table and also selecting recently changed rows from this table. +The main advantage is now clear: the incremental update is incredibly efficient, especially if you run the query frequently for a long time. A disadvantage also becomes clear in the example: you have to be careful about stale data. Because the example query only returns results corresponding to recently changed rows of the `notifications` table, changes to the `users.email` field can go unnoticed. If a user's email is changed while the `notifications` table stays the same, then the materialized view will still contain the old email address after running the incremental update! This issue could easily be solved by adding an `updated_at` field to the `users` table and also selecting recently changed rows from this table. + +```sql +SELECT user_id, notification_mode, email, n.updated_at +FROM viewflow_raw.users u INNER JOIN viewflow_raw.notifications n ON n.user_id = u.id +WHERE + category = 'blog' AND + (u.updated_at >= {{min_time}} OR n.updated_at >= {{min_time}}) +``` # Contributing to Viewflow From ed7075e6ba033a0c7a205a57d00569d15214f53c Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Tue, 3 Aug 2021 09:29:08 +0200 Subject: [PATCH 14/15] finish explanation incremental operator in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e25ffa5..1047b41 100644 --- a/README.md +++ b/README.md @@ -279,7 +279,7 @@ Of course, options 1, 2 and 3 can be combined to efficiently configure the callb SQL views offer an extra feature for advanced users: incremental updating. In some cases, it's possible to update the materialized view very efficiently instead of creating the view from scratch. We will illustrate the advantages and disadvantages of incremental updates with an example: [emails_blog.sql](./demo/dags/viewflow-demo-2/emails_blog.sql). -In the query, the `users` table is joined with the `notifications` table. Keep in mind that this query is run on a regular basis, e.g. every day. The key to understanding the incremental update is the filter in the query: the `notifications.updated_at` field is required to be at least as large as the maximal value in the "old" materialized view. This filter will effectively only select rows corresponding to recently created/changed rows in the `notifications` table. Viewflow will then make sure the selected rows are updated or inserted in the materialized view. Under the hood, this is implemented as in [this link](https://docs.aws.amazon.com/redshift/latest/dg/merge-replacing-existing-rows.html). For this to work, you have to specify the fields of the primary key of the materialized view in the metadata. +In the query, the `users` table is joined with the `notifications` table. Keep in mind that this query is run on a regular basis, e.g. every day. The key to understanding the incremental update is the filter in the query: the `notifications.updated_at` field is required to be at least as large as the maximal value in the "old" materialized view. This filter will effectively only select rows corresponding to recently created/changed rows in the `notifications` table. Viewflow will then make sure the selected rows are updated or inserted in the materialized view. Under the hood, this is implemented as in [this link](https://docs.aws.amazon.com/redshift/latest/dg/merge-replacing-existing-rows.html). For this to work, you have to specify the fields of the primary key of the materialized view in the metadata. In summary, there are 3 additional mandatory fields in the metadata: `type`, `primary_key` and `time_parameters`. The main advantage is now clear: the incremental update is incredibly efficient, especially if you run the query frequently for a long time. A disadvantage also becomes clear in the example: you have to be careful about stale data. Because the example query only returns results corresponding to recently changed rows of the `notifications` table, changes to the `users.email` field can go unnoticed. If a user's email is changed while the `notifications` table stays the same, then the materialized view will still contain the old email address after running the incremental update! This issue could easily be solved by adding an `updated_at` field to the `users` table and also selecting recently changed rows from this table. From 1164ccb659b3ad7fe4dca152e6c3cb74b9c1113c Mon Sep 17 00:00:00 2001 From: Pieter Vanslambrouck Date: Tue, 3 Aug 2021 11:25:52 +0200 Subject: [PATCH 15/15] edit version number --- Airflow@1.10/pyproject.toml | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Airflow@1.10/pyproject.toml b/Airflow@1.10/pyproject.toml index bc2f7d2..f255995 100644 --- a/Airflow@1.10/pyproject.toml +++ b/Airflow@1.10/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "viewflow" -version = "0.1.0" +version = "0.2.0" description = "Viewflow is an Airflow-based framework that allows data scientists to create data models without writing Airflow code." authors = ["Vincent Vankrunkelsven ", "Ramnath Vaidyanathan ", "Gaëtan Podevijn "] readme = "README.md" diff --git a/pyproject.toml b/pyproject.toml index 747d0ec..33eebc6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "viewflow" -version = "0.1.0" +version = "0.2.0" license = "MIT" description = "Viewflow is an Airflow-based framework that allows data scientists to create data models without writing Airflow code." authors = ["Vincent Vankrunkelsven ", "Ramnath Vaidyanathan ", "Gaëtan Podevijn "]