From 982093539daf4c37771381e258810395b816a918 Mon Sep 17 00:00:00 2001 From: Pankaj Singh <98807258+pankajastro@users.noreply.github.com> Date: Thu, 19 Dec 2024 01:32:16 +0530 Subject: [PATCH 01/10] Fix source resource type tests (#1405) `jaffle_shop` does not have a source so let's point the example_source_rendering.py to use the `altered_jaffle_shop` project. --- .../dbt/altered_jaffle_shop/dbt_project.yml | 6 +- .../dbt/altered_jaffle_shop/models/orders.sql | 2 +- dev/dags/example_cosmos_dbt_build.py | 2 +- dev/dags/example_source_rendering.py | 2 +- tests/dbt/test_graph.py | 42 +- tests/sample/manifest_source.json | 2372 +++++++++-------- 6 files changed, 1298 insertions(+), 1128 deletions(-) diff --git a/dev/dags/dbt/altered_jaffle_shop/dbt_project.yml b/dev/dags/dbt/altered_jaffle_shop/dbt_project.yml index acdce4c57..672e50b67 100644 --- a/dev/dags/dbt/altered_jaffle_shop/dbt_project.yml +++ b/dev/dags/dbt/altered_jaffle_shop/dbt_project.yml @@ -1,9 +1,9 @@ -name: 'jaffle_shop' +name: 'altered_jaffle_shop' config-version: 2 version: '0.1' -profile: 'jaffle_shop' +profile: 'postgres_profile' model-paths: ["models"] seed-paths: ["seeds"] @@ -20,7 +20,7 @@ clean-targets: require-dbt-version: [">=1.0.0", "<2.0.0"] models: - jaffle_shop: + altered_jaffle_shop: materialized: table staging: materialized: view diff --git a/dev/dags/dbt/altered_jaffle_shop/models/orders.sql b/dev/dags/dbt/altered_jaffle_shop/models/orders.sql index 11dfcf89b..6785c5999 100644 --- a/dev/dags/dbt/altered_jaffle_shop/models/orders.sql +++ b/dev/dags/dbt/altered_jaffle_shop/models/orders.sql @@ -1,5 +1,5 @@ {{ config( - materialized='view', + materialized='table', alias=var('orders_alias', 'orders') ) }} diff --git a/dev/dags/example_cosmos_dbt_build.py b/dev/dags/example_cosmos_dbt_build.py index 163e66f03..57ad8340f 100644 --- a/dev/dags/example_cosmos_dbt_build.py +++ b/dev/dags/example_cosmos_dbt_build.py @@ -27,7 +27,7 @@ example_cosmos_dbt_build = DbtDag( # dbt/cosmos-specific parameters project_config=ProjectConfig( - DBT_ROOT_PATH / "jaffle_shop", + DBT_ROOT_PATH / "altered_jaffle_shop", ), render_config=RenderConfig( test_behavior=TestBehavior.BUILD, diff --git a/dev/dags/example_source_rendering.py b/dev/dags/example_source_rendering.py index 91607909d..07f757dd6 100644 --- a/dev/dags/example_source_rendering.py +++ b/dev/dags/example_source_rendering.py @@ -26,7 +26,7 @@ source_rendering_dag = DbtDag( # dbt/cosmos-specific parameters project_config=ProjectConfig( - DBT_ROOT_PATH / "jaffle_shop", + DBT_ROOT_PATH / "altered_jaffle_shop", ), profile_config=profile_config, operator_args={ diff --git a/tests/dbt/test_graph.py b/tests/dbt/test_graph.py index 499cc219c..5d8db4891 100644 --- a/tests/dbt/test_graph.py +++ b/tests/dbt/test_graph.py @@ -494,26 +494,26 @@ def test_load_via_dbt_ls_with_exclude(postgres_profile_config): # This test is dependent upon dbt >= 1.5.4 assert len(dbt_graph.nodes) == 9 expected_keys = [ - "model.jaffle_shop.customers", - "model.jaffle_shop.stg_customers", - "seed.jaffle_shop.raw_customers", - "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d", - "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", - "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", - "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707", - "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1", - "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada", + "model.altered_jaffle_shop.customers", + "model.altered_jaffle_shop.stg_customers", + "seed.altered_jaffle_shop.raw_customers", + "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d", + "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", + "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707", + "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1", + "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada", ] assert sorted(dbt_graph.nodes.keys()) == expected_keys - sample_node = dbt_graph.nodes["model.jaffle_shop.customers"] + sample_node = dbt_graph.nodes["model.altered_jaffle_shop.customers"] assert sample_node.name == "customers" - assert sample_node.unique_id == "model.jaffle_shop.customers" + assert sample_node.unique_id == "model.altered_jaffle_shop.customers" assert sample_node.resource_type == DbtResourceType.MODEL assert sample_node.depends_on == [ - "model.jaffle_shop.stg_customers", - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments", + "model.altered_jaffle_shop.stg_customers", + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments", ] assert sample_node.file_path == DBT_PROJECTS_ROOT_DIR / ALTERED_DBT_PROJECT_NAME / "models/customers.sql" @@ -632,8 +632,8 @@ def test_load_via_dbt_ls_with_sources(load_method): ) getattr(dbt_graph, load_method)() assert len(dbt_graph.nodes) >= 4 - assert "source.jaffle_shop.postgres_db.raw_customers" in dbt_graph.nodes - assert "exposure.jaffle_shop.weekly_metrics" in dbt_graph.nodes + assert "source.altered_jaffle_shop.postgres_db.raw_customers" in dbt_graph.nodes + assert "exposure.altered_jaffle_shop.weekly_metrics" in dbt_graph.nodes @pytest.mark.integration @@ -1442,7 +1442,7 @@ def test_load_via_dbt_ls_with_project_config_vars(): ), ) dbt_graph.load_via_dbt_ls() - assert dbt_graph.nodes["model.jaffle_shop.orders"].config["alias"] == "orders" + assert dbt_graph.nodes["model.altered_jaffle_shop.orders"].config["alias"] == "orders" @pytest.mark.integration @@ -1482,12 +1482,12 @@ def test_load_via_dbt_ls_with_selector_arg(tmp_altered_dbt_project_dir, postgres filtered_nodes = dbt_graph.filtered_nodes.keys() assert len(filtered_nodes) == 7 - assert "model.jaffle_shop.stg_customers" in filtered_nodes - assert "seed.jaffle_shop.raw_customers" in filtered_nodes + assert "model.altered_jaffle_shop.stg_customers" in filtered_nodes + assert "seed.altered_jaffle_shop.raw_customers" in filtered_nodes if SOURCE_RENDERING_BEHAVIOR == SourceRenderingBehavior.ALL: - assert "source.jaffle_shop.postgres_db.raw_customers" in filtered_nodes + assert "source.altered_jaffle_shop.postgres_db.raw_customers" in filtered_nodes # Four tests should be filtered - assert sum(node.startswith("test.jaffle_shop") for node in filtered_nodes) == 4 + assert sum(node.startswith("test.altered_jaffle_shop") for node in filtered_nodes) == 4 @pytest.mark.parametrize( diff --git a/tests/sample/manifest_source.json b/tests/sample/manifest_source.json index 7004eb070..ce335a51d 100644 --- a/tests/sample/manifest_source.json +++ b/tests/sample/manifest_source.json @@ -1,138 +1,138 @@ { "child_map": { - "exposure.jaffle_shop.weekly_metrics": [], - "model.jaffle_shop.customers": [ - "exposure.jaffle_shop.weekly_metrics", - "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d", - "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", - "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1" + "exposure.altered_jaffle_shop.weekly_metrics": [], + "model.altered_jaffle_shop.customers": [ + "exposure.altered_jaffle_shop.weekly_metrics", + "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d", + "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", + "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1" ], - "model.jaffle_shop.orders": [ - "test.jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3", - "test.jaffle_shop.not_null_orders_amount.106140f9fd", - "test.jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49", - "test.jaffle_shop.not_null_orders_coupon_amount.ab90c90625", - "test.jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59", - "test.jaffle_shop.not_null_orders_customer_id.c5f02694af", - "test.jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a", - "test.jaffle_shop.not_null_orders_order_id.cf6c17daed", - "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", - "test.jaffle_shop.unique_orders_order_id.fed79b3a6e" + "model.altered_jaffle_shop.orders": [ + "test.altered_jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3", + "test.altered_jaffle_shop.not_null_orders_amount.106140f9fd", + "test.altered_jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49", + "test.altered_jaffle_shop.not_null_orders_coupon_amount.ab90c90625", + "test.altered_jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59", + "test.altered_jaffle_shop.not_null_orders_customer_id.c5f02694af", + "test.altered_jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a", + "test.altered_jaffle_shop.not_null_orders_order_id.cf6c17daed", + "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", + "test.altered_jaffle_shop.unique_orders_order_id.fed79b3a6e" ], - "model.jaffle_shop.stg_customers": [ - "model.jaffle_shop.customers", - "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", - "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada" + "model.altered_jaffle_shop.stg_customers": [ + "model.altered_jaffle_shop.customers", + "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", + "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada" ], - "model.jaffle_shop.stg_orders": [ - "model.jaffle_shop.customers", - "model.jaffle_shop.orders", - "test.jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad", - "test.jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64", - "test.jaffle_shop.unique_stg_orders_order_id.e3b841c71a" + "model.altered_jaffle_shop.stg_orders": [ + "model.altered_jaffle_shop.customers", + "model.altered_jaffle_shop.orders", + "test.altered_jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad", + "test.altered_jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64", + "test.altered_jaffle_shop.unique_stg_orders_order_id.e3b841c71a" ], - "model.jaffle_shop.stg_payments": [ - "model.jaffle_shop.customers", - "model.jaffle_shop.orders", - "test.jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278", - "test.jaffle_shop.not_null_stg_payments_payment_id.c19cc50075", - "test.jaffle_shop.unique_stg_payments_payment_id.3744510712" + "model.altered_jaffle_shop.stg_payments": [ + "model.altered_jaffle_shop.customers", + "model.altered_jaffle_shop.orders", + "test.altered_jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278", + "test.altered_jaffle_shop.not_null_stg_payments_payment_id.c19cc50075", + "test.altered_jaffle_shop.unique_stg_payments_payment_id.3744510712" ], - "model.jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": [], - "seed.jaffle_shop.raw_customers": [ - "model.jaffle_shop.stg_customers", - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": [], + "seed.altered_jaffle_shop.raw_customers": [ + "model.altered_jaffle_shop.stg_customers", + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments" ], - "seed.jaffle_shop.raw_orders": [], - "seed.jaffle_shop.raw_payments": [], - "source.jaffle_shop.postgres_db.raw_customers": [ - "model.jaffle_shop.stg_customers", - "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", - "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707" + "seed.altered_jaffle_shop.raw_orders": [], + "seed.altered_jaffle_shop.raw_payments": [], + "source.altered_jaffle_shop.postgres_db.raw_customers": [ + "model.altered_jaffle_shop.stg_customers", + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", + "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707" ], - "source.jaffle_shop.postgres_db.raw_orders": [ - "model.jaffle_shop.stg_orders", - "test.jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454", - "test.jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247" + "source.altered_jaffle_shop.postgres_db.raw_orders": [ + "model.altered_jaffle_shop.stg_orders", + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454", + "test.altered_jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247" ], - "source.jaffle_shop.postgres_db.raw_payments": [ - "model.jaffle_shop.stg_payments", - "test.jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7", - "test.jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f" + "source.altered_jaffle_shop.postgres_db.raw_payments": [ + "model.altered_jaffle_shop.stg_payments", + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7", + "test.altered_jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f" ], - "test.jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": [], - "test.jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": [], - "test.jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": [], - "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d": [], - "test.jaffle_shop.not_null_orders_amount.106140f9fd": [], - "test.jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": [], - "test.jaffle_shop.not_null_orders_coupon_amount.ab90c90625": [], - "test.jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": [], - "test.jaffle_shop.not_null_orders_customer_id.c5f02694af": [], - "test.jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": [], - "test.jaffle_shop.not_null_orders_order_id.cf6c17daed": [], - "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": [], - "test.jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": [], - "test.jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": [], - "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": [], - "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": [], - "test.jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": [], - "test.jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": [], - "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": [], - "test.jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": [], - "test.jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": [], - "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1": [], - "test.jaffle_shop.unique_orders_order_id.fed79b3a6e": [], - "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada": [], - "test.jaffle_shop.unique_stg_orders_order_id.e3b841c71a": [], - "test.jaffle_shop.unique_stg_payments_payment_id.3744510712": [] + "test.altered_jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": [], + "test.altered_jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": [], + "test.altered_jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": [], + "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d": [], + "test.altered_jaffle_shop.not_null_orders_amount.106140f9fd": [], + "test.altered_jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": [], + "test.altered_jaffle_shop.not_null_orders_coupon_amount.ab90c90625": [], + "test.altered_jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": [], + "test.altered_jaffle_shop.not_null_orders_customer_id.c5f02694af": [], + "test.altered_jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": [], + "test.altered_jaffle_shop.not_null_orders_order_id.cf6c17daed": [], + "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": [], + "test.altered_jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": [], + "test.altered_jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": [], + "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": [], + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": [], + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": [], + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": [], + "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": [], + "test.altered_jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": [], + "test.altered_jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": [], + "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1": [], + "test.altered_jaffle_shop.unique_orders_order_id.fed79b3a6e": [], + "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada": [], + "test.altered_jaffle_shop.unique_stg_orders_order_id.e3b841c71a": [], + "test.altered_jaffle_shop.unique_stg_payments_payment_id.3744510712": [] }, "disabled": {}, "docs": { - "doc.dbt.__overview__": { - "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion", - "name": "__overview__", - "original_file_path": "docs/overview.md", - "package_name": "dbt", - "path": "overview.md", - "resource_type": "doc", - "unique_id": "doc.dbt.__overview__" - }, - "doc.jaffle_shop.__overview__": { + "doc.altered_jaffle_shop.__overview__": { "block_contents": "## Data Documentation for Jaffle Shop\n\n`jaffle_shop` is a fictional ecommerce store.\n\nThis [dbt](https://www.getdbt.com/) project is for testing out code.\n\nThe source code can be found [here](https://github.com/clrcrl/jaffle_shop).", "name": "__overview__", "original_file_path": "models/overview.md", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "path": "overview.md", "resource_type": "doc", - "unique_id": "doc.jaffle_shop.__overview__" + "unique_id": "doc.altered_jaffle_shop.__overview__" }, - "doc.jaffle_shop.orders_status": { + "doc.altered_jaffle_shop.orders_status": { "block_contents": "Orders can be one of the following statuses:\n\n| status | description |\n|----------------|------------------------------------------------------------------------------------------------------------------------|\n| placed | The order has been placed but has not yet left the warehouse |\n| shipped | The order has ben shipped to the customer and is currently in transit |\n| completed | The order has been received by the customer |\n| return_pending | The customer has indicated that they would like to return the order, but it has not yet been received at the warehouse |\n| returned | The order has been returned by the customer and received at the warehouse |", "name": "orders_status", "original_file_path": "models/docs.md", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "path": "docs.md", "resource_type": "doc", - "unique_id": "doc.jaffle_shop.orders_status" + "unique_id": "doc.altered_jaffle_shop.orders_status" + }, + "doc.dbt.__overview__": { + "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion", + "name": "__overview__", + "original_file_path": "docs/overview.md", + "package_name": "dbt", + "path": "overview.md", + "resource_type": "doc", + "unique_id": "doc.dbt.__overview__" } }, "exposures": { - "exposure.jaffle_shop.weekly_metrics": { + "exposure.altered_jaffle_shop.weekly_metrics": { "config": { "enabled": true }, - "created_at": 1733768712.78008, + "created_at": 1734513348.0952919, "depends_on": { "macros": [], "nodes": [ - "model.jaffle_shop.customers" + "model.altered_jaffle_shop.customers" ] }, "description": "", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "weekly_metrics" ], "label": "Jaffle shop metrics", @@ -145,7 +145,7 @@ "email": "team@astronomer-cosmos.org", "name": "Cosmos Team" }, - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "path": "exposures.yml", "refs": [ { @@ -158,7 +158,7 @@ "sources": [], "tags": [], "type": "dashboard", - "unique_id": "exposure.jaffle_shop.weekly_metrics", + "unique_id": "exposure.altered_jaffle_shop.weekly_metrics", "unrendered_config": {}, "url": null } @@ -166,9 +166,33 @@ "group_map": {}, "groups": {}, "macros": { + "macro.altered_jaffle_shop.drop_table_by_name": { + "arguments": [], + "created_at": 1734424534.239771, + "depends_on": { + "macros": [ + "macro.dbt.run_query" + ] + }, + "description": "", + "docs": { + "node_color": null, + "show": true + }, + "macro_sql": "{%- macro drop_table_by_name(table_name) -%}\n {%- set drop_query -%}\n DROP TABLE IF EXISTS {{ target.schema }}.{{ table_name }} CASCADE\n {%- endset -%}\n {% do run_query(drop_query) %}\n{%- endmacro -%}", + "meta": {}, + "name": "drop_table_by_name", + "original_file_path": "macros/drop_table.sql", + "package_name": "altered_jaffle_shop", + "patch_path": null, + "path": "macros/drop_table.sql", + "resource_type": "macro", + "supported_languages": null, + "unique_id": "macro.altered_jaffle_shop.drop_table_by_name" + }, "macro.dbt._split_part_negative": { "arguments": [], - "created_at": 1733768712.099639, + "created_at": 1734424534.418488, "depends_on": { "macros": [] }, @@ -190,7 +214,7 @@ }, "macro.dbt.after_commit": { "arguments": [], - "created_at": 1733768711.9226398, + "created_at": 1734424534.268051, "depends_on": { "macros": [ "macro.dbt.make_hook_config" @@ -214,7 +238,7 @@ }, "macro.dbt.alter_column_comment": { "arguments": [], - "created_at": 1733768712.119901, + "created_at": 1734424534.436566, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__alter_column_comment" @@ -238,7 +262,7 @@ }, "macro.dbt.alter_column_type": { "arguments": [], - "created_at": 1733768712.133354, + "created_at": 1734424534.4486568, "depends_on": { "macros": [ "macro.dbt.default__alter_column_type" @@ -262,7 +286,7 @@ }, "macro.dbt.alter_relation_add_remove_columns": { "arguments": [], - "created_at": 1733768712.134187, + "created_at": 1734424534.449389, "depends_on": { "macros": [ "macro.dbt.default__alter_relation_add_remove_columns" @@ -286,7 +310,7 @@ }, "macro.dbt.alter_relation_comment": { "arguments": [], - "created_at": 1733768712.120249, + "created_at": 1734424534.436886, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__alter_relation_comment" @@ -310,7 +334,7 @@ }, "macro.dbt.any_value": { "arguments": [], - "created_at": 1733768712.093523, + "created_at": 1734424534.41291, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__any_value" @@ -334,7 +358,7 @@ }, "macro.dbt.apply_grants": { "arguments": [], - "created_at": 1733768712.117336, + "created_at": 1734424534.434309, "depends_on": { "macros": [ "macro.dbt.default__apply_grants" @@ -358,7 +382,7 @@ }, "macro.dbt.array_append": { "arguments": [], - "created_at": 1733768712.100876, + "created_at": 1734424534.41961, "depends_on": { "macros": [ "macro.dbt.default__array_append" @@ -382,7 +406,7 @@ }, "macro.dbt.array_concat": { "arguments": [], - "created_at": 1733768712.09752, + "created_at": 1734424534.41654, "depends_on": { "macros": [ "macro.dbt.default__array_concat" @@ -406,7 +430,7 @@ }, "macro.dbt.array_construct": { "arguments": [], - "created_at": 1733768712.100371, + "created_at": 1734424534.419162, "depends_on": { "macros": [ "macro.dbt.default__array_construct" @@ -430,7 +454,7 @@ }, "macro.dbt.assert_columns_equivalent": { "arguments": [], - "created_at": 1733768712.065886, + "created_at": 1734424534.3879302, "depends_on": { "macros": [ "macro.dbt.get_column_schema_from_query", @@ -456,7 +480,7 @@ }, "macro.dbt.before_begin": { "arguments": [], - "created_at": 1733768711.9220648, + "created_at": 1734424534.267797, "depends_on": { "macros": [ "macro.dbt.make_hook_config" @@ -480,7 +504,7 @@ }, "macro.dbt.bool_or": { "arguments": [], - "created_at": 1733768712.0979562, + "created_at": 1734424534.416933, "depends_on": { "macros": [ "macro.dbt.default__bool_or" @@ -504,7 +528,7 @@ }, "macro.dbt.build_config_dict": { "arguments": [], - "created_at": 1733768712.14355, + "created_at": 1734424534.458, "depends_on": { "macros": [] }, @@ -526,7 +550,7 @@ }, "macro.dbt.build_ref_function": { "arguments": [], - "created_at": 1733768712.142638, + "created_at": 1734424534.457108, "depends_on": { "macros": [ "macro.dbt.resolve_model_name" @@ -550,7 +574,7 @@ }, "macro.dbt.build_snapshot_staging_table": { "arguments": [], - "created_at": 1733768711.9419231, + "created_at": 1734424534.2857862, "depends_on": { "macros": [ "macro.dbt.make_temp_relation", @@ -577,7 +601,7 @@ }, "macro.dbt.build_snapshot_table": { "arguments": [], - "created_at": 1733768711.9411252, + "created_at": 1734424534.2850409, "depends_on": { "macros": [ "macro.dbt.default__build_snapshot_table" @@ -601,7 +625,7 @@ }, "macro.dbt.build_source_function": { "arguments": [], - "created_at": 1733768712.143021, + "created_at": 1734424534.45746, "depends_on": { "macros": [ "macro.dbt.resolve_model_name" @@ -625,7 +649,7 @@ }, "macro.dbt.call_dcl_statements": { "arguments": [], - "created_at": 1733768712.1169028, + "created_at": 1734424534.4339, "depends_on": { "macros": [ "macro.dbt.default__call_dcl_statements" @@ -649,7 +673,7 @@ }, "macro.dbt.can_clone_table": { "arguments": [], - "created_at": 1733768712.000415, + "created_at": 1734424534.339169, "depends_on": { "macros": [ "macro.dbt.default__can_clone_table" @@ -673,7 +697,7 @@ }, "macro.dbt.cast": { "arguments": [], - "created_at": 1733768712.0931609, + "created_at": 1734424534.4126, "depends_on": { "macros": [ "macro.dbt.default__cast" @@ -697,7 +721,7 @@ }, "macro.dbt.cast_bool_to_text": { "arguments": [], - "created_at": 1733768712.092747, + "created_at": 1734424534.412215, "depends_on": { "macros": [ "macro.dbt.default__cast_bool_to_text" @@ -721,7 +745,7 @@ }, "macro.dbt.check_for_schema_changes": { "arguments": [], - "created_at": 1733768711.9982378, + "created_at": 1734424534.337208, "depends_on": { "macros": [ "macro.dbt.diff_columns", @@ -746,7 +770,7 @@ }, "macro.dbt.check_schema_exists": { "arguments": [], - "created_at": 1733768712.126227, + "created_at": 1734424534.442226, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__check_schema_exists" @@ -770,7 +794,7 @@ }, "macro.dbt.check_time_data_types": { "arguments": [], - "created_at": 1733768711.942948, + "created_at": 1734424534.286711, "depends_on": { "macros": [ "macro.dbt.get_updated_at_column_data_type", @@ -795,7 +819,7 @@ }, "macro.dbt.collect_freshness": { "arguments": [], - "created_at": 1733768712.111316, + "created_at": 1734424534.428837, "depends_on": { "macros": [ "macro.dbt.default__collect_freshness" @@ -819,7 +843,7 @@ }, "macro.dbt.concat": { "arguments": [], - "created_at": 1733768712.0856168, + "created_at": 1734424534.406243, "depends_on": { "macros": [ "macro.dbt.default__concat" @@ -843,7 +867,7 @@ }, "macro.dbt.convert_datetime": { "arguments": [], - "created_at": 1733768712.08024, + "created_at": 1734424534.4012249, "depends_on": { "macros": [] }, @@ -865,7 +889,7 @@ }, "macro.dbt.copy_grants": { "arguments": [], - "created_at": 1733768712.1137989, + "created_at": 1734424534.4311612, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__copy_grants" @@ -889,7 +913,7 @@ }, "macro.dbt.create_columns": { "arguments": [], - "created_at": 1733768711.93854, + "created_at": 1734424534.282666, "depends_on": { "macros": [ "macro.dbt.default__create_columns" @@ -913,7 +937,7 @@ }, "macro.dbt.create_csv_table": { "arguments": [], - "created_at": 1733768712.043387, + "created_at": 1734424534.368188, "depends_on": { "macros": [ "macro.dbt.default__create_csv_table" @@ -937,7 +961,7 @@ }, "macro.dbt.create_indexes": { "arguments": [], - "created_at": 1733768712.104935, + "created_at": 1734424534.4234009, "depends_on": { "macros": [ "macro.dbt.default__create_indexes" @@ -961,7 +985,7 @@ }, "macro.dbt.create_or_replace_clone": { "arguments": [], - "created_at": 1733768712.000809, + "created_at": 1734424534.33951, "depends_on": { "macros": [ "macro.dbt.default__create_or_replace_clone" @@ -985,7 +1009,7 @@ }, "macro.dbt.create_or_replace_view": { "arguments": [], - "created_at": 1733768712.07297, + "created_at": 1734424534.3944478, "depends_on": { "macros": [ "macro.dbt.run_hooks", @@ -1015,7 +1039,7 @@ }, "macro.dbt.create_schema": { "arguments": [], - "created_at": 1733768712.101356, + "created_at": 1734424534.420053, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__create_schema" @@ -1039,7 +1063,7 @@ }, "macro.dbt.create_table_as": { "arguments": [], - "created_at": 1733768712.069162, + "created_at": 1734424534.390883, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__create_table_as" @@ -1063,7 +1087,7 @@ }, "macro.dbt.create_view_as": { "arguments": [], - "created_at": 1733768712.0744681, + "created_at": 1734424534.3958678, "depends_on": { "macros": [ "macro.dbt.default__create_view_as" @@ -1087,7 +1111,7 @@ }, "macro.dbt.current_timestamp": { "arguments": [], - "created_at": 1733768712.1024861, + "created_at": 1734424534.421111, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__current_timestamp" @@ -1111,7 +1135,7 @@ }, "macro.dbt.current_timestamp_backcompat": { "arguments": [], - "created_at": 1733768712.103471, + "created_at": 1734424534.4220212, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__current_timestamp_backcompat" @@ -1135,7 +1159,7 @@ }, "macro.dbt.current_timestamp_in_utc_backcompat": { "arguments": [], - "created_at": 1733768712.10371, + "created_at": 1734424534.422236, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat" @@ -1159,7 +1183,7 @@ }, "macro.dbt.date": { "arguments": [], - "created_at": 1733768712.084675, + "created_at": 1734424534.40538, "depends_on": { "macros": [ "macro.dbt.default__date" @@ -1183,7 +1207,7 @@ }, "macro.dbt.date_spine": { "arguments": [], - "created_at": 1733768712.084023, + "created_at": 1734424534.404769, "depends_on": { "macros": [ "macro.dbt.default__date_spine" @@ -1207,7 +1231,7 @@ }, "macro.dbt.date_trunc": { "arguments": [], - "created_at": 1733768712.099894, + "created_at": 1734424534.418726, "depends_on": { "macros": [ "macro.dbt.default__date_trunc" @@ -1231,7 +1255,7 @@ }, "macro.dbt.dateadd": { "arguments": [], - "created_at": 1733768712.088691, + "created_at": 1734424534.4086652, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__dateadd" @@ -1255,7 +1279,7 @@ }, "macro.dbt.datediff": { "arguments": [], - "created_at": 1733768712.09153, + "created_at": 1734424534.4110951, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__datediff" @@ -1279,7 +1303,7 @@ }, "macro.dbt.dates_in_range": { "arguments": [], - "created_at": 1733768712.081387, + "created_at": 1734424534.402285, "depends_on": { "macros": [ "macro.dbt.convert_datetime" @@ -1303,7 +1327,7 @@ }, "macro.dbt.default__alter_column_comment": { "arguments": [], - "created_at": 1733768712.120061, + "created_at": 1734424534.4367108, "depends_on": { "macros": [] }, @@ -1325,7 +1349,7 @@ }, "macro.dbt.default__alter_column_type": { "arguments": [], - "created_at": 1733768712.13395, + "created_at": 1734424534.449179, "depends_on": { "macros": [ "macro.dbt.statement" @@ -1349,7 +1373,7 @@ }, "macro.dbt.default__alter_relation_add_remove_columns": { "arguments": [], - "created_at": 1733768712.134961, + "created_at": 1734424534.450114, "depends_on": { "macros": [ "macro.dbt.run_query" @@ -1373,7 +1397,7 @@ }, "macro.dbt.default__alter_relation_comment": { "arguments": [], - "created_at": 1733768712.120404, + "created_at": 1734424534.437035, "depends_on": { "macros": [] }, @@ -1395,7 +1419,7 @@ }, "macro.dbt.default__any_value": { "arguments": [], - "created_at": 1733768712.093714, + "created_at": 1734424534.413053, "depends_on": { "macros": [] }, @@ -1417,7 +1441,7 @@ }, "macro.dbt.default__apply_grants": { "arguments": [], - "created_at": 1733768712.118434, + "created_at": 1734424534.435285, "depends_on": { "macros": [ "macro.dbt.run_query", @@ -1444,7 +1468,7 @@ }, "macro.dbt.default__array_append": { "arguments": [], - "created_at": 1733768712.101006, + "created_at": 1734424534.419729, "depends_on": { "macros": [] }, @@ -1466,7 +1490,7 @@ }, "macro.dbt.default__array_concat": { "arguments": [], - "created_at": 1733768712.097717, + "created_at": 1734424534.4167192, "depends_on": { "macros": [] }, @@ -1488,7 +1512,7 @@ }, "macro.dbt.default__array_construct": { "arguments": [], - "created_at": 1733768712.1006138, + "created_at": 1734424534.419368, "depends_on": { "macros": [] }, @@ -1510,7 +1534,7 @@ }, "macro.dbt.default__bool_or": { "arguments": [], - "created_at": 1733768712.098058, + "created_at": 1734424534.417026, "depends_on": { "macros": [] }, @@ -1532,7 +1556,7 @@ }, "macro.dbt.default__build_snapshot_table": { "arguments": [], - "created_at": 1733768711.941532, + "created_at": 1734424534.28542, "depends_on": { "macros": [ "macro.dbt.get_snapshot_table_column_names" @@ -1556,7 +1580,7 @@ }, "macro.dbt.default__call_dcl_statements": { "arguments": [], - "created_at": 1733768712.117127, + "created_at": 1734424534.434108, "depends_on": { "macros": [ "macro.dbt.statement" @@ -1580,7 +1604,7 @@ }, "macro.dbt.default__can_clone_table": { "arguments": [], - "created_at": 1733768712.00053, + "created_at": 1734424534.3392751, "depends_on": { "macros": [] }, @@ -1602,7 +1626,7 @@ }, "macro.dbt.default__cast": { "arguments": [], - "created_at": 1733768712.093292, + "created_at": 1734424534.412711, "depends_on": { "macros": [] }, @@ -1624,7 +1648,7 @@ }, "macro.dbt.default__cast_bool_to_text": { "arguments": [], - "created_at": 1733768712.0929, + "created_at": 1734424534.412359, "depends_on": { "macros": [] }, @@ -1646,7 +1670,7 @@ }, "macro.dbt.default__check_schema_exists": { "arguments": [], - "created_at": 1733768712.1265018, + "created_at": 1734424534.442488, "depends_on": { "macros": [ "macro.dbt.replace", @@ -1671,7 +1695,7 @@ }, "macro.dbt.default__collect_freshness": { "arguments": [], - "created_at": 1733768712.111687, + "created_at": 1734424534.429185, "depends_on": { "macros": [ "macro.dbt.statement", @@ -1696,7 +1720,7 @@ }, "macro.dbt.default__concat": { "arguments": [], - "created_at": 1733768712.0857332, + "created_at": 1734424534.406346, "depends_on": { "macros": [] }, @@ -1718,7 +1742,7 @@ }, "macro.dbt.default__copy_grants": { "arguments": [], - "created_at": 1733768712.11391, + "created_at": 1734424534.4312692, "depends_on": { "macros": [] }, @@ -1740,7 +1764,7 @@ }, "macro.dbt.default__create_columns": { "arguments": [], - "created_at": 1733768711.938824, + "created_at": 1734424534.28292, "depends_on": { "macros": [ "macro.dbt.statement" @@ -1764,7 +1788,7 @@ }, "macro.dbt.default__create_csv_table": { "arguments": [], - "created_at": 1733768712.044342, + "created_at": 1734424534.3689642, "depends_on": { "macros": [ "macro.dbt.statement" @@ -1788,7 +1812,7 @@ }, "macro.dbt.default__create_indexes": { "arguments": [], - "created_at": 1733768712.105481, + "created_at": 1734424534.423722, "depends_on": { "macros": [ "macro.dbt.get_create_index_sql", @@ -1813,7 +1837,7 @@ }, "macro.dbt.default__create_or_replace_clone": { "arguments": [], - "created_at": 1733768712.0009642, + "created_at": 1734424534.339648, "depends_on": { "macros": [] }, @@ -1835,7 +1859,7 @@ }, "macro.dbt.default__create_schema": { "arguments": [], - "created_at": 1733768712.10153, + "created_at": 1734424534.4202151, "depends_on": { "macros": [ "macro.dbt.statement" @@ -1859,7 +1883,7 @@ }, "macro.dbt.default__create_table_as": { "arguments": [], - "created_at": 1733768712.069799, + "created_at": 1734424534.391475, "depends_on": { "macros": [ "macro.dbt.get_assert_columns_equivalent", @@ -1885,7 +1909,7 @@ }, "macro.dbt.default__create_view_as": { "arguments": [], - "created_at": 1733768712.074867, + "created_at": 1734424534.396245, "depends_on": { "macros": [ "macro.dbt.get_assert_columns_equivalent" @@ -1909,7 +1933,7 @@ }, "macro.dbt.default__current_timestamp": { "arguments": [], - "created_at": 1733768712.1026921, + "created_at": 1734424534.421298, "depends_on": { "macros": [] }, @@ -1931,7 +1955,7 @@ }, "macro.dbt.default__current_timestamp_backcompat": { "arguments": [], - "created_at": 1733768712.1035452, + "created_at": 1734424534.422091, "depends_on": { "macros": [] }, @@ -1953,7 +1977,7 @@ }, "macro.dbt.default__current_timestamp_in_utc_backcompat": { "arguments": [], - "created_at": 1733768712.103866, + "created_at": 1734424534.422387, "depends_on": { "macros": [ "macro.dbt.current_timestamp_backcompat", @@ -1978,7 +2002,7 @@ }, "macro.dbt.default__date": { "arguments": [], - "created_at": 1733768712.084935, + "created_at": 1734424534.405625, "depends_on": { "macros": [] }, @@ -2000,7 +2024,7 @@ }, "macro.dbt.default__date_spine": { "arguments": [], - "created_at": 1733768712.0843651, + "created_at": 1734424534.4050891, "depends_on": { "macros": [ "macro.dbt.generate_series", @@ -2026,7 +2050,7 @@ }, "macro.dbt.default__date_trunc": { "arguments": [], - "created_at": 1733768712.1000252, + "created_at": 1734424534.4188402, "depends_on": { "macros": [] }, @@ -2048,7 +2072,7 @@ }, "macro.dbt.default__dateadd": { "arguments": [], - "created_at": 1733768712.088952, + "created_at": 1734424534.4088728, "depends_on": { "macros": [] }, @@ -2070,7 +2094,7 @@ }, "macro.dbt.default__datediff": { "arguments": [], - "created_at": 1733768712.091698, + "created_at": 1734424534.411239, "depends_on": { "macros": [] }, @@ -2092,7 +2116,7 @@ }, "macro.dbt.default__drop_materialized_view": { "arguments": [], - "created_at": 1733768712.0595782, + "created_at": 1734424534.382422, "depends_on": { "macros": [] }, @@ -2114,7 +2138,7 @@ }, "macro.dbt.default__drop_relation": { "arguments": [], - "created_at": 1733768712.051782, + "created_at": 1734424534.375467, "depends_on": { "macros": [ "macro.dbt.statement", @@ -2139,7 +2163,7 @@ }, "macro.dbt.default__drop_schema": { "arguments": [], - "created_at": 1733768712.101855, + "created_at": 1734424534.420518, "depends_on": { "macros": [ "macro.dbt.statement" @@ -2163,7 +2187,7 @@ }, "macro.dbt.default__drop_schema_named": { "arguments": [], - "created_at": 1733768712.0549572, + "created_at": 1734424534.378379, "depends_on": { "macros": [] }, @@ -2185,7 +2209,7 @@ }, "macro.dbt.default__drop_table": { "arguments": [], - "created_at": 1733768712.066952, + "created_at": 1734424534.3888571, "depends_on": { "macros": [] }, @@ -2207,7 +2231,7 @@ }, "macro.dbt.default__drop_view": { "arguments": [], - "created_at": 1733768712.070913, + "created_at": 1734424534.392517, "depends_on": { "macros": [] }, @@ -2229,7 +2253,7 @@ }, "macro.dbt.default__escape_single_quotes": { "arguments": [], - "created_at": 1733768712.0896618, + "created_at": 1734424534.409488, "depends_on": { "macros": [] }, @@ -2251,7 +2275,7 @@ }, "macro.dbt.default__except": { "arguments": [], - "created_at": 1733768712.0825658, + "created_at": 1734424534.403399, "depends_on": { "macros": [] }, @@ -2273,7 +2297,7 @@ }, "macro.dbt.default__format_column": { "arguments": [], - "created_at": 1733768712.066566, + "created_at": 1734424534.388528, "depends_on": { "macros": [] }, @@ -2295,7 +2319,7 @@ }, "macro.dbt.default__generate_alias_name": { "arguments": [], - "created_at": 1733768712.048756, + "created_at": 1734424534.372624, "depends_on": { "macros": [] }, @@ -2317,7 +2341,7 @@ }, "macro.dbt.default__generate_database_name": { "arguments": [], - "created_at": 1733768712.050381, + "created_at": 1734424534.374149, "depends_on": { "macros": [] }, @@ -2339,7 +2363,7 @@ }, "macro.dbt.default__generate_schema_name": { "arguments": [], - "created_at": 1733768712.049511, + "created_at": 1734424534.373324, "depends_on": { "macros": [] }, @@ -2361,7 +2385,7 @@ }, "macro.dbt.default__generate_series": { "arguments": [], - "created_at": 1733768712.0877252, + "created_at": 1734424534.408043, "depends_on": { "macros": [ "macro.dbt.get_powers_of_two" @@ -2385,7 +2409,7 @@ }, "macro.dbt.default__get_alter_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768712.061863, + "created_at": 1734424534.38433, "depends_on": { "macros": [] }, @@ -2407,7 +2431,7 @@ }, "macro.dbt.default__get_assert_columns_equivalent": { "arguments": [], - "created_at": 1733768712.0645802, + "created_at": 1734424534.386812, "depends_on": { "macros": [ "macro.dbt.assert_columns_equivalent" @@ -2431,7 +2455,7 @@ }, "macro.dbt.default__get_batch_size": { "arguments": [], - "created_at": 1733768712.0459452, + "created_at": 1734424534.3702981, "depends_on": { "macros": [] }, @@ -2453,7 +2477,7 @@ }, "macro.dbt.default__get_binding_char": { "arguments": [], - "created_at": 1733768712.045675, + "created_at": 1734424534.370068, "depends_on": { "macros": [] }, @@ -2475,7 +2499,7 @@ }, "macro.dbt.default__get_catalog": { "arguments": [], - "created_at": 1733768712.125313, + "created_at": 1734424534.441374, "depends_on": { "macros": [] }, @@ -2497,7 +2521,7 @@ }, "macro.dbt.default__get_catalog_for_single_relation": { "arguments": [], - "created_at": 1733768712.127157, + "created_at": 1734424534.443087, "depends_on": { "macros": [] }, @@ -2519,7 +2543,7 @@ }, "macro.dbt.default__get_catalog_relations": { "arguments": [], - "created_at": 1733768712.124882, + "created_at": 1734424534.440966, "depends_on": { "macros": [] }, @@ -2541,7 +2565,7 @@ }, "macro.dbt.default__get_column_names": { "arguments": [], - "created_at": 1733768712.0702238, + "created_at": 1734424534.391875, "depends_on": { "macros": [] }, @@ -2563,7 +2587,7 @@ }, "macro.dbt.default__get_columns_in_query": { "arguments": [], - "created_at": 1733768712.13314, + "created_at": 1734424534.44847, "depends_on": { "macros": [ "macro.dbt.statement", @@ -2588,7 +2612,7 @@ }, "macro.dbt.default__get_columns_in_relation": { "arguments": [], - "created_at": 1733768712.130395, + "created_at": 1734424534.445906, "depends_on": { "macros": [] }, @@ -2610,7 +2634,7 @@ }, "macro.dbt.default__get_create_backup_sql": { "arguments": [], - "created_at": 1733768712.057784, + "created_at": 1734424534.3808131, "depends_on": { "macros": [ "macro.dbt.make_backup_relation", @@ -2636,7 +2660,7 @@ }, "macro.dbt.default__get_create_index_sql": { "arguments": [], - "created_at": 1733768712.104789, + "created_at": 1734424534.423263, "depends_on": { "macros": [] }, @@ -2658,7 +2682,7 @@ }, "macro.dbt.default__get_create_intermediate_sql": { "arguments": [], - "created_at": 1733768712.054506, + "created_at": 1734424534.377988, "depends_on": { "macros": [ "macro.dbt.make_intermediate_relation", @@ -2684,7 +2708,7 @@ }, "macro.dbt.default__get_create_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768712.062708, + "created_at": 1734424534.385073, "depends_on": { "macros": [] }, @@ -2706,7 +2730,7 @@ }, "macro.dbt.default__get_create_sql": { "arguments": [], - "created_at": 1733768712.058648, + "created_at": 1734424534.381613, "depends_on": { "macros": [ "macro.dbt.get_create_view_as_sql", @@ -2732,7 +2756,7 @@ }, "macro.dbt.default__get_create_table_as_sql": { "arguments": [], - "created_at": 1733768712.068762, + "created_at": 1734424534.390505, "depends_on": { "macros": [ "macro.dbt.create_table_as" @@ -2756,7 +2780,7 @@ }, "macro.dbt.default__get_create_view_as_sql": { "arguments": [], - "created_at": 1733768712.074301, + "created_at": 1734424534.395709, "depends_on": { "macros": [ "macro.dbt.create_view_as" @@ -2780,7 +2804,7 @@ }, "macro.dbt.default__get_csv_sql": { "arguments": [], - "created_at": 1733768712.0454211, + "created_at": 1734424534.369843, "depends_on": { "macros": [] }, @@ -2802,7 +2826,7 @@ }, "macro.dbt.default__get_dcl_statement_list": { "arguments": [], - "created_at": 1733768712.116728, + "created_at": 1734424534.4337301, "depends_on": { "macros": [ "macro.dbt.support_multiple_grantees_per_dcl_statement" @@ -2826,7 +2850,7 @@ }, "macro.dbt.default__get_delete_insert_merge_sql": { "arguments": [], - "created_at": 1733768711.981184, + "created_at": 1734424534.321889, "depends_on": { "macros": [ "macro.dbt.get_quoted_csv" @@ -2850,7 +2874,7 @@ }, "macro.dbt.default__get_drop_backup_sql": { "arguments": [], - "created_at": 1733768712.055574, + "created_at": 1734424534.378811, "depends_on": { "macros": [ "macro.dbt.make_backup_relation", @@ -2875,7 +2899,7 @@ }, "macro.dbt.default__get_drop_index_sql": { "arguments": [], - "created_at": 1733768712.105823, + "created_at": 1734424534.423986, "depends_on": { "macros": [] }, @@ -2897,7 +2921,7 @@ }, "macro.dbt.default__get_drop_sql": { "arguments": [], - "created_at": 1733768712.051417, + "created_at": 1734424534.3751318, "depends_on": { "macros": [ "macro.dbt.drop_view", @@ -2923,7 +2947,7 @@ }, "macro.dbt.default__get_empty_schema_sql": { "arguments": [], - "created_at": 1733768712.132318, + "created_at": 1734424534.447689, "depends_on": { "macros": [ "macro.dbt.cast" @@ -2947,7 +2971,7 @@ }, "macro.dbt.default__get_empty_subquery_sql": { "arguments": [], - "created_at": 1733768712.131079, + "created_at": 1734424534.4465432, "depends_on": { "macros": [] }, @@ -2969,7 +2993,7 @@ }, "macro.dbt.default__get_grant_sql": { "arguments": [], - "created_at": 1733768712.115499, + "created_at": 1734424534.432637, "depends_on": { "macros": [] }, @@ -2991,7 +3015,7 @@ }, "macro.dbt.default__get_incremental_append_sql": { "arguments": [], - "created_at": 1733768711.9839628, + "created_at": 1734424534.3244002, "depends_on": { "macros": [ "macro.dbt.get_insert_into_sql" @@ -3015,7 +3039,7 @@ }, "macro.dbt.default__get_incremental_default_sql": { "arguments": [], - "created_at": 1733768711.98561, + "created_at": 1734424534.325929, "depends_on": { "macros": [ "macro.dbt.get_incremental_append_sql" @@ -3039,7 +3063,7 @@ }, "macro.dbt.default__get_incremental_delete_insert_sql": { "arguments": [], - "created_at": 1733768711.984427, + "created_at": 1734424534.324822, "depends_on": { "macros": [ "macro.dbt.get_delete_insert_merge_sql" @@ -3063,7 +3087,7 @@ }, "macro.dbt.default__get_incremental_insert_overwrite_sql": { "arguments": [], - "created_at": 1733768711.9853, + "created_at": 1734424534.325639, "depends_on": { "macros": [ "macro.dbt.get_insert_overwrite_merge_sql" @@ -3087,7 +3111,7 @@ }, "macro.dbt.default__get_incremental_merge_sql": { "arguments": [], - "created_at": 1733768711.984875, + "created_at": 1734424534.325242, "depends_on": { "macros": [ "macro.dbt.get_merge_sql" @@ -3111,7 +3135,7 @@ }, "macro.dbt.default__get_incremental_microbatch_sql": { "arguments": [], - "created_at": 1733768711.985931, + "created_at": 1734424534.3262138, "depends_on": { "macros": [] }, @@ -3133,7 +3157,7 @@ }, "macro.dbt.default__get_insert_overwrite_merge_sql": { "arguments": [], - "created_at": 1733768711.9820359, + "created_at": 1734424534.3226712, "depends_on": { "macros": [ "macro.dbt.get_quoted_csv" @@ -3157,7 +3181,7 @@ }, "macro.dbt.default__get_intervals_between": { "arguments": [], - "created_at": 1733768712.08381, + "created_at": 1734424534.4045691, "depends_on": { "macros": [ "macro.dbt.statement", @@ -3182,7 +3206,7 @@ }, "macro.dbt.default__get_limit_sql": { "arguments": [], - "created_at": 1733768712.119213, + "created_at": 1734424534.435966, "depends_on": { "macros": [] }, @@ -3204,7 +3228,7 @@ }, "macro.dbt.default__get_materialized_view_configuration_changes": { "arguments": [], - "created_at": 1733768712.062294, + "created_at": 1734424534.3847082, "depends_on": { "macros": [] }, @@ -3226,7 +3250,7 @@ }, "macro.dbt.default__get_merge_sql": { "arguments": [], - "created_at": 1733768711.980005, + "created_at": 1734424534.320811, "depends_on": { "macros": [ "macro.dbt.get_quoted_csv", @@ -3251,7 +3275,7 @@ }, "macro.dbt.default__get_merge_update_columns": { "arguments": [], - "created_at": 1733768711.97191, + "created_at": 1734424534.313301, "depends_on": { "macros": [] }, @@ -3273,7 +3297,7 @@ }, "macro.dbt.default__get_or_create_relation": { "arguments": [], - "created_at": 1733768712.110579, + "created_at": 1734424534.428148, "depends_on": { "macros": [] }, @@ -3295,7 +3319,7 @@ }, "macro.dbt.default__get_powers_of_two": { "arguments": [], - "created_at": 1733768712.086991, + "created_at": 1734424534.407433, "depends_on": { "macros": [] }, @@ -3317,7 +3341,7 @@ }, "macro.dbt.default__get_relation_last_modified": { "arguments": [], - "created_at": 1733768712.1280901, + "created_at": 1734424534.443755, "depends_on": { "macros": [] }, @@ -3339,7 +3363,7 @@ }, "macro.dbt.default__get_relations": { "arguments": [], - "created_at": 1733768712.1276422, + "created_at": 1734424534.4433742, "depends_on": { "macros": [] }, @@ -3361,7 +3385,7 @@ }, "macro.dbt.default__get_rename_intermediate_sql": { "arguments": [], - "created_at": 1733768712.059212, + "created_at": 1734424534.382091, "depends_on": { "macros": [ "macro.dbt.make_intermediate_relation", @@ -3386,7 +3410,7 @@ }, "macro.dbt.default__get_rename_materialized_view_sql": { "arguments": [], - "created_at": 1733768712.060888, + "created_at": 1734424534.383626, "depends_on": { "macros": [] }, @@ -3408,7 +3432,7 @@ }, "macro.dbt.default__get_rename_sql": { "arguments": [], - "created_at": 1733768712.056698, + "created_at": 1734424534.37981, "depends_on": { "macros": [ "macro.dbt.get_rename_view_sql", @@ -3434,7 +3458,7 @@ }, "macro.dbt.default__get_rename_table_sql": { "arguments": [], - "created_at": 1733768712.067787, + "created_at": 1734424534.389587, "depends_on": { "macros": [] }, @@ -3456,7 +3480,7 @@ }, "macro.dbt.default__get_rename_view_sql": { "arguments": [], - "created_at": 1733768712.073762, + "created_at": 1734424534.395199, "depends_on": { "macros": [] }, @@ -3478,7 +3502,7 @@ }, "macro.dbt.default__get_replace_materialized_view_sql": { "arguments": [], - "created_at": 1733768712.060069, + "created_at": 1734424534.38286, "depends_on": { "macros": [] }, @@ -3500,7 +3524,7 @@ }, "macro.dbt.default__get_replace_sql": { "arguments": [], - "created_at": 1733768712.0539079, + "created_at": 1734424534.377443, "depends_on": { "macros": [ "macro.dbt.get_replace_view_sql", @@ -3532,7 +3556,7 @@ }, "macro.dbt.default__get_replace_table_sql": { "arguments": [], - "created_at": 1733768712.0673852, + "created_at": 1734424534.389224, "depends_on": { "macros": [] }, @@ -3554,7 +3578,7 @@ }, "macro.dbt.default__get_replace_view_sql": { "arguments": [], - "created_at": 1733768712.07186, + "created_at": 1734424534.3934278, "depends_on": { "macros": [] }, @@ -3576,7 +3600,7 @@ }, "macro.dbt.default__get_revoke_sql": { "arguments": [], - "created_at": 1733768712.115904, + "created_at": 1734424534.432986, "depends_on": { "macros": [] }, @@ -3598,7 +3622,7 @@ }, "macro.dbt.default__get_select_subquery": { "arguments": [], - "created_at": 1733768712.070566, + "created_at": 1734424534.392194, "depends_on": { "macros": [ "macro.dbt.default__get_column_names" @@ -3622,7 +3646,7 @@ }, "macro.dbt.default__get_show_grant_sql": { "arguments": [], - "created_at": 1733768712.1147678, + "created_at": 1734424534.432091, "depends_on": { "macros": [] }, @@ -3644,7 +3668,7 @@ }, "macro.dbt.default__get_show_indexes_sql": { "arguments": [], - "created_at": 1733768712.106099, + "created_at": 1734424534.4242308, "depends_on": { "macros": [] }, @@ -3666,7 +3690,7 @@ }, "macro.dbt.default__get_table_columns_and_constraints": { "arguments": [], - "created_at": 1733768712.063787, + "created_at": 1734424534.386079, "depends_on": { "macros": [ "macro.dbt.table_columns_and_constraints" @@ -3690,7 +3714,7 @@ }, "macro.dbt.default__get_test_sql": { "arguments": [], - "created_at": 1733768711.952368, + "created_at": 1734424534.295273, "depends_on": { "macros": [] }, @@ -3712,7 +3736,7 @@ }, "macro.dbt.default__get_true_sql": { "arguments": [], - "created_at": 1733768711.939322, + "created_at": 1734424534.28339, "depends_on": { "macros": [] }, @@ -3734,7 +3758,7 @@ }, "macro.dbt.default__get_unit_test_sql": { "arguments": [], - "created_at": 1733768711.953221, + "created_at": 1734424534.29598, "depends_on": { "macros": [ "macro.dbt.string_literal" @@ -3758,7 +3782,7 @@ }, "macro.dbt.default__get_where_subquery": { "arguments": [], - "created_at": 1733768711.953933, + "created_at": 1734424534.29664, "depends_on": { "macros": [] }, @@ -3780,7 +3804,7 @@ }, "macro.dbt.default__handle_existing_table": { "arguments": [], - "created_at": 1733768712.0733728, + "created_at": 1734424534.39483, "depends_on": { "macros": [] }, @@ -3802,7 +3826,7 @@ }, "macro.dbt.default__hash": { "arguments": [], - "created_at": 1733768712.092513, + "created_at": 1734424534.411974, "depends_on": { "macros": [] }, @@ -3824,7 +3848,7 @@ }, "macro.dbt.default__information_schema_name": { "arguments": [], - "created_at": 1733768712.1256452, + "created_at": 1734424534.441678, "depends_on": { "macros": [] }, @@ -3846,7 +3870,7 @@ }, "macro.dbt.default__intersect": { "arguments": [], - "created_at": 1733768712.089279, + "created_at": 1734424534.409136, "depends_on": { "macros": [] }, @@ -3868,7 +3892,7 @@ }, "macro.dbt.default__last_day": { "arguments": [], - "created_at": 1733768712.098767, + "created_at": 1734424534.4176798, "depends_on": { "macros": [ "macro.dbt.default_last_day" @@ -3892,7 +3916,7 @@ }, "macro.dbt.default__length": { "arguments": [], - "created_at": 1733768712.0880818, + "created_at": 1734424534.408368, "depends_on": { "macros": [] }, @@ -3914,7 +3938,7 @@ }, "macro.dbt.default__list_relations_without_caching": { "arguments": [], - "created_at": 1733768712.126833, + "created_at": 1734424534.442786, "depends_on": { "macros": [] }, @@ -3936,7 +3960,7 @@ }, "macro.dbt.default__list_schemas": { "arguments": [], - "created_at": 1733768712.12604, + "created_at": 1734424534.442048, "depends_on": { "macros": [ "macro.dbt.information_schema_name", @@ -3961,7 +3985,7 @@ }, "macro.dbt.default__listagg": { "arguments": [], - "created_at": 1733768712.0910652, + "created_at": 1734424534.410801, "depends_on": { "macros": [] }, @@ -3983,7 +4007,7 @@ }, "macro.dbt.default__load_csv_rows": { "arguments": [], - "created_at": 1733768712.047956, + "created_at": 1734424534.3719208, "depends_on": { "macros": [ "macro.dbt.get_batch_size", @@ -4009,7 +4033,7 @@ }, "macro.dbt.default__make_backup_relation": { "arguments": [], - "created_at": 1733768712.109487, + "created_at": 1734424534.4271412, "depends_on": { "macros": [] }, @@ -4031,7 +4055,7 @@ }, "macro.dbt.default__make_intermediate_relation": { "arguments": [], - "created_at": 1733768712.108427, + "created_at": 1734424534.42616, "depends_on": { "macros": [ "macro.dbt.default__make_temp_relation" @@ -4055,7 +4079,7 @@ }, "macro.dbt.default__make_temp_relation": { "arguments": [], - "created_at": 1733768712.108973, + "created_at": 1734424534.4266582, "depends_on": { "macros": [] }, @@ -4077,7 +4101,7 @@ }, "macro.dbt.default__persist_docs": { "arguments": [], - "created_at": 1733768712.121331, + "created_at": 1734424534.437751, "depends_on": { "macros": [ "macro.dbt.run_query", @@ -4103,7 +4127,7 @@ }, "macro.dbt.default__position": { "arguments": [], - "created_at": 1733768712.094113, + "created_at": 1734424534.413399, "depends_on": { "macros": [] }, @@ -4125,7 +4149,7 @@ }, "macro.dbt.default__post_snapshot": { "arguments": [], - "created_at": 1733768711.939072, + "created_at": 1734424534.2831528, "depends_on": { "macros": [] }, @@ -4147,7 +4171,7 @@ }, "macro.dbt.default__refresh_materialized_view": { "arguments": [], - "created_at": 1733768712.0604951, + "created_at": 1734424534.383256, "depends_on": { "macros": [] }, @@ -4169,7 +4193,7 @@ }, "macro.dbt.default__rename_relation": { "arguments": [], - "created_at": 1733768712.0571961, + "created_at": 1734424534.3802629, "depends_on": { "macros": [ "macro.dbt.statement" @@ -4193,7 +4217,7 @@ }, "macro.dbt.default__replace": { "arguments": [], - "created_at": 1733768712.085391, + "created_at": 1734424534.406044, "depends_on": { "macros": [] }, @@ -4215,7 +4239,7 @@ }, "macro.dbt.default__reset_csv_table": { "arguments": [], - "created_at": 1733768712.045103, + "created_at": 1734424534.369575, "depends_on": { "macros": [ "macro.dbt.create_csv_table" @@ -4239,7 +4263,7 @@ }, "macro.dbt.default__resolve_model_name": { "arguments": [], - "created_at": 1733768712.141831, + "created_at": 1734424534.456415, "depends_on": { "macros": [] }, @@ -4261,7 +4285,7 @@ }, "macro.dbt.default__right": { "arguments": [], - "created_at": 1733768712.090067, + "created_at": 1734424534.409866, "depends_on": { "macros": [] }, @@ -4283,7 +4307,7 @@ }, "macro.dbt.default__safe_cast": { "arguments": [], - "created_at": 1733768712.092109, + "created_at": 1734424534.4116101, "depends_on": { "macros": [] }, @@ -4305,7 +4329,7 @@ }, "macro.dbt.default__snapshot_get_time": { "arguments": [], - "created_at": 1733768712.102928, + "created_at": 1734424534.4215171, "depends_on": { "macros": [ "macro.dbt.current_timestamp" @@ -4329,7 +4353,7 @@ }, "macro.dbt.default__snapshot_hash_arguments": { "arguments": [], - "created_at": 1733768711.928189, + "created_at": 1734424534.273105, "depends_on": { "macros": [] }, @@ -4351,7 +4375,7 @@ }, "macro.dbt.default__snapshot_merge_sql": { "arguments": [], - "created_at": 1733768711.924642, + "created_at": 1734424534.2698328, "depends_on": { "macros": [ "macro.dbt.get_snapshot_table_column_names" @@ -4375,7 +4399,7 @@ }, "macro.dbt.default__snapshot_staging_table": { "arguments": [], - "created_at": 1733768711.940938, + "created_at": 1734424534.284874, "depends_on": { "macros": [ "macro.dbt.get_snapshot_table_column_names", @@ -4400,7 +4424,7 @@ }, "macro.dbt.default__snapshot_string_as_time": { "arguments": [], - "created_at": 1733768711.9292958, + "created_at": 1734424534.2741818, "depends_on": { "macros": [] }, @@ -4422,7 +4446,7 @@ }, "macro.dbt.default__split_part": { "arguments": [], - "created_at": 1733768712.099427, + "created_at": 1734424534.418289, "depends_on": { "macros": [] }, @@ -4444,7 +4468,7 @@ }, "macro.dbt.default__string_literal": { "arguments": [], - "created_at": 1733768712.094439, + "created_at": 1734424534.413684, "depends_on": { "macros": [] }, @@ -4466,7 +4490,7 @@ }, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": { "arguments": [], - "created_at": 1733768712.11417, + "created_at": 1734424534.431523, "depends_on": { "macros": [] }, @@ -4488,7 +4512,7 @@ }, "macro.dbt.default__test_accepted_values": { "arguments": [], - "created_at": 1733768712.076216, + "created_at": 1734424534.397517, "depends_on": { "macros": [] }, @@ -4510,7 +4534,7 @@ }, "macro.dbt.default__test_not_null": { "arguments": [], - "created_at": 1733768712.075467, + "created_at": 1734424534.396808, "depends_on": { "macros": [ "macro.dbt.should_store_failures" @@ -4534,7 +4558,7 @@ }, "macro.dbt.default__test_relationships": { "arguments": [], - "created_at": 1733768712.0751932, + "created_at": 1734424534.396553, "depends_on": { "macros": [] }, @@ -4556,7 +4580,7 @@ }, "macro.dbt.default__test_unique": { "arguments": [], - "created_at": 1733768712.075694, + "created_at": 1734424534.397025, "depends_on": { "macros": [] }, @@ -4578,7 +4602,7 @@ }, "macro.dbt.default__truncate_relation": { "arguments": [], - "created_at": 1733768712.10983, + "created_at": 1734424534.4274611, "depends_on": { "macros": [ "macro.dbt.statement" @@ -4602,7 +4626,7 @@ }, "macro.dbt.default__type_bigint": { "arguments": [], - "created_at": 1733768712.096638, + "created_at": 1734424534.415757, "depends_on": { "macros": [] }, @@ -4624,7 +4648,7 @@ }, "macro.dbt.default__type_boolean": { "arguments": [], - "created_at": 1733768712.097211, + "created_at": 1734424534.416297, "depends_on": { "macros": [] }, @@ -4646,7 +4670,7 @@ }, "macro.dbt.default__type_float": { "arguments": [], - "created_at": 1733768712.0960279, + "created_at": 1734424534.415186, "depends_on": { "macros": [] }, @@ -4668,7 +4692,7 @@ }, "macro.dbt.default__type_int": { "arguments": [], - "created_at": 1733768712.0969238, + "created_at": 1734424534.416031, "depends_on": { "macros": [] }, @@ -4690,7 +4714,7 @@ }, "macro.dbt.default__type_numeric": { "arguments": [], - "created_at": 1733768712.0963368, + "created_at": 1734424534.415483, "depends_on": { "macros": [] }, @@ -4712,7 +4736,7 @@ }, "macro.dbt.default__type_string": { "arguments": [], - "created_at": 1733768712.095437, + "created_at": 1734424534.4146292, "depends_on": { "macros": [] }, @@ -4734,7 +4758,7 @@ }, "macro.dbt.default__type_timestamp": { "arguments": [], - "created_at": 1733768712.095736, + "created_at": 1734424534.414901, "depends_on": { "macros": [] }, @@ -4756,7 +4780,7 @@ }, "macro.dbt.default__validate_fixture_rows": { "arguments": [], - "created_at": 1733768712.14012, + "created_at": 1734424534.454824, "depends_on": { "macros": [] }, @@ -4778,7 +4802,7 @@ }, "macro.dbt.default__validate_sql": { "arguments": [], - "created_at": 1733768712.112152, + "created_at": 1734424534.429622, "depends_on": { "macros": [ "macro.dbt.statement" @@ -4802,7 +4826,7 @@ }, "macro.dbt.default_last_day": { "arguments": [], - "created_at": 1733768712.098628, + "created_at": 1734424534.417548, "depends_on": { "macros": [ "macro.dbt.dateadd", @@ -4827,7 +4851,7 @@ }, "macro.dbt.diff_column_data_types": { "arguments": [], - "created_at": 1733768711.971037, + "created_at": 1734424534.312486, "depends_on": { "macros": [] }, @@ -4849,7 +4873,7 @@ }, "macro.dbt.diff_columns": { "arguments": [], - "created_at": 1733768711.970446, + "created_at": 1734424534.311928, "depends_on": { "macros": [] }, @@ -4871,7 +4895,7 @@ }, "macro.dbt.drop_materialized_view": { "arguments": [], - "created_at": 1733768712.059457, + "created_at": 1734424534.382313, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__drop_materialized_view" @@ -4895,7 +4919,7 @@ }, "macro.dbt.drop_relation": { "arguments": [], - "created_at": 1733768712.051589, + "created_at": 1734424534.375294, "depends_on": { "macros": [ "macro.dbt.default__drop_relation" @@ -4919,7 +4943,7 @@ }, "macro.dbt.drop_relation_if_exists": { "arguments": [], - "created_at": 1733768712.051958, + "created_at": 1734424534.375633, "depends_on": { "macros": [] }, @@ -4941,7 +4965,7 @@ }, "macro.dbt.drop_schema": { "arguments": [], - "created_at": 1733768712.101682, + "created_at": 1734424534.420359, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__drop_schema" @@ -4965,7 +4989,7 @@ }, "macro.dbt.drop_schema_named": { "arguments": [], - "created_at": 1733768712.054762, + "created_at": 1734424534.378207, "depends_on": { "macros": [ "macro.dbt.default__drop_schema_named" @@ -4989,7 +5013,7 @@ }, "macro.dbt.drop_table": { "arguments": [], - "created_at": 1733768712.066834, + "created_at": 1734424534.388747, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__drop_table" @@ -5013,7 +5037,7 @@ }, "macro.dbt.drop_view": { "arguments": [], - "created_at": 1733768712.0707982, + "created_at": 1734424534.392409, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__drop_view" @@ -5037,7 +5061,7 @@ }, "macro.dbt.escape_single_quotes": { "arguments": [], - "created_at": 1733768712.0895271, + "created_at": 1734424534.409364, "depends_on": { "macros": [ "macro.dbt.default__escape_single_quotes" @@ -5061,7 +5085,7 @@ }, "macro.dbt.except": { "arguments": [], - "created_at": 1733768712.0824928, + "created_at": 1734424534.403328, "depends_on": { "macros": [ "macro.dbt.default__except" @@ -5085,7 +5109,7 @@ }, "macro.dbt.format_columns": { "arguments": [], - "created_at": 1733768712.066251, + "created_at": 1734424534.3882399, "depends_on": { "macros": [ "macro.dbt.default__format_column" @@ -5109,7 +5133,7 @@ }, "macro.dbt.format_row": { "arguments": [], - "created_at": 1733768712.139827, + "created_at": 1734424534.454557, "depends_on": { "macros": [ "macro.dbt.string_literal", @@ -5135,7 +5159,7 @@ }, "macro.dbt.generate_alias_name": { "arguments": [], - "created_at": 1733768712.048397, + "created_at": 1734424534.372298, "depends_on": { "macros": [ "macro.dbt.default__generate_alias_name" @@ -5159,7 +5183,7 @@ }, "macro.dbt.generate_database_name": { "arguments": [], - "created_at": 1733768712.050146, + "created_at": 1734424534.373926, "depends_on": { "macros": [ "macro.dbt.default__generate_database_name" @@ -5183,7 +5207,7 @@ }, "macro.dbt.generate_schema_name": { "arguments": [], - "created_at": 1733768712.049263, + "created_at": 1734424534.3730931, "depends_on": { "macros": [ "macro.dbt.default__generate_schema_name" @@ -5207,7 +5231,7 @@ }, "macro.dbt.generate_schema_name_for_env": { "arguments": [], - "created_at": 1733768712.0497751, + "created_at": 1734424534.3735712, "depends_on": { "macros": [] }, @@ -5229,7 +5253,7 @@ }, "macro.dbt.generate_series": { "arguments": [], - "created_at": 1733768712.087168, + "created_at": 1734424534.407594, "depends_on": { "macros": [ "macro.dbt.default__generate_series" @@ -5253,7 +5277,7 @@ }, "macro.dbt.get_alter_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768712.0616388, + "created_at": 1734424534.384167, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql" @@ -5277,7 +5301,7 @@ }, "macro.dbt.get_assert_columns_equivalent": { "arguments": [], - "created_at": 1733768712.064451, + "created_at": 1734424534.386682, "depends_on": { "macros": [ "macro.dbt.default__get_assert_columns_equivalent" @@ -5301,7 +5325,7 @@ }, "macro.dbt.get_batch_size": { "arguments": [], - "created_at": 1733768712.045829, + "created_at": 1734424534.3702002, "depends_on": { "macros": [ "macro.dbt.default__get_batch_size" @@ -5325,7 +5349,7 @@ }, "macro.dbt.get_binding_char": { "arguments": [], - "created_at": 1733768712.045561, + "created_at": 1734424534.3699598, "depends_on": { "macros": [ "macro.dbt.default__get_binding_char" @@ -5349,7 +5373,7 @@ }, "macro.dbt.get_catalog": { "arguments": [], - "created_at": 1733768712.125071, + "created_at": 1734424534.4411469, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_catalog" @@ -5373,7 +5397,7 @@ }, "macro.dbt.get_catalog_for_single_relation": { "arguments": [], - "created_at": 1733768712.127008, + "created_at": 1734424534.442948, "depends_on": { "macros": [ "macro.dbt.default__get_catalog_for_single_relation" @@ -5397,7 +5421,7 @@ }, "macro.dbt.get_catalog_relations": { "arguments": [], - "created_at": 1733768712.12464, + "created_at": 1734424534.440747, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_catalog_relations" @@ -5421,7 +5445,7 @@ }, "macro.dbt.get_column_schema_from_query": { "arguments": [], - "created_at": 1733768712.132643, + "created_at": 1734424534.447996, "depends_on": { "macros": [ "macro.dbt.get_empty_subquery_sql" @@ -5445,7 +5469,7 @@ }, "macro.dbt.get_columns_in_query": { "arguments": [], - "created_at": 1733768712.132813, + "created_at": 1734424534.4481668, "depends_on": { "macros": [ "macro.dbt.default__get_columns_in_query" @@ -5469,7 +5493,7 @@ }, "macro.dbt.get_columns_in_relation": { "arguments": [], - "created_at": 1733768712.130246, + "created_at": 1734424534.4457679, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_columns_in_relation" @@ -5493,7 +5517,7 @@ }, "macro.dbt.get_create_backup_sql": { "arguments": [], - "created_at": 1733768712.0575302, + "created_at": 1734424534.3805702, "depends_on": { "macros": [ "macro.dbt.default__get_create_backup_sql" @@ -5517,7 +5541,7 @@ }, "macro.dbt.get_create_index_sql": { "arguments": [], - "created_at": 1733768712.1046588, + "created_at": 1734424534.4231281, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_create_index_sql" @@ -5541,7 +5565,7 @@ }, "macro.dbt.get_create_intermediate_sql": { "arguments": [], - "created_at": 1733768712.05427, + "created_at": 1734424534.377779, "depends_on": { "macros": [ "macro.dbt.default__get_create_intermediate_sql" @@ -5565,7 +5589,7 @@ }, "macro.dbt.get_create_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768712.062571, + "created_at": 1734424534.384949, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql" @@ -5589,7 +5613,7 @@ }, "macro.dbt.get_create_sql": { "arguments": [], - "created_at": 1733768712.058231, + "created_at": 1734424534.38123, "depends_on": { "macros": [ "macro.dbt.default__get_create_sql" @@ -5613,7 +5637,7 @@ }, "macro.dbt.get_create_table_as_sql": { "arguments": [], - "created_at": 1733768712.068589, + "created_at": 1734424534.390346, "depends_on": { "macros": [ "macro.dbt.default__get_create_table_as_sql" @@ -5637,7 +5661,7 @@ }, "macro.dbt.get_create_view_as_sql": { "arguments": [], - "created_at": 1733768712.0741491, + "created_at": 1734424534.395564, "depends_on": { "macros": [ "macro.dbt.default__get_create_view_as_sql" @@ -5661,7 +5685,7 @@ }, "macro.dbt.get_csv_sql": { "arguments": [], - "created_at": 1733768712.0452921, + "created_at": 1734424534.3697321, "depends_on": { "macros": [ "macro.dbt.default__get_csv_sql" @@ -5685,7 +5709,7 @@ }, "macro.dbt.get_dcl_statement_list": { "arguments": [], - "created_at": 1733768712.116114, + "created_at": 1734424534.433171, "depends_on": { "macros": [ "macro.dbt.default__get_dcl_statement_list" @@ -5709,7 +5733,7 @@ }, "macro.dbt.get_delete_insert_merge_sql": { "arguments": [], - "created_at": 1733768711.980267, + "created_at": 1734424534.32104, "depends_on": { "macros": [ "macro.dbt.default__get_delete_insert_merge_sql" @@ -5733,7 +5757,7 @@ }, "macro.dbt.get_drop_backup_sql": { "arguments": [], - "created_at": 1733768712.055254, + "created_at": 1734424534.378637, "depends_on": { "macros": [ "macro.dbt.default__get_drop_backup_sql" @@ -5757,7 +5781,7 @@ }, "macro.dbt.get_drop_index_sql": { "arguments": [], - "created_at": 1733768712.105682, + "created_at": 1734424534.423873, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_drop_index_sql" @@ -5781,7 +5805,7 @@ }, "macro.dbt.get_drop_sql": { "arguments": [], - "created_at": 1733768712.05106, + "created_at": 1734424534.374785, "depends_on": { "macros": [ "macro.dbt.default__get_drop_sql" @@ -5805,7 +5829,7 @@ }, "macro.dbt.get_empty_schema_sql": { "arguments": [], - "created_at": 1733768712.131246, + "created_at": 1734424534.4467, "depends_on": { "macros": [ "macro.dbt.default__get_empty_schema_sql" @@ -5829,7 +5853,7 @@ }, "macro.dbt.get_empty_subquery_sql": { "arguments": [], - "created_at": 1733768712.130889, + "created_at": 1734424534.446363, "depends_on": { "macros": [ "macro.dbt.default__get_empty_subquery_sql" @@ -5853,7 +5877,7 @@ }, "macro.dbt.get_expected_sql": { "arguments": [], - "created_at": 1733768712.138807, + "created_at": 1734424534.45361, "depends_on": { "macros": [ "macro.dbt.format_row" @@ -5877,7 +5901,7 @@ }, "macro.dbt.get_fixture_sql": { "arguments": [], - "created_at": 1733768712.138287, + "created_at": 1734424534.453137, "depends_on": { "macros": [ "macro.dbt.load_relation", @@ -5904,7 +5928,7 @@ }, "macro.dbt.get_grant_sql": { "arguments": [], - "created_at": 1733768712.115305, + "created_at": 1734424534.432471, "depends_on": { "macros": [ "macro.dbt.default__get_grant_sql" @@ -5928,7 +5952,7 @@ }, "macro.dbt.get_incremental_append_sql": { "arguments": [], - "created_at": 1733768711.9837089, + "created_at": 1734424534.3241868, "depends_on": { "macros": [ "macro.dbt.default__get_incremental_append_sql" @@ -5952,7 +5976,7 @@ }, "macro.dbt.get_incremental_default_sql": { "arguments": [], - "created_at": 1733768711.985472, + "created_at": 1734424534.325801, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_incremental_default_sql" @@ -5976,7 +6000,7 @@ }, "macro.dbt.get_incremental_delete_insert_sql": { "arguments": [], - "created_at": 1733768711.984149, + "created_at": 1734424534.324567, "depends_on": { "macros": [ "macro.dbt.default__get_incremental_delete_insert_sql" @@ -6000,7 +6024,7 @@ }, "macro.dbt.get_incremental_insert_overwrite_sql": { "arguments": [], - "created_at": 1733768711.9850519, + "created_at": 1734424534.325407, "depends_on": { "macros": [ "macro.dbt.default__get_incremental_insert_overwrite_sql" @@ -6024,7 +6048,7 @@ }, "macro.dbt.get_incremental_merge_sql": { "arguments": [], - "created_at": 1733768711.984603, + "created_at": 1734424534.324987, "depends_on": { "macros": [ "macro.dbt.default__get_incremental_merge_sql" @@ -6048,7 +6072,7 @@ }, "macro.dbt.get_incremental_microbatch_sql": { "arguments": [], - "created_at": 1733768711.985783, + "created_at": 1734424534.326082, "depends_on": { "macros": [ "macro.dbt.default__get_incremental_microbatch_sql" @@ -6072,7 +6096,7 @@ }, "macro.dbt.get_insert_into_sql": { "arguments": [], - "created_at": 1733768711.986187, + "created_at": 1734424534.326436, "depends_on": { "macros": [ "macro.dbt.get_quoted_csv" @@ -6096,7 +6120,7 @@ }, "macro.dbt.get_insert_overwrite_merge_sql": { "arguments": [], - "created_at": 1733768711.9814389, + "created_at": 1734424534.3221178, "depends_on": { "macros": [ "macro.dbt.default__get_insert_overwrite_merge_sql" @@ -6120,7 +6144,7 @@ }, "macro.dbt.get_intervals_between": { "arguments": [], - "created_at": 1733768712.0832698, + "created_at": 1734424534.4040582, "depends_on": { "macros": [ "macro.dbt.default__get_intervals_between" @@ -6144,7 +6168,7 @@ }, "macro.dbt.get_limit_subquery_sql": { "arguments": [], - "created_at": 1733768712.119031, + "created_at": 1734424534.435801, "depends_on": { "macros": [ "macro.dbt.default__get_limit_sql" @@ -6168,7 +6192,7 @@ }, "macro.dbt.get_materialized_view_configuration_changes": { "arguments": [], - "created_at": 1733768712.062151, + "created_at": 1734424534.3845792, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes" @@ -6192,7 +6216,7 @@ }, "macro.dbt.get_merge_sql": { "arguments": [], - "created_at": 1733768711.978434, + "created_at": 1734424534.319413, "depends_on": { "macros": [ "macro.dbt.default__get_merge_sql" @@ -6216,7 +6240,7 @@ }, "macro.dbt.get_merge_update_columns": { "arguments": [], - "created_at": 1733768711.971263, + "created_at": 1734424534.312691, "depends_on": { "macros": [ "macro.dbt.default__get_merge_update_columns" @@ -6240,7 +6264,7 @@ }, "macro.dbt.get_or_create_relation": { "arguments": [], - "created_at": 1733768712.110068, + "created_at": 1734424534.4276779, "depends_on": { "macros": [ "macro.dbt.default__get_or_create_relation" @@ -6264,7 +6288,7 @@ }, "macro.dbt.get_powers_of_two": { "arguments": [], - "created_at": 1733768712.086598, + "created_at": 1734424534.4070761, "depends_on": { "macros": [ "macro.dbt.default__get_powers_of_two" @@ -6288,7 +6312,7 @@ }, "macro.dbt.get_quoted_csv": { "arguments": [], - "created_at": 1733768711.969949, + "created_at": 1734424534.311473, "depends_on": { "macros": [] }, @@ -6310,7 +6334,7 @@ }, "macro.dbt.get_relation_last_modified": { "arguments": [], - "created_at": 1733768712.127856, + "created_at": 1734424534.443553, "depends_on": { "macros": [ "macro.dbt.default__get_relation_last_modified" @@ -6334,7 +6358,7 @@ }, "macro.dbt.get_relations": { "arguments": [], - "created_at": 1733768712.127313, + "created_at": 1734424534.44324, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_relations" @@ -6358,7 +6382,7 @@ }, "macro.dbt.get_rename_intermediate_sql": { "arguments": [], - "created_at": 1733768712.058996, + "created_at": 1734424534.3819, "depends_on": { "macros": [ "macro.dbt.default__get_rename_intermediate_sql" @@ -6382,7 +6406,7 @@ }, "macro.dbt.get_rename_materialized_view_sql": { "arguments": [], - "created_at": 1733768712.060749, + "created_at": 1734424534.383497, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_rename_materialized_view_sql" @@ -6406,7 +6430,7 @@ }, "macro.dbt.get_rename_sql": { "arguments": [], - "created_at": 1733768712.0562859, + "created_at": 1734424534.379433, "depends_on": { "macros": [ "macro.dbt.default__get_rename_sql" @@ -6430,7 +6454,7 @@ }, "macro.dbt.get_rename_table_sql": { "arguments": [], - "created_at": 1733768712.067647, + "created_at": 1734424534.38946, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_rename_table_sql" @@ -6454,7 +6478,7 @@ }, "macro.dbt.get_rename_view_sql": { "arguments": [], - "created_at": 1733768712.073626, + "created_at": 1734424534.395067, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_rename_view_sql" @@ -6478,7 +6502,7 @@ }, "macro.dbt.get_replace_materialized_view_sql": { "arguments": [], - "created_at": 1733768712.0598369, + "created_at": 1734424534.382665, "depends_on": { "macros": [ "macro.dbt.default__get_replace_materialized_view_sql" @@ -6502,7 +6526,7 @@ }, "macro.dbt.get_replace_sql": { "arguments": [], - "created_at": 1733768712.052743, + "created_at": 1734424534.376353, "depends_on": { "macros": [ "macro.dbt.default__get_replace_sql" @@ -6526,7 +6550,7 @@ }, "macro.dbt.get_replace_table_sql": { "arguments": [], - "created_at": 1733768712.0672388, + "created_at": 1734424534.3890939, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_replace_table_sql" @@ -6550,7 +6574,7 @@ }, "macro.dbt.get_replace_view_sql": { "arguments": [], - "created_at": 1733768712.071723, + "created_at": 1734424534.393288, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_replace_view_sql" @@ -6574,7 +6598,7 @@ }, "macro.dbt.get_revoke_sql": { "arguments": [], - "created_at": 1733768712.1157131, + "created_at": 1734424534.432819, "depends_on": { "macros": [ "macro.dbt.default__get_revoke_sql" @@ -6598,7 +6622,7 @@ }, "macro.dbt.get_seed_column_quoted_csv": { "arguments": [], - "created_at": 1733768712.046391, + "created_at": 1734424534.37068, "depends_on": { "macros": [] }, @@ -6620,7 +6644,7 @@ }, "macro.dbt.get_select_subquery": { "arguments": [], - "created_at": 1733768712.070401, + "created_at": 1734424534.3920362, "depends_on": { "macros": [ "macro.dbt.default__get_select_subquery" @@ -6644,7 +6668,7 @@ }, "macro.dbt.get_show_grant_sql": { "arguments": [], - "created_at": 1733768712.1146529, + "created_at": 1734424534.4319859, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_show_grant_sql" @@ -6668,7 +6692,7 @@ }, "macro.dbt.get_show_indexes_sql": { "arguments": [], - "created_at": 1733768712.105977, + "created_at": 1734424534.424115, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_show_indexes_sql" @@ -6692,7 +6716,7 @@ }, "macro.dbt.get_show_sql": { "arguments": [], - "created_at": 1733768712.118849, + "created_at": 1734424534.4356391, "depends_on": { "macros": [ "macro.dbt.get_limit_subquery_sql" @@ -6716,7 +6740,7 @@ }, "macro.dbt.get_snapshot_get_time_data_type": { "arguments": [], - "created_at": 1733768712.1033092, + "created_at": 1734424534.421868, "depends_on": { "macros": [ "macro.dbt.snapshot_get_time", @@ -6742,7 +6766,7 @@ }, "macro.dbt.get_snapshot_table_column_names": { "arguments": [], - "created_at": 1733768711.939744, + "created_at": 1734424534.28377, "depends_on": { "macros": [] }, @@ -6764,7 +6788,7 @@ }, "macro.dbt.get_table_columns_and_constraints": { "arguments": [], - "created_at": 1733768712.063669, + "created_at": 1734424534.385965, "depends_on": { "macros": [ "macro.dbt.default__get_table_columns_and_constraints" @@ -6788,7 +6812,7 @@ }, "macro.dbt.get_test_sql": { "arguments": [], - "created_at": 1733768711.952082, + "created_at": 1734424534.2950132, "depends_on": { "macros": [ "macro.dbt.default__get_test_sql" @@ -6812,7 +6836,7 @@ }, "macro.dbt.get_true_sql": { "arguments": [], - "created_at": 1733768711.939211, + "created_at": 1734424534.283285, "depends_on": { "macros": [ "macro.dbt.default__get_true_sql" @@ -6836,7 +6860,7 @@ }, "macro.dbt.get_unit_test_sql": { "arguments": [], - "created_at": 1733768711.952619, + "created_at": 1734424534.295459, "depends_on": { "macros": [ "macro.dbt.default__get_unit_test_sql" @@ -6860,7 +6884,7 @@ }, "macro.dbt.get_updated_at_column_data_type": { "arguments": [], - "created_at": 1733768711.942471, + "created_at": 1734424534.28629, "depends_on": { "macros": [ "macro.dbt.get_column_schema_from_query" @@ -6884,7 +6908,7 @@ }, "macro.dbt.get_where_subquery": { "arguments": [], - "created_at": 1733768711.953578, + "created_at": 1734424534.296313, "depends_on": { "macros": [ "macro.dbt.default__get_where_subquery" @@ -6908,7 +6932,7 @@ }, "macro.dbt.handle_existing_table": { "arguments": [], - "created_at": 1733768712.073157, + "created_at": 1734424534.394623, "depends_on": { "macros": [ "macro.dbt.default__handle_existing_table" @@ -6932,7 +6956,7 @@ }, "macro.dbt.hash": { "arguments": [], - "created_at": 1733768712.0923588, + "created_at": 1734424534.411833, "depends_on": { "macros": [ "macro.dbt.default__hash" @@ -6956,7 +6980,7 @@ }, "macro.dbt.in_transaction": { "arguments": [], - "created_at": 1733768711.922199, + "created_at": 1734424534.267926, "depends_on": { "macros": [ "macro.dbt.make_hook_config" @@ -6980,7 +7004,7 @@ }, "macro.dbt.incremental_validate_on_schema_change": { "arguments": [], - "created_at": 1733768711.9970958, + "created_at": 1734424534.3361862, "depends_on": { "macros": [] }, @@ -7002,7 +7026,7 @@ }, "macro.dbt.information_schema_name": { "arguments": [], - "created_at": 1733768712.1254919, + "created_at": 1734424534.441538, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__information_schema_name" @@ -7026,7 +7050,7 @@ }, "macro.dbt.intersect": { "arguments": [], - "created_at": 1733768712.0892, + "created_at": 1734424534.409069, "depends_on": { "macros": [ "macro.dbt.default__intersect" @@ -7050,7 +7074,7 @@ }, "macro.dbt.is_incremental": { "arguments": [], - "created_at": 1733768711.982646, + "created_at": 1734424534.3232079, "depends_on": { "macros": [ "macro.dbt.should_full_refresh" @@ -7074,7 +7098,7 @@ }, "macro.dbt.last_day": { "arguments": [], - "created_at": 1733768712.098379, + "created_at": 1734424534.41732, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__last_day" @@ -7098,7 +7122,7 @@ }, "macro.dbt.length": { "arguments": [], - "created_at": 1733768712.087976, + "created_at": 1734424534.408268, "depends_on": { "macros": [ "macro.dbt.default__length" @@ -7122,7 +7146,7 @@ }, "macro.dbt.list_relations_without_caching": { "arguments": [], - "created_at": 1733768712.126682, + "created_at": 1734424534.4426482, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__list_relations_without_caching" @@ -7146,7 +7170,7 @@ }, "macro.dbt.list_schemas": { "arguments": [], - "created_at": 1733768712.125814, + "created_at": 1734424534.441837, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__list_schemas" @@ -7170,7 +7194,7 @@ }, "macro.dbt.listagg": { "arguments": [], - "created_at": 1733768712.0906901, + "created_at": 1734424534.410452, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__listagg" @@ -7194,7 +7218,7 @@ }, "macro.dbt.load_cached_relation": { "arguments": [], - "created_at": 1733768712.1107929, + "created_at": 1734424534.428352, "depends_on": { "macros": [] }, @@ -7216,7 +7240,7 @@ }, "macro.dbt.load_csv_rows": { "arguments": [], - "created_at": 1733768712.046595, + "created_at": 1734424534.370831, "depends_on": { "macros": [ "macro.dbt.default__load_csv_rows" @@ -7240,7 +7264,7 @@ }, "macro.dbt.load_relation": { "arguments": [], - "created_at": 1733768712.1109262, + "created_at": 1734424534.428478, "depends_on": { "macros": [ "macro.dbt.load_cached_relation" @@ -7264,7 +7288,7 @@ }, "macro.dbt.make_backup_relation": { "arguments": [], - "created_at": 1733768712.109196, + "created_at": 1734424534.426868, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_backup_relation" @@ -7288,7 +7312,7 @@ }, "macro.dbt.make_hook_config": { "arguments": [], - "created_at": 1733768711.921931, + "created_at": 1734424534.267672, "depends_on": { "macros": [] }, @@ -7310,7 +7334,7 @@ }, "macro.dbt.make_intermediate_relation": { "arguments": [], - "created_at": 1733768712.108265, + "created_at": 1734424534.426013, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_intermediate_relation" @@ -7334,7 +7358,7 @@ }, "macro.dbt.make_temp_relation": { "arguments": [], - "created_at": 1733768712.108624, + "created_at": 1734424534.426355, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_temp_relation" @@ -7358,7 +7382,7 @@ }, "macro.dbt.materialization_clone_default": { "arguments": [], - "created_at": 1733768712.033293, + "created_at": 1734424534.360828, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7391,7 +7415,7 @@ }, "macro.dbt.materialization_incremental_default": { "arguments": [], - "created_at": 1733768711.991256, + "created_at": 1734424534.331042, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7432,7 +7456,7 @@ }, "macro.dbt.materialization_materialized_view_default": { "arguments": [], - "created_at": 1733768711.960275, + "created_at": 1734424534.3026052, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7465,7 +7489,7 @@ }, "macro.dbt.materialization_seed_default": { "arguments": [], - "created_at": 1733768712.036364, + "created_at": 1734424534.363523, "depends_on": { "macros": [ "macro.dbt.should_full_refresh", @@ -7501,7 +7525,7 @@ }, "macro.dbt.materialization_snapshot_default": { "arguments": [], - "created_at": 1733768711.948396, + "created_at": 1734424534.291647, "depends_on": { "macros": [ "macro.dbt.get_or_create_relation", @@ -7543,7 +7567,7 @@ }, "macro.dbt.materialization_table_default": { "arguments": [], - "created_at": 1733768711.968425, + "created_at": 1734424534.310055, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7579,7 +7603,7 @@ }, "macro.dbt.materialization_test_default": { "arguments": [], - "created_at": 1733768711.950998, + "created_at": 1734424534.293993, "depends_on": { "macros": [ "macro.dbt.should_store_failures", @@ -7608,7 +7632,7 @@ }, "macro.dbt.materialization_unit_default": { "arguments": [], - "created_at": 1733768711.9555762, + "created_at": 1734424534.298186, "depends_on": { "macros": [ "macro.dbt.get_columns_in_query", @@ -7641,7 +7665,7 @@ }, "macro.dbt.materialization_view_default": { "arguments": [], - "created_at": 1733768711.9657469, + "created_at": 1734424534.307573, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7676,7 +7700,7 @@ }, "macro.dbt.materialized_view_execute_build_sql": { "arguments": [], - "created_at": 1733768711.962951, + "created_at": 1734424534.305105, "depends_on": { "macros": [ "macro.dbt.run_hooks", @@ -7704,7 +7728,7 @@ }, "macro.dbt.materialized_view_execute_no_op": { "arguments": [], - "created_at": 1733768711.962357, + "created_at": 1734424534.304545, "depends_on": { "macros": [] }, @@ -7726,7 +7750,7 @@ }, "macro.dbt.materialized_view_get_build_sql": { "arguments": [], - "created_at": 1733768711.962139, + "created_at": 1734424534.304339, "depends_on": { "macros": [ "macro.dbt.should_full_refresh", @@ -7755,7 +7779,7 @@ }, "macro.dbt.materialized_view_setup": { "arguments": [], - "created_at": 1733768711.960649, + "created_at": 1734424534.302943, "depends_on": { "macros": [ "macro.dbt.load_cached_relation", @@ -7781,7 +7805,7 @@ }, "macro.dbt.materialized_view_teardown": { "arguments": [], - "created_at": 1733768711.960883, + "created_at": 1734424534.3031712, "depends_on": { "macros": [ "macro.dbt.drop_relation_if_exists", @@ -7806,7 +7830,7 @@ }, "macro.dbt.noop_statement": { "arguments": [], - "created_at": 1733768712.078182, + "created_at": 1734424534.399304, "depends_on": { "macros": [] }, @@ -7828,7 +7852,7 @@ }, "macro.dbt.partition_range": { "arguments": [], - "created_at": 1733768712.0820658, + "created_at": 1734424534.402923, "depends_on": { "macros": [ "macro.dbt.dates_in_range" @@ -7852,7 +7876,7 @@ }, "macro.dbt.persist_docs": { "arguments": [], - "created_at": 1733768712.1206532, + "created_at": 1734424534.437286, "depends_on": { "macros": [ "macro.dbt.default__persist_docs" @@ -7876,7 +7900,7 @@ }, "macro.dbt.position": { "arguments": [], - "created_at": 1733768712.093984, + "created_at": 1734424534.413289, "depends_on": { "macros": [ "macro.dbt.default__position" @@ -7900,7 +7924,7 @@ }, "macro.dbt.post_snapshot": { "arguments": [], - "created_at": 1733768711.9389849, + "created_at": 1734424534.283068, "depends_on": { "macros": [ "macro.dbt.default__post_snapshot" @@ -7924,7 +7948,7 @@ }, "macro.dbt.process_schema_changes": { "arguments": [], - "created_at": 1733768712.000155, + "created_at": 1734424534.338976, "depends_on": { "macros": [ "macro.dbt.check_for_schema_changes", @@ -7949,7 +7973,7 @@ }, "macro.dbt.py_current_timestring": { "arguments": [], - "created_at": 1733768712.082279, + "created_at": 1734424534.4031239, "depends_on": { "macros": [] }, @@ -7971,7 +7995,7 @@ }, "macro.dbt.py_script_comment": { "arguments": [], - "created_at": 1733768712.1440609, + "created_at": 1734424534.458482, "depends_on": { "macros": [] }, @@ -7993,7 +8017,7 @@ }, "macro.dbt.py_script_postfix": { "arguments": [], - "created_at": 1733768712.143991, + "created_at": 1734424534.458414, "depends_on": { "macros": [ "macro.dbt.build_ref_function", @@ -8022,7 +8046,7 @@ }, "macro.dbt.refresh_materialized_view": { "arguments": [], - "created_at": 1733768712.060362, + "created_at": 1734424534.38313, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__refresh_materialized_view" @@ -8046,7 +8070,7 @@ }, "macro.dbt.rename_relation": { "arguments": [], - "created_at": 1733768712.056898, + "created_at": 1734424534.38, "depends_on": { "macros": [ "macro.dbt.default__rename_relation" @@ -8070,7 +8094,7 @@ }, "macro.dbt.replace": { "arguments": [], - "created_at": 1733768712.0852401, + "created_at": 1734424534.405909, "depends_on": { "macros": [ "macro.dbt.default__replace" @@ -8094,7 +8118,7 @@ }, "macro.dbt.reset_csv_table": { "arguments": [], - "created_at": 1733768712.044626, + "created_at": 1734424534.36917, "depends_on": { "macros": [ "macro.dbt.default__reset_csv_table" @@ -8118,7 +8142,7 @@ }, "macro.dbt.resolve_model_name": { "arguments": [], - "created_at": 1733768712.141689, + "created_at": 1734424534.456279, "depends_on": { "macros": [ "macro.dbt.default__resolve_model_name" @@ -8142,7 +8166,7 @@ }, "macro.dbt.right": { "arguments": [], - "created_at": 1733768712.089935, + "created_at": 1734424534.4097438, "depends_on": { "macros": [ "macro.dbt.default__right" @@ -8166,7 +8190,7 @@ }, "macro.dbt.run_hooks": { "arguments": [], - "created_at": 1733768711.9217432, + "created_at": 1734424534.267503, "depends_on": { "macros": [ "macro.dbt.statement" @@ -8190,7 +8214,7 @@ }, "macro.dbt.run_query": { "arguments": [], - "created_at": 1733768712.078449, + "created_at": 1734424534.3995578, "depends_on": { "macros": [ "macro.dbt.statement" @@ -8214,7 +8238,7 @@ }, "macro.dbt.safe_cast": { "arguments": [], - "created_at": 1733768712.091973, + "created_at": 1734424534.411486, "depends_on": { "macros": [ "macro.dbt.default__safe_cast" @@ -8238,7 +8262,7 @@ }, "macro.dbt.set_sql_header": { "arguments": [], - "created_at": 1733768711.923061, + "created_at": 1734424534.268376, "depends_on": { "macros": [] }, @@ -8260,7 +8284,7 @@ }, "macro.dbt.should_full_refresh": { "arguments": [], - "created_at": 1733768711.9233458, + "created_at": 1734424534.2686322, "depends_on": { "macros": [] }, @@ -8282,7 +8306,7 @@ }, "macro.dbt.should_revoke": { "arguments": [], - "created_at": 1733768712.114482, + "created_at": 1734424534.431823, "depends_on": { "macros": [ "macro.dbt.copy_grants" @@ -8306,7 +8330,7 @@ }, "macro.dbt.should_store_failures": { "arguments": [], - "created_at": 1733768711.923622, + "created_at": 1734424534.2688909, "depends_on": { "macros": [] }, @@ -8328,7 +8352,7 @@ }, "macro.dbt.snapshot_check_all_get_existing_columns": { "arguments": [], - "created_at": 1733768711.930589, + "created_at": 1734424534.275306, "depends_on": { "macros": [ "macro.dbt.get_columns_in_query" @@ -8352,7 +8376,7 @@ }, "macro.dbt.snapshot_check_strategy": { "arguments": [], - "created_at": 1733768711.931838, + "created_at": 1734424534.2764769, "depends_on": { "macros": [ "macro.dbt.snapshot_get_time", @@ -8379,7 +8403,7 @@ }, "macro.dbt.snapshot_get_time": { "arguments": [], - "created_at": 1733768712.1028302, + "created_at": 1734424534.4214242, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__snapshot_get_time" @@ -8403,7 +8427,7 @@ }, "macro.dbt.snapshot_hash_arguments": { "arguments": [], - "created_at": 1733768711.9279811, + "created_at": 1734424534.272913, "depends_on": { "macros": [ "macro.dbt.default__snapshot_hash_arguments" @@ -8427,7 +8451,7 @@ }, "macro.dbt.snapshot_merge_sql": { "arguments": [], - "created_at": 1733768711.924176, + "created_at": 1734424534.269401, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__snapshot_merge_sql" @@ -8451,7 +8475,7 @@ }, "macro.dbt.snapshot_staging_table": { "arguments": [], - "created_at": 1733768711.93952, + "created_at": 1734424534.283574, "depends_on": { "macros": [ "macro.dbt.default__snapshot_staging_table" @@ -8475,7 +8499,7 @@ }, "macro.dbt.snapshot_string_as_time": { "arguments": [], - "created_at": 1733768711.929135, + "created_at": 1734424534.2740211, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__snapshot_string_as_time" @@ -8499,7 +8523,7 @@ }, "macro.dbt.snapshot_timestamp_strategy": { "arguments": [], - "created_at": 1733768711.9289758, + "created_at": 1734424534.2738519, "depends_on": { "macros": [ "macro.dbt.get_snapshot_table_column_names", @@ -8524,7 +8548,7 @@ }, "macro.dbt.split_part": { "arguments": [], - "created_at": 1733768712.099272, + "created_at": 1734424534.418143, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__split_part" @@ -8548,7 +8572,7 @@ }, "macro.dbt.sql_convert_columns_in_relation": { "arguments": [], - "created_at": 1733768712.130684, + "created_at": 1734424534.446172, "depends_on": { "macros": [] }, @@ -8570,7 +8594,7 @@ }, "macro.dbt.statement": { "arguments": [], - "created_at": 1733768712.077638, + "created_at": 1734424534.398808, "depends_on": { "macros": [] }, @@ -8592,7 +8616,7 @@ }, "macro.dbt.strategy_dispatch": { "arguments": [], - "created_at": 1733768711.92782, + "created_at": 1734424534.2727659, "depends_on": { "macros": [] }, @@ -8614,7 +8638,7 @@ }, "macro.dbt.string_literal": { "arguments": [], - "created_at": 1733768712.094341, + "created_at": 1734424534.4135969, "depends_on": { "macros": [ "macro.dbt.default__string_literal" @@ -8638,7 +8662,7 @@ }, "macro.dbt.support_multiple_grantees_per_dcl_statement": { "arguments": [], - "created_at": 1733768712.114064, + "created_at": 1734424534.431415, "depends_on": { "macros": [ "macro.dbt.default__support_multiple_grantees_per_dcl_statement" @@ -8662,7 +8686,7 @@ }, "macro.dbt.sync_column_schemas": { "arguments": [], - "created_at": 1733768711.9993448, + "created_at": 1734424534.3382242, "depends_on": { "macros": [ "macro.dbt.alter_relation_add_remove_columns", @@ -8687,7 +8711,7 @@ }, "macro.dbt.table_columns_and_constraints": { "arguments": [], - "created_at": 1733768712.0642922, + "created_at": 1734424534.386534, "depends_on": { "macros": [] }, @@ -8709,7 +8733,7 @@ }, "macro.dbt.test_accepted_values": { "arguments": [], - "created_at": 1733768712.145065, + "created_at": 1734424534.45942, "depends_on": { "macros": [ "macro.dbt.default__test_accepted_values" @@ -8733,7 +8757,7 @@ }, "macro.dbt.test_not_null": { "arguments": [], - "created_at": 1733768712.144783, + "created_at": 1734424534.459152, "depends_on": { "macros": [ "macro.dbt.default__test_not_null" @@ -8757,7 +8781,7 @@ }, "macro.dbt.test_relationships": { "arguments": [], - "created_at": 1733768712.1453419, + "created_at": 1734424534.459678, "depends_on": { "macros": [ "macro.dbt.default__test_relationships" @@ -8781,7 +8805,7 @@ }, "macro.dbt.test_unique": { "arguments": [], - "created_at": 1733768712.144553, + "created_at": 1734424534.458934, "depends_on": { "macros": [ "macro.dbt.default__test_unique" @@ -8805,7 +8829,7 @@ }, "macro.dbt.truncate_relation": { "arguments": [], - "created_at": 1733768712.109659, + "created_at": 1734424534.427302, "depends_on": { "macros": [ "macro.dbt.default__truncate_relation" @@ -8829,7 +8853,7 @@ }, "macro.dbt.type_bigint": { "arguments": [], - "created_at": 1733768712.096499, + "created_at": 1734424534.415623, "depends_on": { "macros": [ "macro.dbt.default__type_bigint" @@ -8853,7 +8877,7 @@ }, "macro.dbt.type_boolean": { "arguments": [], - "created_at": 1733768712.097076, + "created_at": 1734424534.416172, "depends_on": { "macros": [ "macro.dbt.default__type_boolean" @@ -8877,7 +8901,7 @@ }, "macro.dbt.type_float": { "arguments": [], - "created_at": 1733768712.095885, + "created_at": 1734424534.415054, "depends_on": { "macros": [ "macro.dbt.default__type_float" @@ -8901,7 +8925,7 @@ }, "macro.dbt.type_int": { "arguments": [], - "created_at": 1733768712.096789, + "created_at": 1734424534.4158962, "depends_on": { "macros": [ "macro.dbt.default__type_int" @@ -8925,7 +8949,7 @@ }, "macro.dbt.type_numeric": { "arguments": [], - "created_at": 1733768712.0961752, + "created_at": 1734424534.4153259, "depends_on": { "macros": [ "macro.dbt.default__type_numeric" @@ -8949,7 +8973,7 @@ }, "macro.dbt.type_string": { "arguments": [], - "created_at": 1733768712.095295, + "created_at": 1734424534.414492, "depends_on": { "macros": [ "macro.dbt.default__type_string" @@ -8973,7 +8997,7 @@ }, "macro.dbt.type_timestamp": { "arguments": [], - "created_at": 1733768712.095593, + "created_at": 1734424534.41477, "depends_on": { "macros": [ "macro.dbt.default__type_timestamp" @@ -8997,7 +9021,7 @@ }, "macro.dbt.validate_fixture_rows": { "arguments": [], - "created_at": 1733768712.1400268, + "created_at": 1734424534.454738, "depends_on": { "macros": [ "macro.dbt.default__validate_fixture_rows" @@ -9021,7 +9045,7 @@ }, "macro.dbt.validate_sql": { "arguments": [], - "created_at": 1733768712.1119502, + "created_at": 1734424534.429429, "depends_on": { "macros": [ "macro.dbt.default__validate_sql" @@ -9045,7 +9069,7 @@ }, "macro.dbt_postgres.postgres__alter_column_comment": { "arguments": [], - "created_at": 1733768711.9090261, + "created_at": 1734424534.256314, "depends_on": { "macros": [ "macro.dbt_postgres.postgres_escape_comment" @@ -9069,7 +9093,7 @@ }, "macro.dbt_postgres.postgres__alter_relation_comment": { "arguments": [], - "created_at": 1733768711.9084852, + "created_at": 1734424534.255805, "depends_on": { "macros": [ "macro.dbt_postgres.postgres_escape_comment" @@ -9093,7 +9117,7 @@ }, "macro.dbt_postgres.postgres__any_value": { "arguments": [], - "created_at": 1733768711.9198349, + "created_at": 1734424534.26577, "depends_on": { "macros": [] }, @@ -9115,7 +9139,7 @@ }, "macro.dbt_postgres.postgres__check_schema_exists": { "arguments": [], - "created_at": 1733768711.906323, + "created_at": 1734424534.253779, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9139,7 +9163,7 @@ }, "macro.dbt_postgres.postgres__copy_grants": { "arguments": [], - "created_at": 1733768711.909328, + "created_at": 1734424534.256598, "depends_on": { "macros": [] }, @@ -9161,7 +9185,7 @@ }, "macro.dbt_postgres.postgres__create_schema": { "arguments": [], - "created_at": 1733768711.9043221, + "created_at": 1734424534.251913, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9185,7 +9209,7 @@ }, "macro.dbt_postgres.postgres__create_table_as": { "arguments": [], - "created_at": 1733768711.903402, + "created_at": 1734424534.251201, "depends_on": { "macros": [ "macro.dbt.get_assert_columns_equivalent", @@ -9212,7 +9236,7 @@ }, "macro.dbt_postgres.postgres__current_timestamp": { "arguments": [], - "created_at": 1733768711.8904068, + "created_at": 1734424534.240033, "depends_on": { "macros": [] }, @@ -9234,7 +9258,7 @@ }, "macro.dbt_postgres.postgres__current_timestamp_backcompat": { "arguments": [], - "created_at": 1733768711.890817, + "created_at": 1734424534.240431, "depends_on": { "macros": [ "macro.dbt.type_timestamp" @@ -9258,7 +9282,7 @@ }, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": { "arguments": [], - "created_at": 1733768711.890965, + "created_at": 1734424534.240565, "depends_on": { "macros": [ "macro.dbt.type_timestamp" @@ -9282,7 +9306,7 @@ }, "macro.dbt_postgres.postgres__dateadd": { "arguments": [], - "created_at": 1733768711.9158762, + "created_at": 1734424534.262249, "depends_on": { "macros": [] }, @@ -9304,7 +9328,7 @@ }, "macro.dbt_postgres.postgres__datediff": { "arguments": [], - "created_at": 1733768711.919659, + "created_at": 1734424534.265633, "depends_on": { "macros": [ "macro.dbt.datediff" @@ -9328,7 +9352,7 @@ }, "macro.dbt_postgres.postgres__describe_materialized_view": { "arguments": [], - "created_at": 1733768711.9112089, + "created_at": 1734424534.258215, "depends_on": { "macros": [ "macro.dbt.run_query", @@ -9353,7 +9377,7 @@ }, "macro.dbt_postgres.postgres__drop_materialized_view": { "arguments": [], - "created_at": 1733768711.910935, + "created_at": 1734424534.257961, "depends_on": { "macros": [] }, @@ -9375,7 +9399,7 @@ }, "macro.dbt_postgres.postgres__drop_schema": { "arguments": [], - "created_at": 1733768711.904623, + "created_at": 1734424534.252186, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9399,7 +9423,7 @@ }, "macro.dbt_postgres.postgres__drop_table": { "arguments": [], - "created_at": 1733768711.9140658, + "created_at": 1734424534.2605581, "depends_on": { "macros": [] }, @@ -9421,7 +9445,7 @@ }, "macro.dbt_postgres.postgres__drop_view": { "arguments": [], - "created_at": 1733768711.9150012, + "created_at": 1734424534.261429, "depends_on": { "macros": [] }, @@ -9443,7 +9467,7 @@ }, "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768711.9124951, + "created_at": 1734424534.259287, "depends_on": { "macros": [ "macro.dbt.get_replace_sql", @@ -9468,7 +9492,7 @@ }, "macro.dbt_postgres.postgres__get_catalog": { "arguments": [], - "created_at": 1733768711.892891, + "created_at": 1734424534.242242, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_catalog_relations" @@ -9492,7 +9516,7 @@ }, "macro.dbt_postgres.postgres__get_catalog_relations": { "arguments": [], - "created_at": 1733768711.892511, + "created_at": 1734424534.24192, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9516,7 +9540,7 @@ }, "macro.dbt_postgres.postgres__get_columns_in_relation": { "arguments": [], - "created_at": 1733768711.905069, + "created_at": 1734424534.2526, "depends_on": { "macros": [ "macro.dbt.statement", @@ -9541,7 +9565,7 @@ }, "macro.dbt_postgres.postgres__get_create_index_sql": { "arguments": [], - "created_at": 1733768711.904011, + "created_at": 1734424534.251636, "depends_on": { "macros": [] }, @@ -9563,7 +9587,7 @@ }, "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql": { "arguments": [], - "created_at": 1733768711.913934, + "created_at": 1734424534.260437, "depends_on": { "macros": [ "macro.dbt.get_create_index_sql" @@ -9587,7 +9611,7 @@ }, "macro.dbt_postgres.postgres__get_drop_index_sql": { "arguments": [], - "created_at": 1733768711.909704, + "created_at": 1734424534.256885, "depends_on": { "macros": [] }, @@ -9609,7 +9633,7 @@ }, "macro.dbt_postgres.postgres__get_incremental_default_sql": { "arguments": [], - "created_at": 1733768711.910105, + "created_at": 1734424534.257215, "depends_on": { "macros": [ "macro.dbt.get_incremental_delete_insert_sql", @@ -9634,7 +9658,7 @@ }, "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes": { "arguments": [], - "created_at": 1733768711.913514, + "created_at": 1734424534.2600589, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__describe_materialized_view" @@ -9658,7 +9682,7 @@ }, "macro.dbt_postgres.postgres__get_relations": { "arguments": [], - "created_at": 1733768711.8935528, + "created_at": 1734424534.2428439, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9682,7 +9706,7 @@ }, "macro.dbt_postgres.postgres__get_rename_materialized_view_sql": { "arguments": [], - "created_at": 1733768711.911511, + "created_at": 1734424534.258504, "depends_on": { "macros": [] }, @@ -9704,7 +9728,7 @@ }, "macro.dbt_postgres.postgres__get_rename_table_sql": { "arguments": [], - "created_at": 1733768711.9148731, + "created_at": 1734424534.2613099, "depends_on": { "macros": [] }, @@ -9726,7 +9750,7 @@ }, "macro.dbt_postgres.postgres__get_rename_view_sql": { "arguments": [], - "created_at": 1733768711.9156768, + "created_at": 1734424534.262058, "depends_on": { "macros": [] }, @@ -9748,7 +9772,7 @@ }, "macro.dbt_postgres.postgres__get_replace_table_sql": { "arguments": [], - "created_at": 1733768711.914708, + "created_at": 1734424534.2611551, "depends_on": { "macros": [ "macro.dbt.get_assert_columns_equivalent", @@ -9774,7 +9798,7 @@ }, "macro.dbt_postgres.postgres__get_replace_view_sql": { "arguments": [], - "created_at": 1733768711.915513, + "created_at": 1734424534.261909, "depends_on": { "macros": [ "macro.dbt.get_assert_columns_equivalent" @@ -9798,7 +9822,7 @@ }, "macro.dbt_postgres.postgres__get_show_grant_sql": { "arguments": [], - "created_at": 1733768711.9092171, + "created_at": 1734424534.2564921, "depends_on": { "macros": [] }, @@ -9820,7 +9844,7 @@ }, "macro.dbt_postgres.postgres__get_show_indexes_sql": { "arguments": [], - "created_at": 1733768711.909507, + "created_at": 1734424534.256762, "depends_on": { "macros": [] }, @@ -9842,7 +9866,7 @@ }, "macro.dbt_postgres.postgres__information_schema_name": { "arguments": [], - "created_at": 1733768711.905647, + "created_at": 1734424534.253144, "depends_on": { "macros": [] }, @@ -9864,7 +9888,7 @@ }, "macro.dbt_postgres.postgres__last_day": { "arguments": [], - "created_at": 1733768711.9203148, + "created_at": 1734424534.266207, "depends_on": { "macros": [ "macro.dbt.dateadd", @@ -9890,7 +9914,7 @@ }, "macro.dbt_postgres.postgres__list_relations_without_caching": { "arguments": [], - "created_at": 1733768711.905483, + "created_at": 1734424534.252984, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9914,7 +9938,7 @@ }, "macro.dbt_postgres.postgres__list_schemas": { "arguments": [], - "created_at": 1733768711.9059682, + "created_at": 1734424534.253442, "depends_on": { "macros": [ "macro.dbt.statement" @@ -9938,7 +9962,7 @@ }, "macro.dbt_postgres.postgres__listagg": { "arguments": [], - "created_at": 1733768711.916457, + "created_at": 1734424534.262797, "depends_on": { "macros": [] }, @@ -9960,7 +9984,7 @@ }, "macro.dbt_postgres.postgres__make_backup_relation": { "arguments": [], - "created_at": 1733768711.9078882, + "created_at": 1734424534.255237, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_relation_with_suffix" @@ -9984,7 +10008,7 @@ }, "macro.dbt_postgres.postgres__make_intermediate_relation": { "arguments": [], - "created_at": 1733768711.907339, + "created_at": 1734424534.254721, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_relation_with_suffix" @@ -10008,7 +10032,7 @@ }, "macro.dbt_postgres.postgres__make_relation_with_suffix": { "arguments": [], - "created_at": 1733768711.90715, + "created_at": 1734424534.254551, "depends_on": { "macros": [] }, @@ -10030,7 +10054,7 @@ }, "macro.dbt_postgres.postgres__make_temp_relation": { "arguments": [], - "created_at": 1733768711.907634, + "created_at": 1734424534.255002, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__make_relation_with_suffix" @@ -10054,7 +10078,7 @@ }, "macro.dbt_postgres.postgres__refresh_materialized_view": { "arguments": [], - "created_at": 1733768711.911341, + "created_at": 1734424534.258337, "depends_on": { "macros": [] }, @@ -10076,7 +10100,7 @@ }, "macro.dbt_postgres.postgres__snapshot_get_time": { "arguments": [], - "created_at": 1733768711.89071, + "created_at": 1734424534.240322, "depends_on": { "macros": [ "macro.dbt.current_timestamp" @@ -10100,7 +10124,7 @@ }, "macro.dbt_postgres.postgres__snapshot_merge_sql": { "arguments": [], - "created_at": 1733768711.910793, + "created_at": 1734424534.257834, "depends_on": { "macros": [] }, @@ -10122,7 +10146,7 @@ }, "macro.dbt_postgres.postgres__snapshot_string_as_time": { "arguments": [], - "created_at": 1733768711.890605, + "created_at": 1734424534.2402298, "depends_on": { "macros": [] }, @@ -10144,7 +10168,7 @@ }, "macro.dbt_postgres.postgres__split_part": { "arguments": [], - "created_at": 1733768711.920707, + "created_at": 1734424534.266561, "depends_on": { "macros": [ "macro.dbt.default__split_part", @@ -10169,7 +10193,7 @@ }, "macro.dbt_postgres.postgres__update_indexes_on_materialized_view": { "arguments": [], - "created_at": 1733768711.913155, + "created_at": 1734424534.2597408, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_drop_index_sql", @@ -10194,7 +10218,7 @@ }, "macro.dbt_postgres.postgres_escape_comment": { "arguments": [], - "created_at": 1733768711.908277, + "created_at": 1734424534.255604, "depends_on": { "macros": [] }, @@ -10216,7 +10240,7 @@ }, "macro.dbt_postgres.postgres_get_relations": { "arguments": [], - "created_at": 1733768711.893682, + "created_at": 1734424534.242964, "depends_on": { "macros": [ "macro.dbt_postgres.postgres__get_relations" @@ -10240,7 +10264,7 @@ }, "macro.dbt_utils._bigquery__get_matching_schemata": { "arguments": [], - "created_at": 1733768712.202956, + "created_at": 1734424534.512417, "depends_on": { "macros": [ "macro.dbt.run_query" @@ -10264,7 +10288,7 @@ }, "macro.dbt_utils._is_ephemeral": { "arguments": [], - "created_at": 1733768712.174357, + "created_at": 1734424534.486258, "depends_on": { "macros": [] }, @@ -10286,7 +10310,7 @@ }, "macro.dbt_utils._is_relation": { "arguments": [], - "created_at": 1733768712.172193, + "created_at": 1734424534.484239, "depends_on": { "macros": [] }, @@ -10308,7 +10332,7 @@ }, "macro.dbt_utils.bigquery__deduplicate": { "arguments": [], - "created_at": 1733768712.197666, + "created_at": 1734424534.507521, "depends_on": { "macros": [] }, @@ -10330,7 +10354,7 @@ }, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": { "arguments": [], - "created_at": 1733768712.202496, + "created_at": 1734424534.5119848, "depends_on": { "macros": [ "macro.dbt_utils._bigquery__get_matching_schemata", @@ -10355,7 +10379,7 @@ }, "macro.dbt_utils.bigquery__haversine_distance": { "arguments": [], - "created_at": 1733768712.216371, + "created_at": 1734424534.52475, "depends_on": { "macros": [ "macro.dbt_utils.degrees_to_radians" @@ -10379,7 +10403,7 @@ }, "macro.dbt_utils.databricks__get_table_types_sql": { "arguments": [], - "created_at": 1733768712.212539, + "created_at": 1734424534.521288, "depends_on": { "macros": [] }, @@ -10401,7 +10425,7 @@ }, "macro.dbt_utils.date_spine": { "arguments": [], - "created_at": 1733768712.17577, + "created_at": 1734424534.4875689, "depends_on": { "macros": [ "macro.dbt_utils.default__date_spine" @@ -10425,7 +10449,7 @@ }, "macro.dbt_utils.deduplicate": { "arguments": [], - "created_at": 1733768712.1967769, + "created_at": 1734424534.506696, "depends_on": { "macros": [ "macro.dbt_utils.postgres__deduplicate" @@ -10449,7 +10473,7 @@ }, "macro.dbt_utils.default__date_spine": { "arguments": [], - "created_at": 1733768712.1761112, + "created_at": 1734424534.487881, "depends_on": { "macros": [ "macro.dbt_utils.generate_series", @@ -10475,7 +10499,7 @@ }, "macro.dbt_utils.default__deduplicate": { "arguments": [], - "created_at": 1733768712.196984, + "created_at": 1734424534.506886, "depends_on": { "macros": [] }, @@ -10497,7 +10521,7 @@ }, "macro.dbt_utils.default__generate_series": { "arguments": [], - "created_at": 1733768712.1810062, + "created_at": 1734424534.49233, "depends_on": { "macros": [ "macro.dbt_utils.get_powers_of_two" @@ -10521,7 +10545,7 @@ }, "macro.dbt_utils.default__generate_surrogate_key": { "arguments": [], - "created_at": 1733768712.2115998, + "created_at": 1734424534.520458, "depends_on": { "macros": [ "macro.dbt.type_string", @@ -10547,7 +10571,7 @@ }, "macro.dbt_utils.default__get_column_values": { "arguments": [], - "created_at": 1733768712.205406, + "created_at": 1734424534.5147278, "depends_on": { "macros": [ "macro.dbt_utils._is_ephemeral", @@ -10573,7 +10597,7 @@ }, "macro.dbt_utils.default__get_filtered_columns_in_relation": { "arguments": [], - "created_at": 1733768712.208271, + "created_at": 1734424534.517405, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -10598,7 +10622,7 @@ }, "macro.dbt_utils.default__get_intervals_between": { "arguments": [], - "created_at": 1733768712.1755588, + "created_at": 1734424534.48737, "depends_on": { "macros": [ "macro.dbt.statement", @@ -10623,7 +10647,7 @@ }, "macro.dbt_utils.default__get_powers_of_two": { "arguments": [], - "created_at": 1733768712.1803598, + "created_at": 1734424534.491731, "depends_on": { "macros": [] }, @@ -10645,7 +10669,7 @@ }, "macro.dbt_utils.default__get_query_results_as_dict": { "arguments": [], - "created_at": 1733768712.210588, + "created_at": 1734424534.519518, "depends_on": { "macros": [ "macro.dbt.statement" @@ -10669,7 +10693,7 @@ }, "macro.dbt_utils.default__get_relations_by_pattern": { "arguments": [], - "created_at": 1733768712.179136, + "created_at": 1734424534.490635, "depends_on": { "macros": [ "macro.dbt.statement", @@ -10694,7 +10718,7 @@ }, "macro.dbt_utils.default__get_relations_by_prefix": { "arguments": [], - "created_at": 1733768712.182445, + "created_at": 1734424534.493655, "depends_on": { "macros": [ "macro.dbt.statement", @@ -10719,7 +10743,7 @@ }, "macro.dbt_utils.default__get_single_value": { "arguments": [], - "created_at": 1733768712.2137752, + "created_at": 1734424534.522402, "depends_on": { "macros": [ "macro.dbt.statement" @@ -10743,7 +10767,7 @@ }, "macro.dbt_utils.default__get_table_types_sql": { "arguments": [], - "created_at": 1733768712.212277, + "created_at": 1734424534.5210419, "depends_on": { "macros": [] }, @@ -10765,7 +10789,7 @@ }, "macro.dbt_utils.default__get_tables_by_pattern_sql": { "arguments": [], - "created_at": 1733768712.201783, + "created_at": 1734424534.511324, "depends_on": { "macros": [ "macro.dbt_utils.get_table_types_sql" @@ -10789,7 +10813,7 @@ }, "macro.dbt_utils.default__get_tables_by_prefix_sql": { "arguments": [], - "created_at": 1733768712.1830761, + "created_at": 1734424534.494247, "depends_on": { "macros": [ "macro.dbt_utils.get_tables_by_pattern_sql" @@ -10813,7 +10837,7 @@ }, "macro.dbt_utils.default__get_url_host": { "arguments": [], - "created_at": 1733768712.146198, + "created_at": 1734424534.460465, "depends_on": { "macros": [ "macro.dbt.split_part", @@ -10840,7 +10864,7 @@ }, "macro.dbt_utils.default__get_url_parameter": { "arguments": [], - "created_at": 1733768712.1479151, + "created_at": 1734424534.4620118, "depends_on": { "macros": [ "macro.dbt.split_part" @@ -10864,7 +10888,7 @@ }, "macro.dbt_utils.default__get_url_path": { "arguments": [], - "created_at": 1733768712.147267, + "created_at": 1734424534.461463, "depends_on": { "macros": [ "macro.dbt.replace", @@ -10894,7 +10918,7 @@ }, "macro.dbt_utils.default__group_by": { "arguments": [], - "created_at": 1733768712.19604, + "created_at": 1734424534.5060139, "depends_on": { "macros": [] }, @@ -10916,7 +10940,7 @@ }, "macro.dbt_utils.default__haversine_distance": { "arguments": [], - "created_at": 1733768712.215644, + "created_at": 1734424534.524077, "depends_on": { "macros": [] }, @@ -10938,7 +10962,7 @@ }, "macro.dbt_utils.default__log_info": { "arguments": [], - "created_at": 1733768712.17303, + "created_at": 1734424534.485016, "depends_on": { "macros": [ "macro.dbt_utils.pretty_log_format" @@ -10962,7 +10986,7 @@ }, "macro.dbt_utils.default__nullcheck": { "arguments": [], - "created_at": 1733768712.199714, + "created_at": 1734424534.50943, "depends_on": { "macros": [] }, @@ -10984,7 +11008,7 @@ }, "macro.dbt_utils.default__nullcheck_table": { "arguments": [], - "created_at": 1733768712.1775832, + "created_at": 1734424534.48925, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -11010,7 +11034,7 @@ }, "macro.dbt_utils.default__pivot": { "arguments": [], - "created_at": 1733768712.2071738, + "created_at": 1734424534.516382, "depends_on": { "macros": [ "macro.dbt.escape_single_quotes", @@ -11035,7 +11059,7 @@ }, "macro.dbt_utils.default__pretty_log_format": { "arguments": [], - "created_at": 1733768712.1717901, + "created_at": 1734424534.483859, "depends_on": { "macros": [ "macro.dbt_utils.pretty_time" @@ -11059,7 +11083,7 @@ }, "macro.dbt_utils.default__pretty_time": { "arguments": [], - "created_at": 1733768712.172632, + "created_at": 1734424534.4846451, "depends_on": { "macros": [] }, @@ -11081,7 +11105,7 @@ }, "macro.dbt_utils.default__safe_add": { "arguments": [], - "created_at": 1733768712.1990988, + "created_at": 1734424534.508842, "depends_on": { "macros": [] }, @@ -11103,7 +11127,7 @@ }, "macro.dbt_utils.default__safe_divide": { "arguments": [], - "created_at": 1733768712.189014, + "created_at": 1734424534.49957, "depends_on": { "macros": [] }, @@ -11125,7 +11149,7 @@ }, "macro.dbt_utils.default__safe_subtract": { "arguments": [], - "created_at": 1733768712.176975, + "created_at": 1734424534.488671, "depends_on": { "macros": [] }, @@ -11147,7 +11171,7 @@ }, "macro.dbt_utils.default__star": { "arguments": [], - "created_at": 1733768712.185656, + "created_at": 1734424534.496643, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -11173,7 +11197,7 @@ }, "macro.dbt_utils.default__surrogate_key": { "arguments": [], - "created_at": 1733768712.198252, + "created_at": 1734424534.5080588, "depends_on": { "macros": [] }, @@ -11195,7 +11219,7 @@ }, "macro.dbt_utils.default__test_accepted_range": { "arguments": [], - "created_at": 1733768712.1561139, + "created_at": 1734424534.469429, "depends_on": { "macros": [] }, @@ -11217,7 +11241,7 @@ }, "macro.dbt_utils.default__test_at_least_one": { "arguments": [], - "created_at": 1733768712.158407, + "created_at": 1734424534.471483, "depends_on": { "macros": [] }, @@ -11239,7 +11263,7 @@ }, "macro.dbt_utils.default__test_cardinality_equality": { "arguments": [], - "created_at": 1733768712.1604521, + "created_at": 1734424534.4733682, "depends_on": { "macros": [ "macro.dbt.except" @@ -11263,7 +11287,7 @@ }, "macro.dbt_utils.default__test_equal_rowcount": { "arguments": [], - "created_at": 1733768712.151708, + "created_at": 1734424534.465524, "depends_on": { "macros": [] }, @@ -11285,7 +11309,7 @@ }, "macro.dbt_utils.default__test_equality": { "arguments": [], - "created_at": 1733768712.165611, + "created_at": 1734424534.4782238, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -11311,7 +11335,7 @@ }, "macro.dbt_utils.default__test_expression_is_true": { "arguments": [], - "created_at": 1733768712.161143, + "created_at": 1734424534.4740212, "depends_on": { "macros": [ "macro.dbt.should_store_failures" @@ -11335,7 +11359,7 @@ }, "macro.dbt_utils.default__test_fewer_rows_than": { "arguments": [], - "created_at": 1733768712.149914, + "created_at": 1734424534.4638479, "depends_on": { "macros": [] }, @@ -11357,7 +11381,7 @@ }, "macro.dbt_utils.default__test_mutually_exclusive_ranges": { "arguments": [], - "created_at": 1733768712.171369, + "created_at": 1734424534.483475, "depends_on": { "macros": [] }, @@ -11379,7 +11403,7 @@ }, "macro.dbt_utils.default__test_not_accepted_values": { "arguments": [], - "created_at": 1733768712.157071, + "created_at": 1734424534.470314, "depends_on": { "macros": [] }, @@ -11401,7 +11425,7 @@ }, "macro.dbt_utils.default__test_not_constant": { "arguments": [], - "created_at": 1733768712.155079, + "created_at": 1734424534.4684958, "depends_on": { "macros": [] }, @@ -11423,7 +11447,7 @@ }, "macro.dbt_utils.default__test_not_empty_string": { "arguments": [], - "created_at": 1733768712.166371, + "created_at": 1734424534.478941, "depends_on": { "macros": [] }, @@ -11445,7 +11469,7 @@ }, "macro.dbt_utils.default__test_not_null_proportion": { "arguments": [], - "created_at": 1733768712.162483, + "created_at": 1734424534.475269, "depends_on": { "macros": [] }, @@ -11467,7 +11491,7 @@ }, "macro.dbt_utils.default__test_recency": { "arguments": [], - "created_at": 1733768712.154061, + "created_at": 1734424534.467725, "depends_on": { "macros": [ "macro.dbt.dateadd", @@ -11493,7 +11517,7 @@ }, "macro.dbt_utils.default__test_relationships_where": { "arguments": [], - "created_at": 1733768712.152631, + "created_at": 1734424534.466388, "depends_on": { "macros": [] }, @@ -11515,7 +11539,7 @@ }, "macro.dbt_utils.default__test_sequential_values": { "arguments": [], - "created_at": 1733768712.164138, + "created_at": 1734424534.4768388, "depends_on": { "macros": [ "macro.dbt_utils.slugify", @@ -11541,7 +11565,7 @@ }, "macro.dbt_utils.default__test_unique_combination_of_columns": { "arguments": [], - "created_at": 1733768712.159636, + "created_at": 1734424534.472587, "depends_on": { "macros": [] }, @@ -11563,7 +11587,7 @@ }, "macro.dbt_utils.default__union_relations": { "arguments": [], - "created_at": 1733768712.1955168, + "created_at": 1734424534.505526, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -11590,7 +11614,7 @@ }, "macro.dbt_utils.default__unpivot": { "arguments": [], - "created_at": 1733768712.188548, + "created_at": 1734424534.499202, "depends_on": { "macros": [ "macro.dbt_utils._is_relation", @@ -11617,7 +11641,7 @@ }, "macro.dbt_utils.default__width_bucket": { "arguments": [], - "created_at": 1733768712.209457, + "created_at": 1734424534.5185091, "depends_on": { "macros": [ "macro.dbt.safe_cast", @@ -11642,7 +11666,7 @@ }, "macro.dbt_utils.degrees_to_radians": { "arguments": [], - "created_at": 1733768712.21486, + "created_at": 1734424534.523359, "depends_on": { "macros": [] }, @@ -11664,7 +11688,7 @@ }, "macro.dbt_utils.generate_series": { "arguments": [], - "created_at": 1733768712.180539, + "created_at": 1734424534.49189, "depends_on": { "macros": [ "macro.dbt_utils.default__generate_series" @@ -11688,7 +11712,7 @@ }, "macro.dbt_utils.generate_surrogate_key": { "arguments": [], - "created_at": 1733768712.211029, + "created_at": 1734424534.519922, "depends_on": { "macros": [ "macro.dbt_utils.default__generate_surrogate_key" @@ -11712,7 +11736,7 @@ }, "macro.dbt_utils.get_column_values": { "arguments": [], - "created_at": 1733768712.204057, + "created_at": 1734424534.5134459, "depends_on": { "macros": [ "macro.dbt_utils.default__get_column_values" @@ -11736,7 +11760,7 @@ }, "macro.dbt_utils.get_filtered_columns_in_relation": { "arguments": [], - "created_at": 1733768712.207616, + "created_at": 1734424534.516789, "depends_on": { "macros": [ "macro.dbt_utils.default__get_filtered_columns_in_relation" @@ -11760,7 +11784,7 @@ }, "macro.dbt_utils.get_intervals_between": { "arguments": [], - "created_at": 1733768712.175016, + "created_at": 1734424534.486872, "depends_on": { "macros": [ "macro.dbt_utils.default__get_intervals_between" @@ -11784,7 +11808,7 @@ }, "macro.dbt_utils.get_powers_of_two": { "arguments": [], - "created_at": 1733768712.179986, + "created_at": 1734424534.491384, "depends_on": { "macros": [ "macro.dbt_utils.default__get_powers_of_two" @@ -11808,7 +11832,7 @@ }, "macro.dbt_utils.get_query_results_as_dict": { "arguments": [], - "created_at": 1733768712.210002, + "created_at": 1734424534.5190148, "depends_on": { "macros": [ "macro.dbt_utils.default__get_query_results_as_dict" @@ -11832,7 +11856,7 @@ }, "macro.dbt_utils.get_relations_by_pattern": { "arguments": [], - "created_at": 1733768712.178231, + "created_at": 1734424534.489852, "depends_on": { "macros": [ "macro.dbt_utils.default__get_relations_by_pattern" @@ -11856,7 +11880,7 @@ }, "macro.dbt_utils.get_relations_by_prefix": { "arguments": [], - "created_at": 1733768712.181674, + "created_at": 1734424534.492936, "depends_on": { "macros": [ "macro.dbt_utils.default__get_relations_by_prefix" @@ -11880,7 +11904,7 @@ }, "macro.dbt_utils.get_single_value": { "arguments": [], - "created_at": 1733768712.213035, + "created_at": 1734424534.521714, "depends_on": { "macros": [ "macro.dbt_utils.default__get_single_value" @@ -11904,7 +11928,7 @@ }, "macro.dbt_utils.get_table_types_sql": { "arguments": [], - "created_at": 1733768712.212138, + "created_at": 1734424534.520916, "depends_on": { "macros": [ "macro.dbt_utils.postgres__get_table_types_sql" @@ -11928,7 +11952,7 @@ }, "macro.dbt_utils.get_tables_by_pattern_sql": { "arguments": [], - "created_at": 1733768712.2014499, + "created_at": 1734424534.511015, "depends_on": { "macros": [ "macro.dbt_utils.default__get_tables_by_pattern_sql" @@ -11952,7 +11976,7 @@ }, "macro.dbt_utils.get_tables_by_prefix_sql": { "arguments": [], - "created_at": 1733768712.182817, + "created_at": 1734424534.494006, "depends_on": { "macros": [ "macro.dbt_utils.default__get_tables_by_prefix_sql" @@ -11976,7 +12000,7 @@ }, "macro.dbt_utils.get_url_host": { "arguments": [], - "created_at": 1733768712.145681, + "created_at": 1734424534.46, "depends_on": { "macros": [ "macro.dbt_utils.default__get_url_host" @@ -12000,7 +12024,7 @@ }, "macro.dbt_utils.get_url_parameter": { "arguments": [], - "created_at": 1733768712.147597, + "created_at": 1734424534.461735, "depends_on": { "macros": [ "macro.dbt_utils.default__get_url_parameter" @@ -12024,7 +12048,7 @@ }, "macro.dbt_utils.get_url_path": { "arguments": [], - "created_at": 1733768712.1466691, + "created_at": 1734424534.460901, "depends_on": { "macros": [ "macro.dbt_utils.default__get_url_path" @@ -12048,7 +12072,7 @@ }, "macro.dbt_utils.group_by": { "arguments": [], - "created_at": 1733768712.195807, + "created_at": 1734424534.5057971, "depends_on": { "macros": [ "macro.dbt_utils.default__group_by" @@ -12072,7 +12096,7 @@ }, "macro.dbt_utils.haversine_distance": { "arguments": [], - "created_at": 1733768712.215117, + "created_at": 1734424534.523597, "depends_on": { "macros": [ "macro.dbt_utils.default__haversine_distance" @@ -12096,7 +12120,7 @@ }, "macro.dbt_utils.log_info": { "arguments": [], - "created_at": 1733768712.17287, + "created_at": 1734424534.484869, "depends_on": { "macros": [ "macro.dbt_utils.default__log_info" @@ -12120,7 +12144,7 @@ }, "macro.dbt_utils.nullcheck": { "arguments": [], - "created_at": 1733768712.199415, + "created_at": 1734424534.509134, "depends_on": { "macros": [ "macro.dbt_utils.default__nullcheck" @@ -12144,7 +12168,7 @@ }, "macro.dbt_utils.nullcheck_table": { "arguments": [], - "created_at": 1733768712.1772642, + "created_at": 1734424534.4889421, "depends_on": { "macros": [ "macro.dbt_utils.default__nullcheck_table" @@ -12168,7 +12192,7 @@ }, "macro.dbt_utils.pivot": { "arguments": [], - "created_at": 1733768712.206419, + "created_at": 1734424534.515671, "depends_on": { "macros": [ "macro.dbt_utils.default__pivot" @@ -12192,7 +12216,7 @@ }, "macro.dbt_utils.postgres__deduplicate": { "arguments": [], - "created_at": 1733768712.1973498, + "created_at": 1734424534.507227, "depends_on": { "macros": [] }, @@ -12214,7 +12238,7 @@ }, "macro.dbt_utils.postgres__get_table_types_sql": { "arguments": [], - "created_at": 1733768712.212409, + "created_at": 1734424534.5211678, "depends_on": { "macros": [] }, @@ -12236,7 +12260,7 @@ }, "macro.dbt_utils.pretty_log_format": { "arguments": [], - "created_at": 1733768712.171633, + "created_at": 1734424534.483713, "depends_on": { "macros": [ "macro.dbt_utils.default__pretty_log_format" @@ -12260,7 +12284,7 @@ }, "macro.dbt_utils.pretty_time": { "arguments": [], - "created_at": 1733768712.172449, + "created_at": 1734424534.484477, "depends_on": { "macros": [ "macro.dbt_utils.default__pretty_time" @@ -12284,7 +12308,7 @@ }, "macro.dbt_utils.redshift__deduplicate": { "arguments": [], - "created_at": 1733768712.197172, + "created_at": 1734424534.507057, "depends_on": { "macros": [ "macro.dbt_utils.default__deduplicate" @@ -12308,7 +12332,7 @@ }, "macro.dbt_utils.safe_add": { "arguments": [], - "created_at": 1733768712.198612, + "created_at": 1734424534.5083861, "depends_on": { "macros": [ "macro.dbt_utils.default__safe_add" @@ -12332,7 +12356,7 @@ }, "macro.dbt_utils.safe_divide": { "arguments": [], - "created_at": 1733768712.188876, + "created_at": 1734424534.499455, "depends_on": { "macros": [ "macro.dbt_utils.default__safe_divide" @@ -12356,7 +12380,7 @@ }, "macro.dbt_utils.safe_subtract": { "arguments": [], - "created_at": 1733768712.1764748, + "created_at": 1734424534.488215, "depends_on": { "macros": [ "macro.dbt_utils.default__safe_subtract" @@ -12380,7 +12404,7 @@ }, "macro.dbt_utils.slugify": { "arguments": [], - "created_at": 1733768712.1735811, + "created_at": 1734424534.485539, "depends_on": { "macros": [] }, @@ -12402,7 +12426,7 @@ }, "macro.dbt_utils.snowflake__deduplicate": { "arguments": [], - "created_at": 1733768712.197504, + "created_at": 1734424534.507371, "depends_on": { "macros": [] }, @@ -12424,7 +12448,7 @@ }, "macro.dbt_utils.snowflake__width_bucket": { "arguments": [], - "created_at": 1733768712.209634, + "created_at": 1734424534.518674, "depends_on": { "macros": [] }, @@ -12446,7 +12470,7 @@ }, "macro.dbt_utils.star": { "arguments": [], - "created_at": 1733768712.184314, + "created_at": 1734424534.4953952, "depends_on": { "macros": [ "macro.dbt_utils.default__star" @@ -12470,7 +12494,7 @@ }, "macro.dbt_utils.surrogate_key": { "arguments": [], - "created_at": 1733768712.19803, + "created_at": 1734424534.507856, "depends_on": { "macros": [ "macro.dbt_utils.default__surrogate_key" @@ -12494,7 +12518,7 @@ }, "macro.dbt_utils.test_accepted_range": { "arguments": [], - "created_at": 1733768712.155669, + "created_at": 1734424534.469024, "depends_on": { "macros": [ "macro.dbt_utils.default__test_accepted_range" @@ -12518,7 +12542,7 @@ }, "macro.dbt_utils.test_at_least_one": { "arguments": [], - "created_at": 1733768712.157697, + "created_at": 1734424534.470853, "depends_on": { "macros": [ "macro.dbt_utils.default__test_at_least_one" @@ -12542,7 +12566,7 @@ }, "macro.dbt_utils.test_cardinality_equality": { "arguments": [], - "created_at": 1733768712.160137, + "created_at": 1734424534.473072, "depends_on": { "macros": [ "macro.dbt_utils.default__test_cardinality_equality" @@ -12566,7 +12590,7 @@ }, "macro.dbt_utils.test_equal_rowcount": { "arguments": [], - "created_at": 1733768712.1507342, + "created_at": 1734424534.4646158, "depends_on": { "macros": [ "macro.dbt_utils.default__test_equal_rowcount" @@ -12590,7 +12614,7 @@ }, "macro.dbt_utils.test_equality": { "arguments": [], - "created_at": 1733768712.1648152, + "created_at": 1734424534.477474, "depends_on": { "macros": [ "macro.dbt_utils.default__test_equality" @@ -12614,7 +12638,7 @@ }, "macro.dbt_utils.test_expression_is_true": { "arguments": [], - "created_at": 1733768712.160819, + "created_at": 1734424534.4737148, "depends_on": { "macros": [ "macro.dbt_utils.default__test_expression_is_true" @@ -12638,7 +12662,7 @@ }, "macro.dbt_utils.test_fewer_rows_than": { "arguments": [], - "created_at": 1733768712.148976, + "created_at": 1734424534.462976, "depends_on": { "macros": [ "macro.dbt_utils.default__test_fewer_rows_than" @@ -12662,7 +12686,7 @@ }, "macro.dbt_utils.test_mutually_exclusive_ranges": { "arguments": [], - "created_at": 1733768712.169887, + "created_at": 1734424534.4821172, "depends_on": { "macros": [ "macro.dbt_utils.default__test_mutually_exclusive_ranges" @@ -12686,7 +12710,7 @@ }, "macro.dbt_utils.test_not_accepted_values": { "arguments": [], - "created_at": 1733768712.156644, + "created_at": 1734424534.469918, "depends_on": { "macros": [ "macro.dbt_utils.default__test_not_accepted_values" @@ -12710,7 +12734,7 @@ }, "macro.dbt_utils.test_not_constant": { "arguments": [], - "created_at": 1733768712.1544719, + "created_at": 1734424534.46811, "depends_on": { "macros": [ "macro.dbt_utils.default__test_not_constant" @@ -12734,7 +12758,7 @@ }, "macro.dbt_utils.test_not_empty_string": { "arguments": [], - "created_at": 1733768712.166101, + "created_at": 1734424534.478685, "depends_on": { "macros": [ "macro.dbt_utils.default__test_not_empty_string" @@ -12758,7 +12782,7 @@ }, "macro.dbt_utils.test_not_null_proportion": { "arguments": [], - "created_at": 1733768712.161741, + "created_at": 1734424534.474578, "depends_on": { "macros": [ "macro.dbt_utils.default__test_not_null_proportion" @@ -12782,7 +12806,7 @@ }, "macro.dbt_utils.test_recency": { "arguments": [], - "created_at": 1733768712.153312, + "created_at": 1734424534.4670222, "depends_on": { "macros": [ "macro.dbt_utils.default__test_recency" @@ -12806,7 +12830,7 @@ }, "macro.dbt_utils.test_relationships_where": { "arguments": [], - "created_at": 1733768712.152317, + "created_at": 1734424534.466093, "depends_on": { "macros": [ "macro.dbt_utils.default__test_relationships_where" @@ -12830,7 +12854,7 @@ }, "macro.dbt_utils.test_sequential_values": { "arguments": [], - "created_at": 1733768712.163331, + "created_at": 1734424534.476065, "depends_on": { "macros": [ "macro.dbt_utils.default__test_sequential_values" @@ -12854,7 +12878,7 @@ }, "macro.dbt_utils.test_unique_combination_of_columns": { "arguments": [], - "created_at": 1733768712.159051, + "created_at": 1734424534.472042, "depends_on": { "macros": [ "macro.dbt_utils.default__test_unique_combination_of_columns" @@ -12878,7 +12902,7 @@ }, "macro.dbt_utils.union_relations": { "arguments": [], - "created_at": 1733768712.192402, + "created_at": 1734424534.502646, "depends_on": { "macros": [ "macro.dbt_utils.default__union_relations" @@ -12902,7 +12926,7 @@ }, "macro.dbt_utils.unpivot": { "arguments": [], - "created_at": 1733768712.186986, + "created_at": 1734424534.497865, "depends_on": { "macros": [ "macro.dbt_utils.default__unpivot" @@ -12926,7 +12950,7 @@ }, "macro.dbt_utils.width_bucket": { "arguments": [], - "created_at": 1733768712.2090409, + "created_at": 1734424534.518115, "depends_on": { "macros": [ "macro.dbt_utils.default__width_bucket" @@ -12947,30 +12971,6 @@ "resource_type": "macro", "supported_languages": null, "unique_id": "macro.dbt_utils.width_bucket" - }, - "macro.jaffle_shop.drop_table_by_name": { - "arguments": [], - "created_at": 1733768711.890105, - "depends_on": { - "macros": [ - "macro.dbt.run_query" - ] - }, - "description": "", - "docs": { - "node_color": null, - "show": true - }, - "macro_sql": "{%- macro drop_table_by_name(table_name) -%}\n {%- set drop_query -%}\n DROP TABLE IF EXISTS {{ target.schema }}.{{ table_name }} CASCADE\n {%- endset -%}\n {% do run_query(drop_query) %}\n{%- endmacro -%}", - "meta": {}, - "name": "drop_table_by_name", - "original_file_path": "macros/drop_table.sql", - "package_name": "jaffle_shop", - "patch_path": null, - "path": "macros/drop_table.sql", - "resource_type": "macro", - "supported_languages": null, - "unique_id": "macro.jaffle_shop.drop_table_by_name" } }, "metadata": { @@ -12978,16 +12978,16 @@ "dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v12.json", "dbt_version": "1.8.7", "env": {}, - "generated_at": "2024-12-09T18:25:11.852105Z", - "invocation_id": "c2b26d74-4af6-4b69-8e66-acb7dc838565", - "project_id": "06e5b98c2db46f8a72cc4f66410e9b3b", - "project_name": "jaffle_shop", + "generated_at": "2024-12-18T10:55:53.230278Z", + "invocation_id": "12403d65-3b59-41c6-a23f-980df95238fd", + "project_id": "d8b33d0ce1366e23144533018f8accb2", + "project_name": "altered_jaffle_shop", "send_anonymous_usage_stats": true, - "user_id": "15f4b14a-123f-433a-bddc-864f00ab86fc" + "user_id": "37438406-1152-4420-916e-ac6baac9293e" }, "metrics": {}, "nodes": { - "model.jaffle_shop.customers": { + "model.altered_jaffle_shop.customers": { "access": "protected", "alias": "customers", "build_path": null, @@ -13079,7 +13079,7 @@ "grants": {}, "group": null, "incremental_strategy": null, - "materialized": "table", + "materialized": "view", "meta": {}, "on_configuration_change": "apply", "on_schema_change": "ignore", @@ -13100,14 +13100,14 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.6589088, + "created_at": 1734513348.0710132, "database": "postgres", "depends_on": { "macros": [], "nodes": [ - "model.jaffle_shop.stg_customers", - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.stg_customers", + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments" ] }, "deprecation_date": null, @@ -13117,7 +13117,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "customers" ], "group": null, @@ -13127,8 +13127,8 @@ "metrics": [], "name": "customers", "original_file_path": "models/customers.sql", - "package_name": "jaffle_shop", - "patch_path": "jaffle_shop://models/schema.yml", + "package_name": "altered_jaffle_shop", + "patch_path": "altered_jaffle_shop://models/schema.yml", "path": "customers.sql", "raw_code": "{{ config(tags=[\"customers\"]) }}\n\nwith customers as (\n\n select * from {{ ref('stg_customers') }}\n\n),\n\norders as (\n\n select * from {{ ref('stg_orders') }}\n\n),\n\npayments as (\n\n select * from {{ ref('stg_payments') }}\n\n),\n\ncustomer_orders as (\n\n select\n customer_id,\n\n min(order_date) as first_order,\n max(order_date) as most_recent_order,\n count(order_id) as number_of_orders\n from orders\n\n group by customer_id\n\n),\n\ncustomer_payments as (\n\n select\n orders.customer_id,\n sum(amount) as total_amount\n\n from payments\n\n left join orders on\n payments.order_id = orders.order_id\n\n group by orders.customer_id\n\n),\n\nfinal as (\n\n select\n customers.customer_id,\n customers.first_name,\n customers.last_name,\n customer_orders.first_order,\n customer_orders.most_recent_order,\n customer_orders.number_of_orders,\n customer_payments.total_amount as customer_lifetime_value\n\n from customers\n\n left join customer_orders\n on customers.customer_id = customer_orders.customer_id\n\n left join customer_payments\n on customers.customer_id = customer_payments.customer_id\n\n)\n\nselect * from final", "refs": [ @@ -13155,21 +13155,20 @@ "tags": [ "customers" ], - "unique_id": "model.jaffle_shop.customers", + "unique_id": "model.altered_jaffle_shop.customers", "unrendered_config": { - "materialized": "table", "tags": [ "customers" ] }, "version": null }, - "model.jaffle_shop.orders": { + "model.altered_jaffle_shop.orders": { "access": "protected", "alias": "orders", "build_path": null, "checksum": { - "checksum": "27f8c79aad1cfd8411ab9c3d2ce8da1d787f7f05c58bbee1d247510dc426be0f", + "checksum": "cbad69d56563f5e93a817407ee52f1a6c755386f3edbd6a603e4f681337e2963", "name": "sha256" }, "columns": { @@ -13258,7 +13257,7 @@ "compiled_path": null, "config": { "access": "protected", - "alias": null, + "alias": "orders", "column_types": {}, "contract": { "alias_types": true, @@ -13274,7 +13273,7 @@ "grants": {}, "group": null, "incremental_strategy": null, - "materialized": "table", + "materialized": "view", "meta": {}, "on_configuration_change": "apply", "on_schema_change": "ignore", @@ -13293,13 +13292,13 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.661519, + "created_at": 1734519353.3694022, "database": "postgres", "depends_on": { "macros": [], "nodes": [ - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments" ] }, "deprecation_date": null, @@ -13309,7 +13308,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "orders" ], "group": null, @@ -13319,10 +13318,10 @@ "metrics": [], "name": "orders", "original_file_path": "models/orders.sql", - "package_name": "jaffle_shop", - "patch_path": "jaffle_shop://models/schema.yml", + "package_name": "altered_jaffle_shop", + "patch_path": "altered_jaffle_shop://models/schema.yml", "path": "orders.sql", - "raw_code": "{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}\n\nwith orders as (\n\n select * from {{ ref('stg_orders') }}\n\n),\n\npayments as (\n\n select * from {{ ref('stg_payments') }}\n\n),\n\norder_payments as (\n\n select\n order_id,\n\n {% for payment_method in payment_methods -%}\n sum(case when payment_method = '{{ payment_method }}' then amount else 0 end) as {{ payment_method }}_amount,\n {% endfor -%}\n\n sum(amount) as total_amount\n\n from payments\n\n group by order_id\n\n),\n\nfinal as (\n\n select\n orders.order_id,\n orders.customer_id,\n orders.order_date,\n orders.status,\n\n {% for payment_method in payment_methods -%}\n\n order_payments.{{ payment_method }}_amount,\n\n {% endfor -%}\n\n order_payments.total_amount as amount\n\n from orders\n\n\n left join order_payments\n on orders.order_id = order_payments.order_id\n\n)\n\nselect * from final", + "raw_code": "{{ config(\n materialized='view',\n alias=var('orders_alias', 'orders')\n )\n}}\n\n{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}\n\nwith orders as (\n\n select * from {{ ref('stg_orders') }}\n\n),\n\npayments as (\n\n select * from {{ ref('stg_payments') }}\n\n),\n\norder_payments as (\n\n select\n order_id,\n\n {% for payment_method in payment_methods -%}\n sum(case when payment_method = '{{ payment_method }}' then amount else 0 end) as {{ payment_method }}_amount,\n {% endfor -%}\n\n sum(amount) as total_amount\n\n from payments\n\n group by order_id\n\n),\n\nfinal as (\n\n select\n orders.order_id,\n orders.customer_id,\n orders.order_date,\n orders.status,\n\n {% for payment_method in payment_methods -%}\n\n order_payments.{{ payment_method }}_amount,\n\n {% endfor -%}\n\n order_payments.total_amount as amount\n\n from orders\n\n\n left join order_payments\n on orders.order_id = order_payments.order_id\n\n)\n\nselect * from final", "refs": [ { "name": "stg_orders", @@ -13340,13 +13339,14 @@ "schema": "postgres", "sources": [], "tags": [], - "unique_id": "model.jaffle_shop.orders", + "unique_id": "model.altered_jaffle_shop.orders", "unrendered_config": { - "materialized": "table" + "alias": "orders", + "materialized": "view" }, "version": null }, - "model.jaffle_shop.stg_customers": { + "model.altered_jaffle_shop.stg_customers": { "access": "protected", "alias": "stg_customers", "build_path": null, @@ -13403,13 +13403,13 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.782482, + "created_at": 1734513348.013715, "database": "postgres", "depends_on": { "macros": [], "nodes": [ - "source.jaffle_shop.postgres_db.raw_customers", - "seed.jaffle_shop.raw_customers" + "source.altered_jaffle_shop.postgres_db.raw_customers", + "seed.altered_jaffle_shop.raw_customers" ] }, "deprecation_date": null, @@ -13419,7 +13419,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "stg_customers" ], @@ -13430,8 +13430,8 @@ "metrics": [], "name": "stg_customers", "original_file_path": "models/staging/stg_customers.sql", - "package_name": "jaffle_shop", - "patch_path": "jaffle_shop://models/staging/schema.yml", + "package_name": "altered_jaffle_shop", + "patch_path": "altered_jaffle_shop://models/staging/schema.yml", "path": "staging/stg_customers.sql", "raw_code": "with source as (\n\n {#-\n Normally we would select from the table here, but we are using seeds to load\n our data in this project\n #}\n select * from {{ source('postgres_db', 'raw_customers') }}\n\n),\n\nforce_seed_dep as (\n {#-\n This CTE is used to ensure tests wait for seeds to run if source_node_rendering = none\n #}\n select * from {{ ref('raw_customers') }}\n),\n\nrenamed as (\n\n select\n id as customer_id,\n first_name,\n last_name\n\n from source\n\n)\n\nselect * from renamed", "refs": [ @@ -13451,13 +13451,11 @@ ] ], "tags": [], - "unique_id": "model.jaffle_shop.stg_customers", - "unrendered_config": { - "materialized": "view" - }, + "unique_id": "model.altered_jaffle_shop.stg_customers", + "unrendered_config": {}, "version": null }, - "model.jaffle_shop.stg_orders": { + "model.altered_jaffle_shop.stg_orders": { "access": "protected", "alias": "stg_orders", "build_path": null, @@ -13523,13 +13521,13 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.783208, + "created_at": 1734513348.0150552, "database": "postgres", "depends_on": { "macros": [], "nodes": [ - "source.jaffle_shop.postgres_db.raw_orders", - "seed.jaffle_shop.raw_customers" + "source.altered_jaffle_shop.postgres_db.raw_orders", + "seed.altered_jaffle_shop.raw_customers" ] }, "deprecation_date": null, @@ -13539,7 +13537,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "stg_orders" ], @@ -13550,8 +13548,8 @@ "metrics": [], "name": "stg_orders", "original_file_path": "models/staging/stg_orders.sql", - "package_name": "jaffle_shop", - "patch_path": "jaffle_shop://models/staging/schema.yml", + "package_name": "altered_jaffle_shop", + "patch_path": "altered_jaffle_shop://models/staging/schema.yml", "path": "staging/stg_orders.sql", "raw_code": "with source as (\n\n {#-\n Normally we would select from the table here, but we are using seeds to load\n our data in this project\n #}\n select * from {{ source('postgres_db', 'raw_orders') }}\n\n),\n\nforce_seed_dep as (\n {#-\n This CTE is used to ensure tests wait for seeds to run if source_node_rendering = none\n #}\n select * from {{ ref('raw_customers') }}\n),\n\nrenamed as (\n\n select\n id as order_id,\n user_id as customer_id,\n order_date,\n status\n\n from source\n\n)\n\nselect * from renamed", "refs": [ @@ -13571,13 +13569,11 @@ ] ], "tags": [], - "unique_id": "model.jaffle_shop.stg_orders", - "unrendered_config": { - "materialized": "view" - }, + "unique_id": "model.altered_jaffle_shop.stg_orders", + "unrendered_config": {}, "version": null }, - "model.jaffle_shop.stg_payments": { + "model.altered_jaffle_shop.stg_payments": { "access": "protected", "alias": "stg_payments", "build_path": null, @@ -13643,13 +13639,13 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7845461, + "created_at": 1734513348.0143979, "database": "postgres", "depends_on": { "macros": [], "nodes": [ - "source.jaffle_shop.postgres_db.raw_payments", - "seed.jaffle_shop.raw_customers" + "source.altered_jaffle_shop.postgres_db.raw_payments", + "seed.altered_jaffle_shop.raw_customers" ] }, "deprecation_date": null, @@ -13659,7 +13655,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "stg_payments" ], @@ -13670,8 +13666,8 @@ "metrics": [], "name": "stg_payments", "original_file_path": "models/staging/stg_payments.sql", - "package_name": "jaffle_shop", - "patch_path": "jaffle_shop://models/staging/schema.yml", + "package_name": "altered_jaffle_shop", + "patch_path": "altered_jaffle_shop://models/staging/schema.yml", "path": "staging/stg_payments.sql", "raw_code": "with source as (\n\n select * from {{ source('postgres_db', 'raw_payments') }}\n\n),\n\nforce_seed_dep as (\n {#-\n This CTE is used to ensure tests wait for seeds to run if source_node_rendering = none\n #}\n select * from {{ ref('raw_customers') }}\n),\n\nrenamed as (\n\n select\n id as payment_id,\n order_id,\n payment_method,\n\n -- `amount` is currently stored in cents, so we convert it to dollars\n amount / 100 as amount\n\n from source\n\n)\n\nselect * from renamed", "refs": [ @@ -13691,13 +13687,11 @@ ] ], "tags": [], - "unique_id": "model.jaffle_shop.stg_payments", - "unrendered_config": { - "materialized": "view" - }, + "unique_id": "model.altered_jaffle_shop.stg_payments", + "unrendered_config": {}, "version": null }, - "model.jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": { + "model.altered_jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": { "access": "protected", "alias": "\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45", "build_path": null, @@ -13725,7 +13719,7 @@ "grants": {}, "group": null, "incremental_strategy": null, - "materialized": "table", + "materialized": "view", "meta": {}, "on_configuration_change": "apply", "on_schema_change": "ignore", @@ -13744,7 +13738,7 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.519385, + "created_at": 1734424534.7951841, "database": "postgres", "depends_on": { "macros": [], @@ -13757,7 +13751,7 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45" ], "group": null, @@ -13767,7 +13761,7 @@ "metrics": [], "name": "\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45", "original_file_path": "models/\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45.sql", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45.sql", "raw_code": "select\n '\uff34\uff25\uff33\uff34\uff3f\uff26\uff2f\uff32\uff3f\uff2d\uff35\uff2c\uff34\uff29\uff22\uff39\uff34\uff25\uff3f\uff23\uff28\uff21\uff32\uff23\uff34\uff25\uff32\uff33'", @@ -13777,13 +13771,11 @@ "schema": "postgres", "sources": [], "tags": [], - "unique_id": "model.jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45", - "unrendered_config": { - "materialized": "table" - }, + "unique_id": "model.altered_jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45", + "unrendered_config": {}, "version": null }, - "seed.jaffle_shop.raw_customers": { + "seed.altered_jaffle_shop.raw_customers": { "alias": "raw_customers", "build_path": null, "checksum": { @@ -13823,7 +13815,7 @@ "tags": [], "unique_key": null }, - "created_at": 1733768712.606124, + "created_at": 1734424534.8735209, "database": "postgres", "depends_on": { "macros": [] @@ -13834,26 +13826,26 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "raw_customers" ], "group": null, "meta": {}, "name": "raw_customers", "original_file_path": "seeds/raw_customers.csv", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "raw_customers.csv", "raw_code": "", "relation_name": "\"postgres\".\"postgres\".\"raw_customers\"", "resource_type": "seed", - "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/jaffle_shop", + "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/altered_jaffle_shop", "schema": "postgres", "tags": [], - "unique_id": "seed.jaffle_shop.raw_customers", + "unique_id": "seed.altered_jaffle_shop.raw_customers", "unrendered_config": {} }, - "seed.jaffle_shop.raw_orders": { + "seed.altered_jaffle_shop.raw_orders": { "alias": "raw_orders", "build_path": null, "checksum": { @@ -13893,7 +13885,7 @@ "tags": [], "unique_key": null }, - "created_at": 1733768712.607415, + "created_at": 1734424534.874892, "database": "postgres", "depends_on": { "macros": [] @@ -13904,26 +13896,26 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "raw_orders" ], "group": null, "meta": {}, "name": "raw_orders", "original_file_path": "seeds/raw_orders.csv", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "raw_orders.csv", "raw_code": "", "relation_name": "\"postgres\".\"postgres\".\"raw_orders\"", "resource_type": "seed", - "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/jaffle_shop", + "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/altered_jaffle_shop", "schema": "postgres", "tags": [], - "unique_id": "seed.jaffle_shop.raw_orders", + "unique_id": "seed.altered_jaffle_shop.raw_orders", "unrendered_config": {} }, - "seed.jaffle_shop.raw_payments": { + "seed.altered_jaffle_shop.raw_payments": { "alias": "raw_payments", "build_path": null, "checksum": { @@ -13963,7 +13955,7 @@ "tags": [], "unique_key": null }, - "created_at": 1733768712.608446, + "created_at": 1734424534.8759449, "database": "postgres", "depends_on": { "macros": [] @@ -13974,36 +13966,38 @@ "show": true }, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "raw_payments" ], "group": null, "meta": {}, "name": "raw_payments", "original_file_path": "seeds/raw_payments.csv", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "raw_payments.csv", "raw_code": "", "relation_name": "\"postgres\".\"postgres\".\"raw_payments\"", "resource_type": "seed", - "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/jaffle_shop", + "root_path": "/Users/pankaj/Documents/astro_code/astronomer-cosmos/dev/dags/dbt/altered_jaffle_shop", "schema": "postgres", "tags": [], - "unique_id": "seed.jaffle_shop.raw_payments", + "unique_id": "seed.altered_jaffle_shop.raw_payments", "unrendered_config": {} }, - "test.jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": { + "test.altered_jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": { "alias": "accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "status", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n status as value_field,\n count(*) as n_records\n\n from \"postgres\".\"postgres\".\"orders\"\n group by status\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'placed','shipped','completed','return_pending','returned'\n)\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758.sql", "config": { "alias": "accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758", "database": null, @@ -14027,15 +14021,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.761217, + "created_at": 1734519353.414859, "database": "postgres", "depends_on": { "macros": [ "macro.dbt.test_accepted_values", - "macro.dbt.get_where_subquery" + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14043,9 +14039,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "accepted_values_orders_status__placed__shipped__completed__return_pending__returned" ], "group": null, @@ -14054,7 +14052,7 @@ "metrics": [], "name": "accepted_values_orders_status__placed__shipped__completed__return_pending__returned", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758.sql", "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758\") }}", @@ -14085,22 +14083,24 @@ "name": "accepted_values", "namespace": null }, - "unique_id": "test.jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3", + "unique_id": "test.altered_jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3", "unrendered_config": { "alias": "accepted_values_orders_1ce6ab157c285f7cd2ac656013faf758" } }, - "test.jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": { + "test.altered_jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": { "alias": "accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58", - "attached_node": "model.jaffle_shop.stg_orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_orders", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "status", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n status as value_field,\n count(*) as n_records\n\n from \"postgres\".\"postgres\".\"stg_orders\"\n group by status\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'placed','shipped','completed','return_pending','returned'\n)\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58.sql", "config": { "alias": "accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58", "database": null, @@ -14124,15 +14124,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.794427, + "created_at": 1734513348.0674539, "database": "postgres", "depends_on": { "macros": [ "macro.dbt.test_accepted_values", - "macro.dbt.get_where_subquery" + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_orders" + "model.altered_jaffle_shop.stg_orders" ] }, "description": "", @@ -14140,9 +14142,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned" ], @@ -14152,7 +14156,7 @@ "metrics": [], "name": "accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58.sql", "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58\") }}", @@ -14183,22 +14187,24 @@ "name": "accepted_values", "namespace": null }, - "unique_id": "test.jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad", + "unique_id": "test.altered_jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad", "unrendered_config": { "alias": "accepted_values_stg_orders_4f514bf94b77b7ea437830eec4421c58" } }, - "test.jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": { + "test.altered_jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": { "alias": "accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef", - "attached_node": "model.jaffle_shop.stg_payments", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_payments", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "payment_method", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nwith all_values as (\n\n select\n payment_method as value_field,\n count(*) as n_records\n\n from \"postgres\".\"postgres\".\"stg_payments\"\n group by payment_method\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n 'credit_card','coupon','bank_transfer','gift_card'\n)\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef.sql", "config": { "alias": "accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef", "database": null, @@ -14222,15 +14228,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7980769, + "created_at": 1734513348.055308, "database": "postgres", "depends_on": { "macros": [ "macro.dbt.test_accepted_values", - "macro.dbt.get_where_subquery" + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.stg_payments" ] }, "description": "", @@ -14238,9 +14246,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_payments", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card" ], @@ -14250,7 +14260,7 @@ "metrics": [], "name": "accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef.sql", "raw_code": "{{ test_accepted_values(**_dbt_generic_test_kwargs) }}{{ config(alias=\"accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef\") }}", @@ -14280,22 +14290,24 @@ "name": "accepted_values", "namespace": null }, - "unique_id": "test.jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278", + "unique_id": "test.altered_jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278", "unrendered_config": { "alias": "accepted_values_stg_payments_c7909fb19b1f0177c2bf99c7912f06ef" } }, - "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d": { + "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d": { "alias": "not_null_customers_customer_id", - "attached_node": "model.jaffle_shop.customers", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.customers", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_customers_customer_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"postgres\".\"postgres\".\"customers\"\nwhere customer_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_customers_customer_id.sql", "config": { "alias": null, "database": null, @@ -14319,14 +14331,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7480042, + "created_at": 1734513348.0735419, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.customers" + "model.altered_jaffle_shop.customers" ] }, "description": "", @@ -14334,9 +14349,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.customers", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_customers_customer_id" ], "group": null, @@ -14345,7 +14362,7 @@ "metrics": [], "name": "not_null_customers_customer_id", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_customers_customer_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14369,20 +14386,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d", + "unique_id": "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_amount.106140f9fd": { + "test.altered_jaffle_shop.not_null_orders_amount.106140f9fd": { "alias": "not_null_orders_amount", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_amount.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "amount", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect amount\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere amount is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_amount.sql", "config": { "alias": null, "database": null, @@ -14406,14 +14425,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7657018, + "created_at": 1734519353.418941, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14421,9 +14443,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_amount" ], "group": null, @@ -14432,7 +14456,7 @@ "metrics": [], "name": "not_null_orders_amount", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_amount.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14456,20 +14480,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_amount.106140f9fd", + "unique_id": "test.altered_jaffle_shop.not_null_orders_amount.106140f9fd", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": { + "test.altered_jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": { "alias": "not_null_orders_bank_transfer_amount", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_bank_transfer_amount.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "bank_transfer_amount", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect bank_transfer_amount\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere bank_transfer_amount is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_bank_transfer_amount.sql", "config": { "alias": null, "database": null, @@ -14493,14 +14519,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.768752, + "created_at": 1734519353.420937, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14508,9 +14537,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_bank_transfer_amount" ], "group": null, @@ -14519,7 +14550,7 @@ "metrics": [], "name": "not_null_orders_bank_transfer_amount", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_bank_transfer_amount.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14543,20 +14574,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49", + "unique_id": "test.altered_jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_coupon_amount.ab90c90625": { + "test.altered_jaffle_shop.not_null_orders_coupon_amount.ab90c90625": { "alias": "not_null_orders_coupon_amount", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_coupon_amount.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "coupon_amount", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect coupon_amount\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere coupon_amount is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_coupon_amount.sql", "config": { "alias": null, "database": null, @@ -14580,14 +14613,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.767988, + "created_at": 1734519353.4202828, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14595,9 +14631,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_coupon_amount" ], "group": null, @@ -14606,7 +14644,7 @@ "metrics": [], "name": "not_null_orders_coupon_amount", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_coupon_amount.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14630,20 +14668,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_coupon_amount.ab90c90625", + "unique_id": "test.altered_jaffle_shop.not_null_orders_coupon_amount.ab90c90625", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": { + "test.altered_jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": { "alias": "not_null_orders_credit_card_amount", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_credit_card_amount.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "credit_card_amount", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect credit_card_amount\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere credit_card_amount is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_credit_card_amount.sql", "config": { "alias": null, "database": null, @@ -14667,14 +14707,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.767168, + "created_at": 1734519353.419604, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14682,9 +14725,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_credit_card_amount" ], "group": null, @@ -14693,7 +14738,7 @@ "metrics": [], "name": "not_null_orders_credit_card_amount", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_credit_card_amount.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14717,20 +14762,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59", + "unique_id": "test.altered_jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_customer_id.c5f02694af": { + "test.altered_jaffle_shop.not_null_orders_customer_id.c5f02694af": { "alias": "not_null_orders_customer_id", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_customer_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere customer_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_customer_id.sql", "config": { "alias": null, "database": null, @@ -14754,14 +14801,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7504, + "created_at": 1734519353.405317, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14769,9 +14819,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_customer_id" ], "group": null, @@ -14780,7 +14832,7 @@ "metrics": [], "name": "not_null_orders_customer_id", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_customer_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14804,20 +14856,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_customer_id.c5f02694af", + "unique_id": "test.altered_jaffle_shop.not_null_orders_customer_id.c5f02694af", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": { + "test.altered_jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": { "alias": "not_null_orders_gift_card_amount", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_gift_card_amount.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "gift_card_amount", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect gift_card_amount\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere gift_card_amount is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_gift_card_amount.sql", "config": { "alias": null, "database": null, @@ -14841,14 +14895,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.769496, + "created_at": 1734519353.4216309, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14856,9 +14913,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_gift_card_amount" ], "group": null, @@ -14867,7 +14926,7 @@ "metrics": [], "name": "not_null_orders_gift_card_amount", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_gift_card_amount.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14891,20 +14950,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a", + "unique_id": "test.altered_jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a", "unrendered_config": {} }, - "test.jaffle_shop.not_null_orders_order_id.cf6c17daed": { + "test.altered_jaffle_shop.not_null_orders_order_id.cf6c17daed": { "alias": "not_null_orders_order_id", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/not_null_orders_order_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "order_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect order_id\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere order_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/not_null_orders_order_id.sql", "config": { "alias": null, "database": null, @@ -14928,14 +14989,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.749543, + "created_at": 1734519353.404633, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -14943,9 +15007,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "not_null_orders_order_id" ], "group": null, @@ -14954,7 +15020,7 @@ "metrics": [], "name": "not_null_orders_order_id", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_orders_order_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -14978,20 +15044,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_orders_order_id.cf6c17daed", + "unique_id": "test.altered_jaffle_shop.not_null_orders_order_id.cf6c17daed", "unrendered_config": {} }, - "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": { + "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": { "alias": "not_null_stg_customers_customer_id", - "attached_node": "model.jaffle_shop.stg_customers", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_customers", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_customers_customer_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect customer_id\nfrom \"postgres\".\"postgres\".\"stg_customers\"\nwhere customer_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_customers_customer_id.sql", "config": { "alias": null, "database": null, @@ -15015,14 +15083,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7887979, + "created_at": 1734513348.053205, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_customers" + "model.altered_jaffle_shop.stg_customers" ] }, "description": "", @@ -15030,9 +15101,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_customers", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "not_null_stg_customers_customer_id" ], @@ -15042,7 +15115,7 @@ "metrics": [], "name": "not_null_stg_customers_customer_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_stg_customers_customer_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15066,20 +15139,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", + "unique_id": "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa", "unrendered_config": {} }, - "test.jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": { + "test.altered_jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": { "alias": "not_null_stg_orders_order_id", - "attached_node": "model.jaffle_shop.stg_orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_orders", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_orders_order_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "order_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect order_id\nfrom \"postgres\".\"postgres\".\"stg_orders\"\nwhere order_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_orders_order_id.sql", "config": { "alias": null, "database": null, @@ -15103,14 +15178,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.793638, + "created_at": 1734513348.066776, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_orders" + "model.altered_jaffle_shop.stg_orders" ] }, "description": "", @@ -15118,9 +15196,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "not_null_stg_orders_order_id" ], @@ -15130,7 +15210,7 @@ "metrics": [], "name": "not_null_stg_orders_order_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_stg_orders_order_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15154,20 +15234,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64", + "unique_id": "test.altered_jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64", "unrendered_config": {} }, - "test.jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": { + "test.altered_jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": { "alias": "not_null_stg_payments_payment_id", - "attached_node": "model.jaffle_shop.stg_payments", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_payments", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_payments_payment_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "payment_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect payment_id\nfrom \"postgres\".\"postgres\".\"stg_payments\"\nwhere payment_id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/not_null_stg_payments_payment_id.sql", "config": { "alias": null, "database": null, @@ -15191,14 +15273,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7973142, + "created_at": 1734513348.0546129, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.stg_payments" ] }, "description": "", @@ -15206,9 +15291,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_payments", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "not_null_stg_payments_payment_id" ], @@ -15218,7 +15305,7 @@ "metrics": [], "name": "not_null_stg_payments_payment_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "not_null_stg_payments_payment_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15242,20 +15329,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.not_null_stg_payments_payment_id.c19cc50075", + "unique_id": "test.altered_jaffle_shop.not_null_stg_payments_payment_id.c19cc50075", "unrendered_config": {} }, - "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": { + "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": { "alias": "relationships_orders_customer_id__customer_id__ref_customers_", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/relationships_orders_customer_id__customer_id__ref_customers_.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nwith child as (\n select customer_id as from_field\n from \"postgres\".\"postgres\".\"orders\"\n where customer_id is not null\n),\n\nparent as (\n select customer_id as to_field\n from \"postgres\".\"postgres\".\"customers\"\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/relationships_orders_customer_id__customer_id__ref_customers_.sql", "config": { "alias": null, "database": null, @@ -15279,16 +15368,18 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.751168, + "created_at": 1734519353.40599, "database": "postgres", "depends_on": { "macros": [ "macro.dbt.test_relationships", - "macro.dbt.get_where_subquery" + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.customers", - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.customers", + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -15296,9 +15387,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "relationships_orders_customer_id__customer_id__ref_customers_" ], "group": null, @@ -15307,7 +15400,7 @@ "metrics": [], "name": "relationships_orders_customer_id__customer_id__ref_customers_", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "relationships_orders_customer_id__customer_id__ref_customers_.sql", "raw_code": "{{ test_relationships(**_dbt_generic_test_kwargs) }}", @@ -15338,20 +15431,22 @@ "name": "relationships", "namespace": null }, - "unique_id": "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", + "unique_id": "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2", "unrendered_config": {} }, - "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": { + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": { "alias": "source_not_null_postgres_db_raw_customers_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_customers_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect id\nfrom \"postgres\".\"postgres\".\"raw_customers\"\nwhere id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_customers_id.sql", "config": { "alias": null, "database": null, @@ -15375,14 +15470,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.850983, + "created_at": 1734513348.137741, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_customers" + "source.altered_jaffle_shop.postgres_db.raw_customers" ] }, "description": "", @@ -15390,9 +15488,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_not_null_postgres_db_raw_customers_id" ], @@ -15402,7 +15502,7 @@ "metrics": [], "name": "source_not_null_postgres_db_raw_customers_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_not_null_postgres_db_raw_customers_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15425,20 +15525,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", + "unique_id": "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76", "unrendered_config": {} }, - "test.jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": { + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": { "alias": "source_not_null_postgres_db_raw_orders_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_orders_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect id\nfrom \"postgres\".\"postgres\".\"raw_orders\"\nwhere id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_orders_id.sql", "config": { "alias": null, "database": null, @@ -15462,14 +15564,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.857149, + "created_at": 1734513348.143314, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_orders" + "source.altered_jaffle_shop.postgres_db.raw_orders" ] }, "description": "", @@ -15477,9 +15582,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_not_null_postgres_db_raw_orders_id" ], @@ -15489,7 +15596,7 @@ "metrics": [], "name": "source_not_null_postgres_db_raw_orders_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_not_null_postgres_db_raw_orders_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15512,20 +15619,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454", + "unique_id": "test.altered_jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454", "unrendered_config": {} }, - "test.jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": { + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": { "alias": "source_not_null_postgres_db_raw_payments_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_payments_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\n\n\nselect id\nfrom \"postgres\".\"postgres\".\"raw_payments\"\nwhere id is null\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_not_null_postgres_db_raw_payments_id.sql", "config": { "alias": null, "database": null, @@ -15549,14 +15658,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.85549, + "created_at": 1734513348.141679, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_not_null" + "macro.dbt.test_not_null", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_payments" + "source.altered_jaffle_shop.postgres_db.raw_payments" ] }, "description": "", @@ -15564,9 +15676,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_not_null_postgres_db_raw_payments_id" ], @@ -15576,7 +15690,7 @@ "metrics": [], "name": "source_not_null_postgres_db_raw_payments_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_not_null_postgres_db_raw_payments_id.sql", "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", @@ -15599,20 +15713,22 @@ "name": "not_null", "namespace": null }, - "unique_id": "test.jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7", + "unique_id": "test.altered_jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7", "unrendered_config": {} }, - "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": { + "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": { "alias": "source_unique_postgres_db_raw_customers_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_customers_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"raw_customers\"\nwhere id is not null\ngroup by id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_customers_id.sql", "config": { "alias": null, "database": null, @@ -15636,14 +15752,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.849803, + "created_at": 1734513348.136928, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_customers" + "source.altered_jaffle_shop.postgres_db.raw_customers" ] }, "description": "", @@ -15651,9 +15770,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_unique_postgres_db_raw_customers_id" ], @@ -15663,7 +15784,7 @@ "metrics": [], "name": "source_unique_postgres_db_raw_customers_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_unique_postgres_db_raw_customers_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -15686,20 +15807,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707", + "unique_id": "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707", "unrendered_config": {} }, - "test.jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": { + "test.altered_jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": { "alias": "source_unique_postgres_db_raw_orders_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_orders_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"raw_orders\"\nwhere id is not null\ngroup by id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_orders_id.sql", "config": { "alias": null, "database": null, @@ -15723,14 +15846,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.856386, + "created_at": 1734513348.1425211, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_orders" + "source.altered_jaffle_shop.postgres_db.raw_orders" ] }, "description": "", @@ -15738,9 +15864,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_unique_postgres_db_raw_orders_id" ], @@ -15750,7 +15878,7 @@ "metrics": [], "name": "source_unique_postgres_db_raw_orders_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_unique_postgres_db_raw_orders_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -15773,20 +15901,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247", + "unique_id": "test.altered_jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247", "unrendered_config": {} }, - "test.jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": { + "test.altered_jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": { "alias": "source_unique_postgres_db_raw_payments_id", "attached_node": null, - "build_path": null, + "build_path": "target/run/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_payments_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"raw_payments\"\nwhere id is not null\ngroup by id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/sources.yml/source_unique_postgres_db_raw_payments_id.sql", "config": { "alias": null, "database": null, @@ -15810,14 +15940,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.8545659, + "created_at": 1734513348.1408892, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "source.jaffle_shop.postgres_db.raw_payments" + "source.altered_jaffle_shop.postgres_db.raw_payments" ] }, "description": "", @@ -15825,9 +15958,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "sources.postgres_db", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "source_unique_postgres_db_raw_payments_id" ], @@ -15837,7 +15972,7 @@ "metrics": [], "name": "source_unique_postgres_db_raw_payments_id", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "source_unique_postgres_db_raw_payments_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -15860,20 +15995,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f", + "unique_id": "test.altered_jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f", "unrendered_config": {} }, - "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1": { + "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1": { "alias": "unique_customers_customer_id", - "attached_node": "model.jaffle_shop.customers", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.customers", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/unique_customers_customer_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/unique_customers_customer_id.sql", "config": { "alias": null, "database": null, @@ -15897,14 +16034,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.747018, + "created_at": 1734513348.072775, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.customers" + "model.altered_jaffle_shop.customers" ] }, "description": "", @@ -15912,9 +16052,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.customers", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "unique_customers_customer_id" ], "group": null, @@ -15923,7 +16065,7 @@ "metrics": [], "name": "unique_customers_customer_id", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "unique_customers_customer_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -15947,20 +16089,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1", + "unique_id": "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1", "unrendered_config": {} }, - "test.jaffle_shop.unique_orders_order_id.fed79b3a6e": { + "test.altered_jaffle_shop.unique_orders_order_id.fed79b3a6e": { "alias": "unique_orders_order_id", - "attached_node": "model.jaffle_shop.orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.orders", + "build_path": "target/run/altered_jaffle_shop/models/schema.yml/unique_orders_order_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "order_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n order_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"orders\"\nwhere order_id is not null\ngroup by order_id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/schema.yml/unique_orders_order_id.sql", "config": { "alias": null, "database": null, @@ -15984,14 +16128,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.7487848, + "created_at": 1734519353.403817, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.orders" ] }, "description": "", @@ -15999,9 +16146,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "unique_orders_order_id" ], "group": null, @@ -16010,7 +16159,7 @@ "metrics": [], "name": "unique_orders_order_id", "original_file_path": "models/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "unique_orders_order_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -16034,20 +16183,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.unique_orders_order_id.fed79b3a6e", + "unique_id": "test.altered_jaffle_shop.unique_orders_order_id.fed79b3a6e", "unrendered_config": {} }, - "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada": { + "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada": { "alias": "unique_stg_customers_customer_id", - "attached_node": "model.jaffle_shop.stg_customers", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_customers", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/unique_stg_customers_customer_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "customer_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n customer_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"stg_customers\"\nwhere customer_id is not null\ngroup by customer_id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/unique_stg_customers_customer_id.sql", "config": { "alias": null, "database": null, @@ -16071,14 +16222,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.785654, + "created_at": 1734513348.0522509, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_customers" + "model.altered_jaffle_shop.stg_customers" ] }, "description": "", @@ -16086,9 +16240,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_customers", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "unique_stg_customers_customer_id" ], @@ -16098,7 +16254,7 @@ "metrics": [], "name": "unique_stg_customers_customer_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "unique_stg_customers_customer_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -16122,20 +16278,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada", + "unique_id": "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada", "unrendered_config": {} }, - "test.jaffle_shop.unique_stg_orders_order_id.e3b841c71a": { + "test.altered_jaffle_shop.unique_stg_orders_order_id.e3b841c71a": { "alias": "unique_stg_orders_order_id", - "attached_node": "model.jaffle_shop.stg_orders", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_orders", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/unique_stg_orders_order_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "order_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n order_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"stg_orders\"\nwhere order_id is not null\ngroup by order_id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/unique_stg_orders_order_id.sql", "config": { "alias": null, "database": null, @@ -16159,14 +16317,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.791896, + "created_at": 1734513348.066091, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_orders" + "model.altered_jaffle_shop.stg_orders" ] }, "description": "", @@ -16174,9 +16335,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_orders", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "unique_stg_orders_order_id" ], @@ -16186,7 +16349,7 @@ "metrics": [], "name": "unique_stg_orders_order_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "unique_stg_orders_order_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -16210,20 +16373,22 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.unique_stg_orders_order_id.e3b841c71a", + "unique_id": "test.altered_jaffle_shop.unique_stg_orders_order_id.e3b841c71a", "unrendered_config": {} }, - "test.jaffle_shop.unique_stg_payments_payment_id.3744510712": { + "test.altered_jaffle_shop.unique_stg_payments_payment_id.3744510712": { "alias": "unique_stg_payments_payment_id", - "attached_node": "model.jaffle_shop.stg_payments", - "build_path": null, + "attached_node": "model.altered_jaffle_shop.stg_payments", + "build_path": "target/run/altered_jaffle_shop/models/staging/schema.yml/unique_stg_payments_payment_id.sql", "checksum": { "checksum": "", "name": "none" }, "column_name": "payment_id", "columns": {}, - "compiled_path": null, + "compiled": true, + "compiled_code": "\n \n \n\nselect\n payment_id as unique_field,\n count(*) as n_records\n\nfrom \"postgres\".\"postgres\".\"stg_payments\"\nwhere payment_id is not null\ngroup by payment_id\nhaving count(*) > 1\n\n\n", + "compiled_path": "target/compiled/altered_jaffle_shop/models/staging/schema.yml/unique_stg_payments_payment_id.sql", "config": { "alias": null, "database": null, @@ -16247,14 +16412,17 @@ "checksum": null, "enforced": false }, - "created_at": 1733768712.796554, + "created_at": 1734513348.053945, "database": "postgres", "depends_on": { "macros": [ - "macro.dbt.test_unique" + "macro.dbt.test_unique", + "macro.dbt.get_where_subquery", + "macro.dbt.should_store_failures", + "macro.dbt.statement" ], "nodes": [ - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.stg_payments" ] }, "description": "", @@ -16262,9 +16430,11 @@ "node_color": null, "show": true }, + "extra_ctes": [], + "extra_ctes_injected": true, "file_key_name": "models.stg_payments", "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "unique_stg_payments_payment_id" ], @@ -16274,7 +16444,7 @@ "metrics": [], "name": "unique_stg_payments_payment_id", "original_file_path": "models/staging/schema.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "unique_stg_payments_payment_id.sql", "raw_code": "{{ test_unique(**_dbt_generic_test_kwargs) }}", @@ -16298,127 +16468,127 @@ "name": "unique", "namespace": null }, - "unique_id": "test.jaffle_shop.unique_stg_payments_payment_id.3744510712", + "unique_id": "test.altered_jaffle_shop.unique_stg_payments_payment_id.3744510712", "unrendered_config": {} } }, "parent_map": { - "exposure.jaffle_shop.weekly_metrics": [ - "model.jaffle_shop.customers" + "exposure.altered_jaffle_shop.weekly_metrics": [ + "model.altered_jaffle_shop.customers" ], - "model.jaffle_shop.customers": [ - "model.jaffle_shop.stg_customers", - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.customers": [ + "model.altered_jaffle_shop.stg_customers", + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments" ], - "model.jaffle_shop.orders": [ - "model.jaffle_shop.stg_orders", - "model.jaffle_shop.stg_payments" + "model.altered_jaffle_shop.orders": [ + "model.altered_jaffle_shop.stg_orders", + "model.altered_jaffle_shop.stg_payments" ], - "model.jaffle_shop.stg_customers": [ - "seed.jaffle_shop.raw_customers", - "source.jaffle_shop.postgres_db.raw_customers" + "model.altered_jaffle_shop.stg_customers": [ + "seed.altered_jaffle_shop.raw_customers", + "source.altered_jaffle_shop.postgres_db.raw_customers" ], - "model.jaffle_shop.stg_orders": [ - "seed.jaffle_shop.raw_customers", - "source.jaffle_shop.postgres_db.raw_orders" + "model.altered_jaffle_shop.stg_orders": [ + "seed.altered_jaffle_shop.raw_customers", + "source.altered_jaffle_shop.postgres_db.raw_orders" ], - "model.jaffle_shop.stg_payments": [ - "seed.jaffle_shop.raw_customers", - "source.jaffle_shop.postgres_db.raw_payments" + "model.altered_jaffle_shop.stg_payments": [ + "seed.altered_jaffle_shop.raw_customers", + "source.altered_jaffle_shop.postgres_db.raw_payments" ], - "model.jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": [], - "seed.jaffle_shop.raw_customers": [], - "seed.jaffle_shop.raw_orders": [], - "seed.jaffle_shop.raw_payments": [], - "source.jaffle_shop.postgres_db.raw_customers": [], - "source.jaffle_shop.postgres_db.raw_orders": [], - "source.jaffle_shop.postgres_db.raw_payments": [], - "test.jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": [ - "model.jaffle_shop.orders" + "model.altered_jaffle_shop.\uff4d\uff55\uff4c\uff54\uff49\uff42\uff59\uff54\uff45": [], + "seed.altered_jaffle_shop.raw_customers": [], + "seed.altered_jaffle_shop.raw_orders": [], + "seed.altered_jaffle_shop.raw_payments": [], + "source.altered_jaffle_shop.postgres_db.raw_customers": [], + "source.altered_jaffle_shop.postgres_db.raw_orders": [], + "source.altered_jaffle_shop.postgres_db.raw_payments": [], + "test.altered_jaffle_shop.accepted_values_orders_status__placed__shipped__completed__return_pending__returned.be6b5b5ec3": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": [ - "model.jaffle_shop.stg_orders" + "test.altered_jaffle_shop.accepted_values_stg_orders_status__placed__shipped__completed__return_pending__returned.080fb20aad": [ + "model.altered_jaffle_shop.stg_orders" ], - "test.jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": [ - "model.jaffle_shop.stg_payments" + "test.altered_jaffle_shop.accepted_values_stg_payments_payment_method__credit_card__coupon__bank_transfer__gift_card.3c3820f278": [ + "model.altered_jaffle_shop.stg_payments" ], - "test.jaffle_shop.not_null_customers_customer_id.5c9bf9911d": [ - "model.jaffle_shop.customers" + "test.altered_jaffle_shop.not_null_customers_customer_id.5c9bf9911d": [ + "model.altered_jaffle_shop.customers" ], - "test.jaffle_shop.not_null_orders_amount.106140f9fd": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_amount.106140f9fd": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_bank_transfer_amount.7743500c49": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_coupon_amount.ab90c90625": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_coupon_amount.ab90c90625": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_credit_card_amount.d3ca593b59": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_customer_id.c5f02694af": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_customer_id.c5f02694af": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_gift_card_amount.413a0d2d7a": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_orders_order_id.cf6c17daed": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.not_null_orders_order_id.cf6c17daed": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": [ - "model.jaffle_shop.stg_customers" + "test.altered_jaffle_shop.not_null_stg_customers_customer_id.e2cfb1f9aa": [ + "model.altered_jaffle_shop.stg_customers" ], - "test.jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": [ - "model.jaffle_shop.stg_orders" + "test.altered_jaffle_shop.not_null_stg_orders_order_id.81cfe2fe64": [ + "model.altered_jaffle_shop.stg_orders" ], - "test.jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": [ - "model.jaffle_shop.stg_payments" + "test.altered_jaffle_shop.not_null_stg_payments_payment_id.c19cc50075": [ + "model.altered_jaffle_shop.stg_payments" ], - "test.jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": [ - "model.jaffle_shop.customers", - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.relationships_orders_customer_id__customer_id__ref_customers_.c6ec7f58f2": [ + "model.altered_jaffle_shop.customers", + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": [ - "source.jaffle_shop.postgres_db.raw_customers" + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_customers_id.de3e9fff76": [ + "source.altered_jaffle_shop.postgres_db.raw_customers" ], - "test.jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": [ - "source.jaffle_shop.postgres_db.raw_orders" + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_orders_id.0dc5a4d454": [ + "source.altered_jaffle_shop.postgres_db.raw_orders" ], - "test.jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": [ - "source.jaffle_shop.postgres_db.raw_payments" + "test.altered_jaffle_shop.source_not_null_postgres_db_raw_payments_id.15f4f169e7": [ + "source.altered_jaffle_shop.postgres_db.raw_payments" ], - "test.jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": [ - "source.jaffle_shop.postgres_db.raw_customers" + "test.altered_jaffle_shop.source_unique_postgres_db_raw_customers_id.6e5ad1d707": [ + "source.altered_jaffle_shop.postgres_db.raw_customers" ], - "test.jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": [ - "source.jaffle_shop.postgres_db.raw_orders" + "test.altered_jaffle_shop.source_unique_postgres_db_raw_orders_id.0bf2272247": [ + "source.altered_jaffle_shop.postgres_db.raw_orders" ], - "test.jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": [ - "source.jaffle_shop.postgres_db.raw_payments" + "test.altered_jaffle_shop.source_unique_postgres_db_raw_payments_id.a4bd02775f": [ + "source.altered_jaffle_shop.postgres_db.raw_payments" ], - "test.jaffle_shop.unique_customers_customer_id.c5af1ff4b1": [ - "model.jaffle_shop.customers" + "test.altered_jaffle_shop.unique_customers_customer_id.c5af1ff4b1": [ + "model.altered_jaffle_shop.customers" ], - "test.jaffle_shop.unique_orders_order_id.fed79b3a6e": [ - "model.jaffle_shop.orders" + "test.altered_jaffle_shop.unique_orders_order_id.fed79b3a6e": [ + "model.altered_jaffle_shop.orders" ], - "test.jaffle_shop.unique_stg_customers_customer_id.c7614daada": [ - "model.jaffle_shop.stg_customers" + "test.altered_jaffle_shop.unique_stg_customers_customer_id.c7614daada": [ + "model.altered_jaffle_shop.stg_customers" ], - "test.jaffle_shop.unique_stg_orders_order_id.e3b841c71a": [ - "model.jaffle_shop.stg_orders" + "test.altered_jaffle_shop.unique_stg_orders_order_id.e3b841c71a": [ + "model.altered_jaffle_shop.stg_orders" ], - "test.jaffle_shop.unique_stg_payments_payment_id.3744510712": [ - "model.jaffle_shop.stg_payments" + "test.altered_jaffle_shop.unique_stg_payments_payment_id.3744510712": [ + "model.altered_jaffle_shop.stg_payments" ] }, "saved_queries": {}, "selectors": {}, "semantic_models": {}, "sources": { - "source.jaffle_shop.postgres_db.raw_customers": { + "source.altered_jaffle_shop.postgres_db.raw_customers": { "columns": { "id": { "constraints": [], @@ -16433,12 +16603,12 @@ "config": { "enabled": true }, - "created_at": 1733768712.8533492, + "created_at": 1734513348.1398149, "database": "postgres", "description": "", "external": null, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "postgres_db", "raw_customers" @@ -16460,7 +16630,7 @@ "meta": {}, "name": "raw_customers", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "models/staging/sources.yml", "quoting": { @@ -16476,10 +16646,10 @@ "source_meta": {}, "source_name": "postgres_db", "tags": [], - "unique_id": "source.jaffle_shop.postgres_db.raw_customers", + "unique_id": "source.altered_jaffle_shop.postgres_db.raw_customers", "unrendered_config": {} }, - "source.jaffle_shop.postgres_db.raw_orders": { + "source.altered_jaffle_shop.postgres_db.raw_orders": { "columns": { "id": { "constraints": [], @@ -16494,25 +16664,25 @@ "config": { "enabled": true }, - "created_at": 1733768712.8575401, + "created_at": 1734513348.14368, "database": "postgres", "description": "", "external": null, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "postgres_db", "raw_orders" ], "freshness": { "error_after": { - "count": null, - "period": null + "count": 1, + "period": "day" }, "filter": null, "warn_after": { - "count": 3650, - "period": "day" + "count": null, + "period": null } }, "identifier": "raw_orders", @@ -16521,7 +16691,7 @@ "meta": {}, "name": "raw_orders", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "models/staging/sources.yml", "quoting": { @@ -16537,10 +16707,10 @@ "source_meta": {}, "source_name": "postgres_db", "tags": [], - "unique_id": "source.jaffle_shop.postgres_db.raw_orders", + "unique_id": "source.altered_jaffle_shop.postgres_db.raw_orders", "unrendered_config": {} }, - "source.jaffle_shop.postgres_db.raw_payments": { + "source.altered_jaffle_shop.postgres_db.raw_payments": { "columns": { "id": { "constraints": [], @@ -16555,12 +16725,12 @@ "config": { "enabled": true }, - "created_at": 1733768712.855905, + "created_at": 1734513348.1420958, "database": "postgres", "description": "", "external": null, "fqn": [ - "jaffle_shop", + "altered_jaffle_shop", "staging", "postgres_db", "raw_payments" @@ -16582,7 +16752,7 @@ "meta": {}, "name": "raw_payments", "original_file_path": "models/staging/sources.yml", - "package_name": "jaffle_shop", + "package_name": "altered_jaffle_shop", "patch_path": null, "path": "models/staging/sources.yml", "quoting": { @@ -16598,7 +16768,7 @@ "source_meta": {}, "source_name": "postgres_db", "tags": [], - "unique_id": "source.jaffle_shop.postgres_db.raw_payments", + "unique_id": "source.altered_jaffle_shop.postgres_db.raw_payments", "unrendered_config": {} } }, From a4f50de9a9366d5a3e3bdf480bddc648121ab910 Mon Sep 17 00:00:00 2001 From: Pankaj Singh <98807258+pankajastro@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:13:21 +0530 Subject: [PATCH 02/10] Unpin dbt-databricks version (#1409) closes: https://github.com/astronomer/astronomer-cosmos/issues/1379 A new version of dbt-databricks (v1.9.1) has been released, [release notes](https://github.com/databricks/dbt-databricks/releases/tag/v1.9.1). It is expected that PR: https://github.com/databricks/dbt-databricks/pull/874 will resolve the existing dependency issue. --- pyproject.toml | 6 ++++-- scripts/test/integration-setup.sh | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6beb3db3e..cad6c3896 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,8 +44,10 @@ dbt-all = [ "dbt-athena", "dbt-bigquery", "dbt-clickhouse", - # TODO: https://github.com/astronomer/astronomer-cosmos/issues/1379 - "dbt-databricks<1.9", + # The dbt-databricks:1.9.0 version causes a dependency conflict with + # the Pydantic version required by Airflow (version > 2.7) + # See: https://github.com/astronomer/astronomer-cosmos/issues/1379 + "dbt-databricks!=1.9.0", "dbt-exasol", "dbt-postgres", "dbt-redshift", diff --git a/scripts/test/integration-setup.sh b/scripts/test/integration-setup.sh index 2bf0e563d..5c2ab3af8 100644 --- a/scripts/test/integration-setup.sh +++ b/scripts/test/integration-setup.sh @@ -11,4 +11,4 @@ rm -rf airflow.* pip freeze | grep airflow airflow db reset -y airflow db init -pip install 'dbt-databricks<1.9' 'dbt-bigquery' 'dbt-postgres' 'dbt-vertica' 'openlineage-airflow' +pip install 'dbt-databricks!=1.9.0' 'dbt-bigquery' 'dbt-postgres' 'dbt-vertica' 'openlineage-airflow' From 22b20f1557d97d9076c9bdcad8b0f9c9f7b0a4df Mon Sep 17 00:00:00 2001 From: Tatiana Al-Chueyr Date: Thu, 19 Dec 2024 09:29:51 +0000 Subject: [PATCH 03/10] Fix Snowflake Profile mapping when using AWS default region (#1406) When using a Cosmos Snowflake Profile mapping using a Snowflake account set in the AWS default region, Cosmos would fail if the default region was specified in the Airflow connection. The dbt docs state: > For AWS accounts in the US West default region, you can use abc123 (without any other segments). For some AWS accounts you will have to append the region and/or cloud platform. For example, abc123.eu-west-1 or abc123.eu-west-2.aws. https://docs.getdbt.com/docs/core/connect-data-platform/snowflake-setup#account Although it seems that defining the default region would be optional, a Cosmos user reported facing 404 and seeing a dbt error message when attempting to use `SnowflakeUserPasswordProfileMapping` with an Airflow Snowflake connection that defined the region `us-west-2`. ![snowflake-404](https://github.com/user-attachments/assets/c1884fff-1cad-4c57-b2f3-11a4f44b085b) We solved the issue by removing the region `us-west-2` from the connection. Since this restriction only applies to AWS and this Snowflake region only exists to AWS, this change seems safe: ![Screenshot 2024-12-18 at 18 45 31](https://github.com/user-attachments/assets/ff2f8a0b-578b-4a62-9fc3-258a43148775) --- cosmos/profiles/snowflake/base.py | 28 +++++++++++++++++++ .../user_encrypted_privatekey_env_variable.py | 23 ++++----------- .../user_encrypted_privatekey_file.py | 22 +++------------ cosmos/profiles/snowflake/user_pass.py | 23 ++++----------- cosmos/profiles/snowflake/user_privatekey.py | 23 ++++----------- .../profiles/snowflake/test_snowflake_base.py | 19 +++++++++++++ 6 files changed, 66 insertions(+), 72 deletions(-) create mode 100644 cosmos/profiles/snowflake/base.py create mode 100644 tests/profiles/snowflake/test_snowflake_base.py diff --git a/cosmos/profiles/snowflake/base.py b/cosmos/profiles/snowflake/base.py new file mode 100644 index 000000000..599a9c8e5 --- /dev/null +++ b/cosmos/profiles/snowflake/base.py @@ -0,0 +1,28 @@ +from __future__ import annotations + +from typing import Any + +from cosmos.profiles.base import BaseProfileMapping + +DEFAULT_AWS_REGION = "us-west-2" + + +class SnowflakeBaseProfileMapping(BaseProfileMapping): + + @property + def profile(self) -> dict[str, Any | None]: + """Gets profile.""" + profile_vars = { + **self.mapped_params, + **self.profile_args, + } + return profile_vars + + def transform_account(self, account: str) -> str: + """Transform the account to the format . if it's not already.""" + region = self.conn.extra_dejson.get("region") + # + if region and region != DEFAULT_AWS_REGION and region not in account: + account = f"{account}.{region}" + + return str(account) diff --git a/cosmos/profiles/snowflake/user_encrypted_privatekey_env_variable.py b/cosmos/profiles/snowflake/user_encrypted_privatekey_env_variable.py index 70722dd59..63a6c68d3 100644 --- a/cosmos/profiles/snowflake/user_encrypted_privatekey_env_variable.py +++ b/cosmos/profiles/snowflake/user_encrypted_privatekey_env_variable.py @@ -5,13 +5,13 @@ import json from typing import TYPE_CHECKING, Any -from ..base import BaseProfileMapping +from cosmos.profiles.snowflake.base import SnowflakeBaseProfileMapping if TYPE_CHECKING: from airflow.models import Connection -class SnowflakeEncryptedPrivateKeyPemProfileMapping(BaseProfileMapping): +class SnowflakeEncryptedPrivateKeyPemProfileMapping(SnowflakeBaseProfileMapping): """ Maps Airflow Snowflake connections to dbt profiles if they use a user/private key. https://docs.getdbt.com/docs/core/connect-data-platform/snowflake-setup#key-pair-authentication @@ -75,20 +75,7 @@ def conn(self) -> Connection: @property def profile(self) -> dict[str, Any | None]: """Gets profile.""" - profile_vars = { - **self.mapped_params, - **self.profile_args, - "private_key": self.get_env_var_format("private_key"), - "private_key_passphrase": self.get_env_var_format("private_key_passphrase"), - } - - # remove any null values + profile_vars = super().profile + profile_vars["private_key"] = self.get_env_var_format("private_key") + profile_vars["private_key_passphrase"] = self.get_env_var_format("private_key_passphrase") return self.filter_null(profile_vars) - - def transform_account(self, account: str) -> str: - """Transform the account to the format . if it's not already.""" - region = self.conn.extra_dejson.get("region") - if region and region not in account: - account = f"{account}.{region}" - - return str(account) diff --git a/cosmos/profiles/snowflake/user_encrypted_privatekey_file.py b/cosmos/profiles/snowflake/user_encrypted_privatekey_file.py index e217a6c22..6f35dad45 100644 --- a/cosmos/profiles/snowflake/user_encrypted_privatekey_file.py +++ b/cosmos/profiles/snowflake/user_encrypted_privatekey_file.py @@ -5,13 +5,13 @@ import json from typing import TYPE_CHECKING, Any -from ..base import BaseProfileMapping +from cosmos.profiles.snowflake.base import SnowflakeBaseProfileMapping if TYPE_CHECKING: from airflow.models import Connection -class SnowflakeEncryptedPrivateKeyFilePemProfileMapping(BaseProfileMapping): +class SnowflakeEncryptedPrivateKeyFilePemProfileMapping(SnowflakeBaseProfileMapping): """ Maps Airflow Snowflake connections to dbt profiles if they use a user/private key path. https://docs.getdbt.com/docs/core/connect-data-platform/snowflake-setup#key-pair-authentication @@ -74,20 +74,6 @@ def conn(self) -> Connection: @property def profile(self) -> dict[str, Any | None]: """Gets profile.""" - profile_vars = { - **self.mapped_params, - **self.profile_args, - # private_key_passphrase should always get set as env var - "private_key_passphrase": self.get_env_var_format("private_key_passphrase"), - } - - # remove any null values + profile_vars = super().profile + profile_vars["private_key_passphrase"] = self.get_env_var_format("private_key_passphrase") return self.filter_null(profile_vars) - - def transform_account(self, account: str) -> str: - """Transform the account to the format . if it's not already.""" - region = self.conn.extra_dejson.get("region") - if region and region not in account: - account = f"{account}.{region}" - - return str(account) diff --git a/cosmos/profiles/snowflake/user_pass.py b/cosmos/profiles/snowflake/user_pass.py index 3fc6595c9..93c29793b 100644 --- a/cosmos/profiles/snowflake/user_pass.py +++ b/cosmos/profiles/snowflake/user_pass.py @@ -5,13 +5,13 @@ import json from typing import TYPE_CHECKING, Any -from ..base import BaseProfileMapping +from cosmos.profiles.snowflake.base import SnowflakeBaseProfileMapping if TYPE_CHECKING: from airflow.models import Connection -class SnowflakeUserPasswordProfileMapping(BaseProfileMapping): +class SnowflakeUserPasswordProfileMapping(SnowflakeBaseProfileMapping): """ Maps Airflow Snowflake connections to dbt profiles if they use a user/password. https://docs.getdbt.com/reference/warehouse-setups/snowflake-setup @@ -76,20 +76,7 @@ def conn(self) -> Connection: @property def profile(self) -> dict[str, Any | None]: """Gets profile.""" - profile_vars = { - **self.mapped_params, - **self.profile_args, - # password should always get set as env var - "password": self.get_env_var_format("password"), - } - - # remove any null values + profile_vars = super().profile + # password should always get set as env var + profile_vars["password"] = self.get_env_var_format("password") return self.filter_null(profile_vars) - - def transform_account(self, account: str) -> str: - """Transform the account to the format . if it's not already.""" - region = self.conn.extra_dejson.get("region") - if region and region not in account: - account = f"{account}.{region}" - - return str(account) diff --git a/cosmos/profiles/snowflake/user_privatekey.py b/cosmos/profiles/snowflake/user_privatekey.py index c74194b7a..40a016af7 100644 --- a/cosmos/profiles/snowflake/user_privatekey.py +++ b/cosmos/profiles/snowflake/user_privatekey.py @@ -5,13 +5,13 @@ import json from typing import TYPE_CHECKING, Any -from ..base import BaseProfileMapping +from cosmos.profiles.snowflake.base import SnowflakeBaseProfileMapping if TYPE_CHECKING: from airflow.models import Connection -class SnowflakePrivateKeyPemProfileMapping(BaseProfileMapping): +class SnowflakePrivateKeyPemProfileMapping(SnowflakeBaseProfileMapping): """ Maps Airflow Snowflake connections to dbt profiles if they use a user/private key. https://docs.getdbt.com/docs/core/connect-data-platform/snowflake-setup#key-pair-authentication @@ -65,20 +65,7 @@ def conn(self) -> Connection: @property def profile(self) -> dict[str, Any | None]: """Gets profile.""" - profile_vars = { - **self.mapped_params, - **self.profile_args, - # private_key should always get set as env var - "private_key": self.get_env_var_format("private_key"), - } - - # remove any null values + profile_vars = super().profile + # private_key should always get set as env var + profile_vars["private_key"] = self.get_env_var_format("private_key") return self.filter_null(profile_vars) - - def transform_account(self, account: str) -> str: - """Transform the account to the format . if it's not already.""" - region = self.conn.extra_dejson.get("region") - if region and region not in account: - account = f"{account}.{region}" - - return str(account) diff --git a/tests/profiles/snowflake/test_snowflake_base.py b/tests/profiles/snowflake/test_snowflake_base.py new file mode 100644 index 000000000..ee8f6c6b3 --- /dev/null +++ b/tests/profiles/snowflake/test_snowflake_base.py @@ -0,0 +1,19 @@ +from unittest.mock import patch + +from cosmos.profiles.snowflake.base import SnowflakeBaseProfileMapping + + +@patch("cosmos.profiles.snowflake.base.SnowflakeBaseProfileMapping.conn.extra_dejson", {"region": "us-west-2"}) +@patch("cosmos.profiles.snowflake.base.SnowflakeBaseProfileMapping.conn") +def test_default_region(mock_conn): + profile_mapping = SnowflakeBaseProfileMapping(conn_id="fake-conn") + response = profile_mapping.transform_account("myaccount") + assert response == "myaccount" + + +@patch("cosmos.profiles.snowflake.base.SnowflakeBaseProfileMapping.conn.extra_dejson", {"region": "us-east-1"}) +@patch("cosmos.profiles.snowflake.base.SnowflakeBaseProfileMapping.conn") +def test_non_default_region(mock_conn): + profile_mapping = SnowflakeBaseProfileMapping(conn_id="fake-conn") + response = profile_mapping.transform_account("myaccount") + assert response == "myaccount.us-east-1" From 0e826b1db82969c2555b85d4c4728e7a8373ed58 Mon Sep 17 00:00:00 2001 From: Karol Gongola Date: Thu, 19 Dec 2024 10:33:51 +0100 Subject: [PATCH 04/10] Add logging of stdout to dbt graph run_command. (#1390) Currently run_command functions put only stderr or stdout into logger. Which is misleading, because there are also important information in stdout even if something exists in stderr. ## Related Issue(s) closes #1356 --- cosmos/dbt/graph.py | 2 +- tests/dbt/test_graph.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cosmos/dbt/graph.py b/cosmos/dbt/graph.py index 04a7425e7..39ceecc20 100644 --- a/cosmos/dbt/graph.py +++ b/cosmos/dbt/graph.py @@ -180,7 +180,7 @@ def run_command(command: list[str], tmp_dir: Path, env_vars: dict[str, str]) -> ) if returncode or "Error" in stdout.replace("WarnErrorOptions", ""): - details = stderr or stdout + details = f"stderr: {stderr}\nstdout: {stdout}" raise CosmosLoadDbtException(f"Unable to run {command} due to the error:\n{details}") return stdout diff --git a/tests/dbt/test_graph.py b/tests/dbt/test_graph.py index 5d8db4891..f8e191a02 100644 --- a/tests/dbt/test_graph.py +++ b/tests/dbt/test_graph.py @@ -838,7 +838,7 @@ def test_load_via_dbt_ls_with_non_zero_returncode(mock_popen, postgres_profile_c execution_config=execution_config, profile_config=postgres_profile_config, ) - expected = r"Unable to run \['.+dbt', 'deps', .*\] due to the error:\nSome stderr message" + expected = r"Unable to run \['.+dbt', 'deps', .*\] due to the error:\nstderr: Some stderr message\nstdout: " with pytest.raises(CosmosLoadDbtException, match=expected): dbt_graph.load_via_dbt_ls() @@ -859,7 +859,7 @@ def test_load_via_dbt_ls_with_runtime_error_in_stdout(mock_popen_communicate, po execution_config=execution_config, profile_config=postgres_profile_config, ) - expected = r"Unable to run \['.+dbt', 'deps', .*\] due to the error:\nSome Runtime Error" + expected = r"Unable to run \['.+dbt', 'deps', .*\] due to the error:\nstderr: \nstdout: Some Runtime Error" with pytest.raises(CosmosLoadDbtException, match=expected): dbt_graph.load_via_dbt_ls() @@ -1131,7 +1131,7 @@ def test_run_command_none_argument(mock_popen, caplog): with pytest.raises(CosmosLoadDbtException) as exc_info: run_command(fake_command, fake_dir, env_vars) - expected = "Unable to run ['invalid-cmd', ''] due to the error:\nInvalid None argument" + expected = "Unable to run ['invalid-cmd', ''] due to the error:\nstderr: None\nstdout: Invalid None argument" assert str(exc_info.value) == expected From c5edba07d2265d5185eaba149a639e8a0740e498 Mon Sep 17 00:00:00 2001 From: Pankaj Koti Date: Thu, 19 Dec 2024 16:03:46 +0530 Subject: [PATCH 05/10] Drop running 1000 models in the CI (#1411) With PR #1403 , we added to the matrix to run tests on 500 & 1000 models. Although the job for 500 models completes in under 15 mins, the job for 1000 models is taking significantly longer ~40+ mins as can be seen here https://github.com/astronomer/astronomer-cosmos/actions/runs/12400943145/job/34619249671. I suggest we drop running 1000 models and later add it to the matrix to conditionally run only when a certain label is added to the PR i.e. when we would actually like to benchmark on specific PRs. I have created a follow-up issue for this https://github.com/astronomer/astronomer-cosmos/issues/1410 related: #1410 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 207c495c0..96ee32d53 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -354,7 +354,7 @@ jobs: matrix: python-version: ["3.11"] airflow-version: ["2.8"] - num-models: [1, 10, 50, 100, 500, 1000] + num-models: [1, 10, 50, 100, 500] services: postgres: image: postgres From ad89757b7cb6234da9da624d0d9fb4cc38537142 Mon Sep 17 00:00:00 2001 From: Pankaj Koti Date: Thu, 19 Dec 2024 16:26:52 +0530 Subject: [PATCH 06/10] Add Oracle Profile mapping (#1404) This PR adds the ability to map Oracle connections from Airflow to Cosmos. Co-authored-by: Shad L. Lords [slords@lordsfam.net](mailto:slords@lordsfam.net) Original PR by @slords: https://github.com/astronomer/astronomer-cosmos/pull/1190 closes: #1189 --- cosmos/profiles/__init__.py | 3 + cosmos/profiles/oracle/__init__.py | 5 + cosmos/profiles/oracle/user_pass.py | 89 ++++++ pyproject.toml | 2 + .../profiles/oracle/test_oracle_user_pass.py | 254 ++++++++++++++++++ 5 files changed, 353 insertions(+) create mode 100644 cosmos/profiles/oracle/__init__.py create mode 100644 cosmos/profiles/oracle/user_pass.py create mode 100644 tests/profiles/oracle/test_oracle_user_pass.py diff --git a/cosmos/profiles/__init__.py b/cosmos/profiles/__init__.py index 00b934881..06601e59a 100644 --- a/cosmos/profiles/__init__.py +++ b/cosmos/profiles/__init__.py @@ -13,6 +13,7 @@ from .databricks.oauth import DatabricksOauthProfileMapping from .databricks.token import DatabricksTokenProfileMapping from .exasol.user_pass import ExasolUserPasswordProfileMapping +from .oracle.user_pass import OracleUserPasswordProfileMapping from .postgres.user_pass import PostgresUserPasswordProfileMapping from .redshift.user_pass import RedshiftUserPasswordProfileMapping from .snowflake.user_encrypted_privatekey_env_variable import SnowflakeEncryptedPrivateKeyPemProfileMapping @@ -34,6 +35,7 @@ GoogleCloudOauthProfileMapping, DatabricksTokenProfileMapping, DatabricksOauthProfileMapping, + OracleUserPasswordProfileMapping, PostgresUserPasswordProfileMapping, RedshiftUserPasswordProfileMapping, SnowflakeUserPasswordProfileMapping, @@ -77,6 +79,7 @@ def get_automatic_profile_mapping( "DatabricksTokenProfileMapping", "DatabricksOauthProfileMapping", "DbtProfileConfigVars", + "OracleUserPasswordProfileMapping", "PostgresUserPasswordProfileMapping", "RedshiftUserPasswordProfileMapping", "SnowflakeUserPasswordProfileMapping", diff --git a/cosmos/profiles/oracle/__init__.py b/cosmos/profiles/oracle/__init__.py new file mode 100644 index 000000000..221f5f3a3 --- /dev/null +++ b/cosmos/profiles/oracle/__init__.py @@ -0,0 +1,5 @@ +"""Oracle Airflow connection -> dbt profile mappings""" + +from .user_pass import OracleUserPasswordProfileMapping + +__all__ = ["OracleUserPasswordProfileMapping"] diff --git a/cosmos/profiles/oracle/user_pass.py b/cosmos/profiles/oracle/user_pass.py new file mode 100644 index 000000000..f230848c5 --- /dev/null +++ b/cosmos/profiles/oracle/user_pass.py @@ -0,0 +1,89 @@ +"""Maps Airflow Oracle connections using user + password authentication to dbt profiles.""" + +from __future__ import annotations + +import re +from typing import Any + +from ..base import BaseProfileMapping + + +class OracleUserPasswordProfileMapping(BaseProfileMapping): + """ + Maps Airflow Oracle connections using user + password authentication to dbt profiles. + https://docs.getdbt.com/reference/warehouse-setups/oracle-setup + https://airflow.apache.org/docs/apache-airflow-providers-oracle/stable/connections/oracle.html + """ + + airflow_connection_type: str = "oracle" + dbt_profile_type: str = "oracle" + is_community: bool = True + + required_fields = [ + "user", + "password", + ] + secret_fields = [ + "password", + ] + airflow_param_mapping = { + "host": "host", + "port": "port", + "service": "extra.service_name", + "user": "login", + "password": "password", + "database": "extra.service_name", + "connection_string": "extra.dsn", + } + + @property + def env_vars(self) -> dict[str, str]: + """Set oracle thick mode.""" + env_vars = super().env_vars + if self._get_airflow_conn_field("extra.thick_mode"): + env_vars["ORA_PYTHON_DRIVER_TYPE"] = "thick" + return env_vars + + @property + def profile(self) -> dict[str, Any | None]: + """Gets profile. The password is stored in an environment variable.""" + profile = { + "protocol": "tcp", + "port": 1521, + **self.mapped_params, + **self.profile_args, + # password should always get set as env var + "password": self.get_env_var_format("password"), + } + + if "schema" not in profile and "user" in profile: + proxy = re.search(r"\[([^]]+)\]", profile["user"]) + if proxy: + profile["schema"] = proxy.group(1) + else: + profile["schema"] = profile["user"] + if "schema" in self.profile_args: + profile["schema"] = self.profile_args["schema"] + + return self.filter_null(profile) + + @property + def mock_profile(self) -> dict[str, Any | None]: + """Gets mock profile. Defaults port to 1521.""" + profile_dict = { + "protocol": "tcp", + "port": 1521, + **super().mock_profile, + } + + if "schema" not in profile_dict and "user" in profile_dict: + proxy = re.search(r"\[([^]]+)\]", profile_dict["user"]) + if proxy: + profile_dict["schema"] = proxy.group(1) + else: + profile_dict["schema"] = profile_dict["user"] + + user_defined_schema = self.profile_args.get("schema") + if user_defined_schema: + profile_dict["schema"] = user_defined_schema + return profile_dict diff --git a/pyproject.toml b/pyproject.toml index cad6c3896..ee5503510 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,6 +49,7 @@ dbt-all = [ # See: https://github.com/astronomer/astronomer-cosmos/issues/1379 "dbt-databricks!=1.9.0", "dbt-exasol", + "dbt-oracle", "dbt-postgres", "dbt-redshift", "dbt-snowflake", @@ -61,6 +62,7 @@ dbt-bigquery = ["dbt-bigquery"] dbt-clickhouse = ["dbt-clickhouse"] dbt-databricks = ["dbt-databricks"] dbt-exasol = ["dbt-exasol"] +dbt-oracle = ["dbt-oracle"] dbt-postgres = ["dbt-postgres"] dbt-redshift = ["dbt-redshift"] dbt-snowflake = ["dbt-snowflake"] diff --git a/tests/profiles/oracle/test_oracle_user_pass.py b/tests/profiles/oracle/test_oracle_user_pass.py new file mode 100644 index 000000000..7f1258470 --- /dev/null +++ b/tests/profiles/oracle/test_oracle_user_pass.py @@ -0,0 +1,254 @@ +"""Tests for the Oracle profile.""" + +from unittest.mock import patch + +import pytest +from airflow.models.connection import Connection + +from cosmos.profiles import get_automatic_profile_mapping +from cosmos.profiles.oracle.user_pass import OracleUserPasswordProfileMapping + + +@pytest.fixture() +def mock_oracle_conn(): # type: ignore + """ + Sets the Oracle connection as an environment variable. + """ + conn = Connection( + conn_id="my_oracle_connection", + conn_type="oracle", + host="my_host", + login="my_user", + password="my_password", + port=1521, + extra='{"service_name": "my_service"}', + ) + + with patch("airflow.hooks.base.BaseHook.get_connection", return_value=conn): + yield conn + + +@pytest.fixture() +def mock_oracle_conn_custom_port(): # type: ignore + """ + Sets the Oracle connection with a custom port as an environment variable. + """ + conn = Connection( + conn_id="my_oracle_connection", + conn_type="oracle", + host="my_host", + login="my_user", + password="my_password", + port=1600, + extra='{"service_name": "my_service"}', + ) + + with patch("airflow.hooks.base.BaseHook.get_connection", return_value=conn): + yield conn + + +def test_connection_claiming() -> None: + """ + Tests that the Oracle profile mapping claims the correct connection type. + """ + potential_values = { + "conn_type": "oracle", + "login": "my_user", + "password": "my_password", + } + + # if we're missing any of the required values, it shouldn't claim + for key in potential_values: + values = potential_values.copy() + del values[key] + conn = Connection(**values) # type: ignore + + with patch("airflow.hooks.base.BaseHook.get_connection", return_value=conn): + profile_mapping = OracleUserPasswordProfileMapping(conn, {"schema": "my_schema"}) + assert not profile_mapping.can_claim_connection() + + # if we have all the required values, it should claim + conn = Connection(**potential_values) # type: ignore + with patch("airflow.hooks.base.BaseHook.get_connection", return_value=conn): + profile_mapping = OracleUserPasswordProfileMapping(conn, {"schema": "my_schema"}) + assert profile_mapping.can_claim_connection() + + +def test_profile_mapping_selected( + mock_oracle_conn: Connection, +) -> None: + """ + Tests that the correct profile mapping is selected. + """ + profile_mapping = get_automatic_profile_mapping( + mock_oracle_conn.conn_id, + {"schema": "my_schema"}, + ) + assert isinstance(profile_mapping, OracleUserPasswordProfileMapping) + + +def test_profile_mapping_keeps_custom_port(mock_oracle_conn_custom_port: Connection) -> None: + profile = OracleUserPasswordProfileMapping(mock_oracle_conn_custom_port.conn_id, {"schema": "my_schema"}) + assert profile.profile["port"] == 1600 + + +def test_profile_args( + mock_oracle_conn: Connection, +) -> None: + """ + Tests that the profile values are set correctly. + """ + profile_mapping = get_automatic_profile_mapping( + mock_oracle_conn.conn_id, + profile_args={"schema": "my_schema"}, + ) + assert profile_mapping.profile_args == { + "schema": "my_schema", + } + + assert profile_mapping.profile == { + "type": mock_oracle_conn.conn_type, + "host": mock_oracle_conn.host, + "user": mock_oracle_conn.login, + "password": "{{ env_var('COSMOS_CONN_ORACLE_PASSWORD') }}", + "port": mock_oracle_conn.port, + "database": "my_service", + "service": "my_service", + "schema": "my_schema", + "protocol": "tcp", + } + + +def test_profile_args_overrides( + mock_oracle_conn: Connection, +) -> None: + """ + Tests that profile values can be overridden. + """ + profile_mapping = get_automatic_profile_mapping( + mock_oracle_conn.conn_id, + profile_args={ + "schema": "my_schema_override", + "database": "my_database_override", + "service": "my_service_override", + }, + ) + assert profile_mapping.profile_args == { + "schema": "my_schema_override", + "database": "my_database_override", + "service": "my_service_override", + } + + assert profile_mapping.profile == { + "type": mock_oracle_conn.conn_type, + "host": mock_oracle_conn.host, + "user": mock_oracle_conn.login, + "password": "{{ env_var('COSMOS_CONN_ORACLE_PASSWORD') }}", + "port": mock_oracle_conn.port, + "database": "my_database_override", + "service": "my_service_override", + "schema": "my_schema_override", + "protocol": "tcp", + } + + +def test_profile_env_vars( + mock_oracle_conn: Connection, +) -> None: + """ + Tests that environment variables are set correctly. + """ + profile_mapping = get_automatic_profile_mapping( + mock_oracle_conn.conn_id, + profile_args={"schema": "my_schema"}, + ) + assert profile_mapping.env_vars == { + "COSMOS_CONN_ORACLE_PASSWORD": mock_oracle_conn.password, + } + + +def test_env_vars_thick_mode(mock_oracle_conn: Connection) -> None: + """ + Tests that `env_vars` includes `ORA_PYTHON_DRIVER_TYPE` when `extra.thick_mode` is enabled. + """ + mock_oracle_conn.extra = '{"service_name": "my_service", "thick_mode": true}' + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {"schema": "my_schema"}) + assert profile_mapping.env_vars == { + "COSMOS_CONN_ORACLE_PASSWORD": mock_oracle_conn.password, + "ORA_PYTHON_DRIVER_TYPE": "thick", + } + + +def test_profile_filter_null(mock_oracle_conn: Connection) -> None: + """ + Tests that `profile` filters out null values. + """ + mock_oracle_conn.extra = '{"service_name": "my_service"}' + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {"schema": None}) + profile = profile_mapping.profile + assert "schema" not in profile + + +def test_mock_profile(mock_oracle_conn: Connection) -> None: + """ + Tests that `mock_profile` sets default port and schema correctly. + """ + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {"schema": "my_schema"}) + mock_profile = profile_mapping.mock_profile + assert mock_profile["port"] == 1521 + assert mock_profile["schema"] == "my_schema" + assert mock_profile["protocol"] == "tcp" + + +def test_invalid_connection_type() -> None: + """ + Tests that the profile mapping does not claim a non-oracle connection type. + """ + conn = Connection(conn_id="invalid_conn", conn_type="postgres", login="my_user", password="my_password") + with patch("airflow.hooks.base.BaseHook.get_connection", return_value=conn): + profile_mapping = OracleUserPasswordProfileMapping(conn, {}) + assert not profile_mapping.can_claim_connection() + + +def test_airflow_param_mapping(mock_oracle_conn: Connection) -> None: + """ + Tests that `airflow_param_mapping` correctly maps Airflow fields to dbt profile fields. + """ + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {"schema": "my_schema"}) + mapped_params = profile_mapping.mapped_params + + assert mapped_params["host"] == mock_oracle_conn.host + assert mapped_params["port"] == mock_oracle_conn.port + assert mapped_params["service"] == "my_service" + assert mapped_params["user"] == mock_oracle_conn.login + assert mapped_params["password"] == mock_oracle_conn.password + + +def test_profile_schema_extraction_with_proxy(mock_oracle_conn: Connection) -> None: + """ + Tests that the `schema` is extracted correctly from the `user` field + when a proxy schema is provided in square brackets. + """ + mock_oracle_conn.login = "my_user[proxy_schema]" + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {}) + + assert profile_mapping.profile["schema"] == "proxy_schema" + + +def test_profile_schema_defaults_to_user(mock_oracle_conn: Connection) -> None: + """ + Tests that the `schema` defaults to the `user` field when no proxy schema is provided. + """ + mock_oracle_conn.login = "my_user" + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {}) + + assert profile_mapping.profile["schema"] == "my_user" + + +def test_mock_profile_schema_extraction_with_proxy_gets_mock_value(mock_oracle_conn: Connection) -> None: + mock_oracle_conn.login = "my_user[proxy_schema]" + profile_mapping = OracleUserPasswordProfileMapping(mock_oracle_conn.conn_id, {}) + + mock_profile = profile_mapping.mock_profile + + assert mock_profile["schema"] == "mock_value" From 3eb9b98e2eb15c21f8952af508a6d2d6e2164c3e Mon Sep 17 00:00:00 2001 From: Pankaj Singh <98807258+pankajastro@users.noreply.github.com> Date: Thu, 19 Dec 2024 20:44:58 +0530 Subject: [PATCH 07/10] Add warning callback on source freshness (#1400) closes: https://github.com/astronomer/astronomer-cosmos/issues/914 This PR introduced `on_warning_callback` for `dbt source freshness` command i.e on operator `DbtSourceLocalOperator`. Example DAG ```python source_rendering_dag = DbtDag( # dbt/cosmos-specific parameters project_config=ProjectConfig( DBT_ROOT_PATH / "jaffle_shop", ), profile_config=profile_config, operator_args={ "install_deps": True, # install any necessary dependencies before running any dbt command "full_refresh": True, # used only in dbt commands that support this flag }, render_config=RenderConfig(source_rendering_behavior=SourceRenderingBehavior.ALL), # normal dag parameters schedule_interval="@daily", start_date=datetime(2024, 1, 1), catchup=False, dag_id="source_rendering_dag", default_args={"retries": 2}, on_warning_callback=lambda context: print(context), ) ``` --- cosmos/airflow/graph.py | 9 +++++- cosmos/dbt/parser/output.py | 17 ++++++++++ cosmos/operators/local.py | 31 +++++++++++++++++- dev/dags/example_source_rendering.py | 4 +++ docs/configuration/source-nodes-rendering.rst | 13 ++++++++ tests/dbt/parser/test_output.py | 22 +++++++++++++ tests/operators/test_local.py | 32 +++++++++++++++++++ 7 files changed, 126 insertions(+), 2 deletions(-) diff --git a/cosmos/airflow/graph.py b/cosmos/airflow/graph.py index 4848c45c5..c5eeb5d88 100644 --- a/cosmos/airflow/graph.py +++ b/cosmos/airflow/graph.py @@ -165,6 +165,7 @@ def create_task_metadata( use_task_group: bool = False, source_rendering_behavior: SourceRenderingBehavior = SourceRenderingBehavior.NONE, test_behavior: TestBehavior = TestBehavior.AFTER_ALL, + on_warning_callback: Callable[..., Any] | None = None, ) -> TaskMetadata | None: """ Create the metadata that will be used to instantiate the Airflow Task used to run the Dbt node. @@ -176,6 +177,8 @@ def create_task_metadata( :param dbt_dag_task_group_identifier: Identifier to refer to the DbtDAG or DbtTaskGroup in the DAG. :param use_task_group: It determines whether to use the name as a prefix for the task id or not. If it is False, then use the name as a prefix for the task id, otherwise do not. + :param on_warning_callback: A callback function called on warnings with additional Context variables “test_names” + and “test_results” of type List. This is param available for dbt test and dbt source freshness command. :returns: The metadata necessary to instantiate the source dbt node as an Airflow task. """ dbt_resource_to_class = create_dbt_resource_to_class(test_behavior) @@ -183,10 +186,11 @@ def create_task_metadata( args = {**args, **{"models": node.resource_name}} if DbtResourceType(node.resource_type) in DEFAULT_DBT_RESOURCES and node.resource_type in dbt_resource_to_class: - extra_context = { + extra_context: dict[str, Any] = { "dbt_node_config": node.context_dict, "dbt_dag_task_group_identifier": dbt_dag_task_group_identifier, } + if test_behavior == TestBehavior.BUILD and node.resource_type in SUPPORTED_BUILD_RESOURCES: task_id = f"{node.name}_{node.resource_type.value}_build" elif node.resource_type == DbtResourceType.MODEL: @@ -195,6 +199,8 @@ def create_task_metadata( else: task_id = f"{node.name}_run" elif node.resource_type == DbtResourceType.SOURCE: + args["on_warning_callback"] = on_warning_callback + if (source_rendering_behavior == SourceRenderingBehavior.NONE) or ( source_rendering_behavior == SourceRenderingBehavior.WITH_TESTS_OR_FRESHNESS and node.has_freshness is False @@ -262,6 +268,7 @@ def generate_task_or_group( use_task_group=use_task_group, source_rendering_behavior=source_rendering_behavior, test_behavior=test_behavior, + on_warning_callback=on_warning_callback, ) # In most cases, we'll map one DBT node to one Airflow task diff --git a/cosmos/dbt/parser/output.py b/cosmos/dbt/parser/output.py index 3ff377941..0bf86ccb8 100644 --- a/cosmos/dbt/parser/output.py +++ b/cosmos/dbt/parser/output.py @@ -11,6 +11,7 @@ DBT_NO_TESTS_MSG = "Nothing to do" DBT_WARN_MSG = "WARN" +DBT_FRESHNESS_WARN_MSG = "WARN freshness of" def parse_number_of_warnings_subprocess(result: FullOutputSubprocessResult) -> int: @@ -50,6 +51,22 @@ def parse_number_of_warnings_dbt_runner(result: dbtRunnerResult) -> int: return num +def extract_freshness_warn_msg(result: FullOutputSubprocessResult) -> Tuple[List[str], List[str]]: + log_list = result.full_output + + node_names = [] + node_results = [] + + for line in log_list: + + if DBT_FRESHNESS_WARN_MSG in line: + node_name = line.split(DBT_FRESHNESS_WARN_MSG)[1].split(" ")[1] + node_names.append(node_name) + node_results.append(line) + + return node_names, node_results + + def extract_log_issues(log_list: List[str]) -> Tuple[List[str], List[str]]: """ Extracts warning messages from the log list and returns them as a formatted string. diff --git a/cosmos/operators/local.py b/cosmos/operators/local.py index 2a56c33e3..dee00114c 100644 --- a/cosmos/operators/local.py +++ b/cosmos/operators/local.py @@ -57,6 +57,7 @@ ) from cosmos.dbt.parser.output import ( extract_dbt_runner_issues, + extract_freshness_warn_msg, extract_log_issues, parse_number_of_warnings_dbt_runner, parse_number_of_warnings_subprocess, @@ -706,8 +707,36 @@ class DbtSourceLocalOperator(DbtSourceMixin, DbtLocalBaseOperator): Executes a dbt source freshness command. """ - def __init__(self, *args: Any, **kwargs: Any) -> None: + def __init__(self, *args: Any, on_warning_callback: Callable[..., Any] | None = None, **kwargs: Any) -> None: super().__init__(*args, **kwargs) + self.on_warning_callback = on_warning_callback + self.extract_issues: Callable[..., tuple[list[str], list[str]]] + + def _handle_warnings(self, result: FullOutputSubprocessResult | dbtRunnerResult, context: Context) -> None: + """ + Handles warnings by extracting log issues, creating additional context, and calling the + on_warning_callback with the updated context. + + :param result: The result object from the build and run command. + :param context: The original airflow context in which the build and run command was executed. + """ + if self.invocation_mode == InvocationMode.SUBPROCESS: + self.extract_issues = extract_freshness_warn_msg + elif self.invocation_mode == InvocationMode.DBT_RUNNER: + self.extract_issues = extract_dbt_runner_issues + + test_names, test_results = self.extract_issues(result) + + warning_context = dict(context) + warning_context["test_names"] = test_names + warning_context["test_results"] = test_results + + self.on_warning_callback and self.on_warning_callback(warning_context) + + def execute(self, context: Context) -> None: + result = self.build_and_run_cmd(context=context, cmd_flags=self.add_cmd_flags()) + if self.on_warning_callback: + self._handle_warnings(result, context) class DbtRunLocalOperator(DbtRunMixin, DbtLocalBaseOperator): diff --git a/dev/dags/example_source_rendering.py b/dev/dags/example_source_rendering.py index 07f757dd6..2be1cda62 100644 --- a/dev/dags/example_source_rendering.py +++ b/dev/dags/example_source_rendering.py @@ -23,6 +23,8 @@ ), ) +# [START cosmos_source_node_example] + source_rendering_dag = DbtDag( # dbt/cosmos-specific parameters project_config=ProjectConfig( @@ -40,4 +42,6 @@ catchup=False, dag_id="source_rendering_dag", default_args={"retries": 2}, + on_warning_callback=lambda context: print(context), ) +# [END cosmos_source_node_example] diff --git a/docs/configuration/source-nodes-rendering.rst b/docs/configuration/source-nodes-rendering.rst index ae1417361..2593c5b72 100644 --- a/docs/configuration/source-nodes-rendering.rst +++ b/docs/configuration/source-nodes-rendering.rst @@ -34,3 +34,16 @@ Example: source_rendering_behavior=SourceRenderingBehavior.WITH_TESTS_OR_FRESHNESS, ) ) + + +on_warning_callback Callback +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``on_warning_callback`` is a callback parameter available on the ``DbtSourceLocalOperator``. This callback is triggered when a warning occurs during the execution of the ``dbt source freshness`` command. The callback accepts the task context, which includes additional parameters: test_names and test_results + +Example: + +.. literalinclude:: ../../dev/dags/example_source_rendering.py/ + :language: python + :start-after: [START cosmos_source_node_example] + :end-before: [END cosmos_source_node_example] diff --git a/tests/dbt/parser/test_output.py b/tests/dbt/parser/test_output.py index 4fe11669f..fd19f8bbc 100644 --- a/tests/dbt/parser/test_output.py +++ b/tests/dbt/parser/test_output.py @@ -6,10 +6,12 @@ from cosmos.dbt.parser.output import ( extract_dbt_runner_issues, + extract_freshness_warn_msg, extract_log_issues, parse_number_of_warnings_dbt_runner, parse_number_of_warnings_subprocess, ) +from cosmos.hooks.subprocess import FullOutputSubprocessResult @pytest.mark.parametrize( @@ -112,3 +114,23 @@ def test_extract_dbt_runner_issues_with_status_levels(): assert node_names == ["node1", "node2"] assert node_results == ["An error message", "A failure message"] + + +def test_extract_freshness_warn_msg(): + result = FullOutputSubprocessResult( + full_output=[ + "Info: some other log message", + "INFO - 11:50:42 1 of 1 WARN freshness of postgres_db.raw_orders ................................ [WARN in 0.01s]", + "INFO - 11:50:42", + "INFO - 11:50:42 Finished running 1 source in 0 hours 0 minutes and 0.04 seconds (0.04s).", + "INFO - 11:50:42 Done.", + ], + output="INFO - 11:50:42 Done.", + exit_code=0, + ) + node_names, node_results = extract_freshness_warn_msg(result) + + assert node_names == ["postgres_db.raw_orders"] + assert node_results == [ + "INFO - 11:50:42 1 of 1 WARN freshness of postgres_db.raw_orders ................................ [WARN in 0.01s]" + ] diff --git a/tests/operators/test_local.py b/tests/operators/test_local.py index 464ca2e92..5ea3d423d 100644 --- a/tests/operators/test_local.py +++ b/tests/operators/test_local.py @@ -1159,6 +1159,38 @@ def test_store_freshness_not_store_compiled_sql(mock_context, mock_session): assert instance.freshness == "" +@pytest.mark.parametrize( + "invocation_mode, expected_extract_function", + [ + (InvocationMode.SUBPROCESS, "extract_freshness_warn_msg"), + (InvocationMode.DBT_RUNNER, "extract_dbt_runner_issues"), + ], +) +def test_handle_warnings(invocation_mode, expected_extract_function, mock_context): + result = MagicMock() + + instance = DbtSourceLocalOperator( + task_id="test", + profile_config=None, + project_dir="my/dir", + on_warning_callback=lambda context: print(context), + invocation_mode=invocation_mode, + ) + + with patch(f"cosmos.operators.local.{expected_extract_function}") as mock_extract_issues, patch.object( + instance, "on_warning_callback" + ) as mock_on_warning_callback: + mock_extract_issues.return_value = (["test_name1", "test_name2"], ["test_name1", "test_name2"]) + + instance._handle_warnings(result, mock_context) + + mock_extract_issues.assert_called_once_with(result) + + mock_on_warning_callback.assert_called_once_with( + {**mock_context, "test_names": ["test_name1", "test_name2"], "test_results": ["test_name1", "test_name2"]} + ) + + def test_dbt_compile_local_operator_initialisation(): operator = DbtCompileLocalOperator( task_id="fake-task", From ea67123cc57cfe5910fb1a05109a2b75d8138e07 Mon Sep 17 00:00:00 2001 From: "t.kodama" <118150392+t0momi219@users.noreply.github.com> Date: Fri, 20 Dec 2024 01:08:42 +0900 Subject: [PATCH 08/10] Support rendering tasks with non-ASCII characters (#1278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description When running models that have names containing multibyte characters, runtime errors occur in Airflow environments where statsd is enabled (e.g., MWAA uses this statsd metric for collecting metrics in Cloudwatch). Related Issue: https://github.com/apache/airflow/issues/18010 To address this, Airflow 2.9 introduced the ability to render tasks using display_name, which allows task names to be rendered separately from their task_id. Reference: https://airflow.apache.org/docs/apache-airflow/stable/_modules/airflow/example_dags/example_display_name.html This PR adds support for display_name, enabling users who use non-ASCII characters as their native language to display task names in their own language, even in environments like MWAA. ### Details The normalize_task_id parameter is added to RenderConfig. This option accepts a function to generate a task ID from a node. This allows users to generate arbitrary task IDs from models. If a function is passed to this option, Cosmos will use the model name as the display_name for tasks while rendering them. ```python def normalize_task_id(node): """ This function takes a node and returns a new task_id. """ if node.name == "MULTIBYTE_MODEL_NAME": return "MULTIBYTE_MODEL_NAME" render_config = RenderConfig( normalize_task_id=normalize_task_id ) ``` ## Related Issue(s) closes https://github.com/astronomer/astronomer-cosmos/issues/1277 ## Breaking Change? ## Checklist - [x] I have made corresponding changes to the documentation (if required) - [x] I have added tests that prove my fix is effective or that my feature works --------- Co-authored-by: Pankaj Singh <98807258+pankajastro@users.noreply.github.com> --- cosmos/airflow/graph.py | 48 +++++++--- cosmos/config.py | 3 + docs/configuration/index.rst | 1 + docs/configuration/render-config.rst | 2 + docs/configuration/task-display-name.rst | 33 +++++++ tests/airflow/test_graph.py | 117 +++++++++++++++++++++++ 6 files changed, 193 insertions(+), 11 deletions(-) create mode 100644 docs/configuration/task-display-name.rst diff --git a/cosmos/airflow/graph.py b/cosmos/airflow/graph.py index c5eeb5d88..d20a7de22 100644 --- a/cosmos/airflow/graph.py +++ b/cosmos/airflow/graph.py @@ -132,6 +132,27 @@ def create_test_task_metadata( ) +def _get_task_id_and_args( + node: DbtNode, + args: dict[str, Any], + use_task_group: bool, + normalize_task_id: Callable[..., Any] | None, + resource_suffix: str, +) -> tuple[str, dict[str, Any]]: + """ + Generate task ID and update args with display name if needed. + """ + args_update = args + if use_task_group: + task_id = resource_suffix + elif normalize_task_id: + task_id = normalize_task_id(node) + args_update["task_display_name"] = f"{node.name}_{resource_suffix}" + else: + task_id = f"{node.name}_{resource_suffix}" + return task_id, args_update + + def create_dbt_resource_to_class(test_behavior: TestBehavior) -> dict[str, str]: """ Return the map from dbt node type to Cosmos class prefix that should be used @@ -164,6 +185,7 @@ def create_task_metadata( dbt_dag_task_group_identifier: str, use_task_group: bool = False, source_rendering_behavior: SourceRenderingBehavior = SourceRenderingBehavior.NONE, + normalize_task_id: Callable[..., Any] | None = None, test_behavior: TestBehavior = TestBehavior.AFTER_ALL, on_warning_callback: Callable[..., Any] | None = None, ) -> TaskMetadata | None: @@ -194,10 +216,7 @@ def create_task_metadata( if test_behavior == TestBehavior.BUILD and node.resource_type in SUPPORTED_BUILD_RESOURCES: task_id = f"{node.name}_{node.resource_type.value}_build" elif node.resource_type == DbtResourceType.MODEL: - if use_task_group: - task_id = "run" - else: - task_id = f"{node.name}_run" + task_id, args = _get_task_id_and_args(node, args, use_task_group, normalize_task_id, "run") elif node.resource_type == DbtResourceType.SOURCE: args["on_warning_callback"] = on_warning_callback @@ -207,18 +226,21 @@ def create_task_metadata( and node.has_test is False ): return None - task_id = f"{node.name}_source" args["select"] = f"source:{node.resource_name}" args.pop("models") - if use_task_group is True: - task_id = node.resource_type.value + task_id, args = _get_task_id_and_args(node, args, use_task_group, normalize_task_id, "source") if node.has_freshness is False and source_rendering_behavior == SourceRenderingBehavior.ALL: # render sources without freshness as empty operators - return TaskMetadata(id=task_id, operator_class="airflow.operators.empty.EmptyOperator") + # empty operator does not accept custom parameters (e.g., profile_args). recreate the args. + if "task_display_name" in args: + args = {"task_display_name": args["task_display_name"]} + else: + args = {} + return TaskMetadata(id=task_id, operator_class="airflow.operators.empty.EmptyOperator", arguments=args) else: - task_id = f"{node.name}_{node.resource_type.value}" - if use_task_group is True: - task_id = node.resource_type.value + task_id, args = _get_task_id_and_args( + node, args, use_task_group, normalize_task_id, node.resource_type.value + ) task_metadata = TaskMetadata( id=task_id, @@ -250,6 +272,7 @@ def generate_task_or_group( source_rendering_behavior: SourceRenderingBehavior, test_indirect_selection: TestIndirectSelection, on_warning_callback: Callable[..., Any] | None, + normalize_task_id: Callable[..., Any] | None = None, **kwargs: Any, ) -> BaseOperator | TaskGroup | None: task_or_group: BaseOperator | TaskGroup | None = None @@ -267,6 +290,7 @@ def generate_task_or_group( dbt_dag_task_group_identifier=_get_dbt_dag_task_group_identifier(dag, task_group), use_task_group=use_task_group, source_rendering_behavior=source_rendering_behavior, + normalize_task_id=normalize_task_id, test_behavior=test_behavior, on_warning_callback=on_warning_callback, ) @@ -371,6 +395,7 @@ def build_airflow_graph( node_converters = render_config.node_converters or {} test_behavior = render_config.test_behavior source_rendering_behavior = render_config.source_rendering_behavior + normalize_task_id = render_config.normalize_task_id tasks_map: dict[str, Union[TaskGroup, BaseOperator]] = {} task_or_group: TaskGroup | BaseOperator @@ -392,6 +417,7 @@ def build_airflow_graph( source_rendering_behavior=source_rendering_behavior, test_indirect_selection=test_indirect_selection, on_warning_callback=on_warning_callback, + normalize_task_id=normalize_task_id, node=node, ) if task_or_group is not None: diff --git a/cosmos/config.py b/cosmos/config.py index 516a6787b..59f857114 100644 --- a/cosmos/config.py +++ b/cosmos/config.py @@ -62,6 +62,8 @@ class RenderConfig: :param dbt_ls_path: Configures the location of an output of ``dbt ls``. Required when using ``load_method=LoadMode.DBT_LS_FILE``. :param enable_mock_profile: Allows to enable/disable mocking profile. Enabled by default. Mock profiles are useful for parsing Cosmos DAGs in the CI, but should be disabled to benefit from partial parsing (since Cosmos 1.4). :param source_rendering_behavior: Determines how source nodes are rendered when using cosmos default source node rendering (ALL, NONE, WITH_TESTS_OR_FRESHNESS). Defaults to "NONE" (since Cosmos 1.6). + :param airflow_vars_to_purge_dbt_ls_cache: Specify Airflow variables that will affect the LoadMode.DBT_LS cache. + :param normalize_task_id: A callable that takes a dbt node as input and returns the task ID. This allows users to assign a custom node ID separate from the display name. """ emit_datasets: bool = True @@ -80,6 +82,7 @@ class RenderConfig: enable_mock_profile: bool = True source_rendering_behavior: SourceRenderingBehavior = SourceRenderingBehavior.NONE airflow_vars_to_purge_dbt_ls_cache: list[str] = field(default_factory=list) + normalize_task_id: Callable[..., Any] | None = None def __post_init__(self, dbt_project_path: str | Path | None) -> None: if self.env_vars: diff --git a/docs/configuration/index.rst b/docs/configuration/index.rst index 9001b4c2e..55ba51787 100644 --- a/docs/configuration/index.rst +++ b/docs/configuration/index.rst @@ -28,4 +28,5 @@ Cosmos offers a number of configuration options to customize its behavior. For m Compiled SQL Logging Caching + Task display name Callbacks diff --git a/docs/configuration/render-config.rst b/docs/configuration/render-config.rst index 068998de5..745b7018c 100644 --- a/docs/configuration/render-config.rst +++ b/docs/configuration/render-config.rst @@ -18,6 +18,8 @@ The ``RenderConfig`` class takes the following arguments: - ``env_vars``: (available in v1.2.5, use``ProjectConfig.env_vars`` for v1.3.0 onwards) A dictionary of environment variables for rendering. Only supported when using ``load_method=LoadMode.DBT_LS``. - ``dbt_project_path``: Configures the DBT project location accessible on their airflow controller for DAG rendering - Required when using ``load_method=LoadMode.DBT_LS`` or ``load_method=LoadMode.CUSTOM`` - ``airflow_vars_to_purge_cache``: (new in v1.5) Specify Airflow variables that will affect the ``LoadMode.DBT_LS`` cache. See `Caching <./caching.html>`_ for more information. +- ``source_rendering_behavior``: Determines how source nodes are rendered when using cosmos default source node rendering (ALL, NONE, WITH_TESTS_OR_FRESHNESS). Defaults to "NONE" (since Cosmos 1.6). See `Source Nodes Rendering <./source-nodes-rendering.html>`_ for more information. +- ``normalize_task_id``: A callable that takes a dbt node as input and returns the task ID. This function allows users to set a custom task_id independently of the model name, which can be specified as the task’s display_name. This way, task_id can be modified using a user-defined function, while the model name remains as the task’s display name. The display_name parameter is available in Airflow 2.9 and above. See `Task display name <./task-display-name.html>`_ for more information. Customizing how nodes are rendered (experimental) ------------------------------------------------- diff --git a/docs/configuration/task-display-name.rst b/docs/configuration/task-display-name.rst new file mode 100644 index 000000000..56c750dd2 --- /dev/null +++ b/docs/configuration/task-display-name.rst @@ -0,0 +1,33 @@ +.. _task-display-name: + +Task display name +================ + +.. note:: + This feature is only available for Airflow >= 2.9. + +In Airflow, ``task_id`` does not support non-ASCII characters. Therefore, if users wish to use non-ASCII characters (such as their native language) as display names while keeping ``task_id`` in ASCII, they can use the ``display_name`` parameter. + +To work with projects that use non-ASCII characters in model names, the ``normalize_task_id`` field of ``RenderConfig`` can be utilized. + +Example: + +You can provide a function to convert the model name to an ASCII-compatible format. The function’s output is used as the TaskID, while the display name on Airflow remains as the original model name. + +.. code-block:: python + + from slugify import slugify + + + def normalize_task_id(node): + return slugify(node.name) + + + from cosmos import DbtTaskGroup, RenderConfig + + jaffle_shop = DbtTaskGroup( + render_config=RenderConfig(normalize_task_id=normalize_task_id) + ) + +.. note:: + Although the slugify example often works, it may not be suitable for use in actual production. Since slugify performs conversions based on pronunciation, there may be cases where task_id is not unique due to homophones and similar issues. diff --git a/tests/airflow/test_graph.py b/tests/airflow/test_graph.py index fc0070e8b..c00f0cf53 100644 --- a/tests/airflow/test_graph.py +++ b/tests/airflow/test_graph.py @@ -611,6 +611,123 @@ def test_create_task_metadata_snapshot(caplog): assert metadata.arguments == {"models": "my_snapshot"} +def _normalize_task_id(node: DbtNode) -> str: + """for test_create_task_metadata_normalize_task_id""" + return f"new_task_id_{node.name}_{node.resource_type.value}" + + +@pytest.mark.skipif( + version.parse(airflow_version) < version.parse("2.9"), + reason="Airflow task did not have display_name until the 2.9 release", +) +@pytest.mark.parametrize( + "node_type,node_id,normalize_task_id,use_task_group,expected_node_id,expected_display_name", + [ + # normalize_task_id is None (default) + ( + DbtResourceType.MODEL, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + None, + False, + "test_node_run", + None, + ), + ( + DbtResourceType.SOURCE, + f"{DbtResourceType.SOURCE.value}.my_folder.test_node", + None, + False, + "test_node_source", + None, + ), + ( + DbtResourceType.SEED, + f"{DbtResourceType.SEED.value}.my_folder.test_node", + None, + False, + "test_node_seed", + None, + ), + # normalize_task_id is passed and use_task_group is False + ( + DbtResourceType.MODEL, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + False, + "new_task_id_test_node_model", + "test_node_run", + ), + ( + DbtResourceType.SOURCE, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + False, + "new_task_id_test_node_source", + "test_node_source", + ), + ( + DbtResourceType.SEED, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + False, + "new_task_id_test_node_seed", + "test_node_seed", + ), + # normalize_task_id is passed and use_task_group is True + ( + DbtResourceType.MODEL, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + True, + "run", + None, + ), + ( + DbtResourceType.SOURCE, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + True, + "source", + None, + ), + ( + DbtResourceType.SEED, + f"{DbtResourceType.MODEL.value}.my_folder.test_node", + _normalize_task_id, + True, + "seed", + None, + ), + ], +) +def test_create_task_metadata_normalize_task_id( + node_type, node_id, normalize_task_id, use_task_group, expected_node_id, expected_display_name +): + node = DbtNode( + unique_id=node_id, + resource_type=node_type, + depends_on=[], + file_path="", + tags=[], + config={}, + ) + args = {} + metadata = create_task_metadata( + node, + execution_mode=ExecutionMode.LOCAL, + args=args, + dbt_dag_task_group_identifier="", + use_task_group=use_task_group, + normalize_task_id=normalize_task_id, + source_rendering_behavior=SourceRenderingBehavior.ALL, + ) + assert metadata.id == expected_node_id + if expected_display_name: + assert metadata.arguments["task_display_name"] == expected_display_name + else: + assert "task_display_name" not in metadata.arguments + + @pytest.mark.parametrize( "node_type,node_unique_id,test_indirect_selection,additional_arguments", [ From c21f8c999004f2f850af8015ed837451f1d7eeb8 Mon Sep 17 00:00:00 2001 From: Pankaj Singh <98807258+pankajastro@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:57:47 +0530 Subject: [PATCH 09/10] Fix dag randering for taskflow + DbtTaskGroup combo (#1360) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description I believe the deepcopy results in two separate DAG objects—the original object and its deepcopy and the task is referencing to both objects causing failure ``` airflow.exceptions.AirflowException: Tried to set relationships between tasks in more than one DAG: {, } ``` Screenshot 2024-12-03 at 2 30 23 AM DAG Code ```python from datetime import datetime from airflow.decorators import task, dag from cosmos import DbtTaskGroup, ProjectConfig from include.constants import jaffle_shop_path, venv_execution_config, manifest_path from include.profiles import airflow_db @task(task_id="build_partial_dbt_env_vars_operator") def build_partial_dbt_env(): # some code # This return is for demonstration purposes only return { "ENV_VAR_NAME": "value", "ENV_VAR_NAME_2": False } # partial_dbt_env = build_partial_dbt_env() @dag( schedule_interval="@daily", start_date=datetime(2023, 1, 1), catchup=False, tags=["simple"], ) def simple_task_group1() -> None: DbtTaskGroup( group_id="transform_task_group", project_config=ProjectConfig( dbt_project_path=jaffle_shop_path, manifest_path=manifest_path, env_vars=build_partial_dbt_env() ), profile_config=airflow_db, execution_config=venv_execution_config, ) simple_task_group1() #partial_dbt_env >> transform_task_group ``` ## Related Issue(s) closes: https://github.com/astronomer/astronomer-cosmos/issues/1218 ## Breaking Change? ## Checklist - [ ] I have made corresponding changes to the documentation (if required) - [ ] I have added tests that prove my fix is effective or that my feature works --- cosmos/converter.py | 4 +-- dev/dags/example_taskflow.py | 48 ++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 dev/dags/example_taskflow.py diff --git a/cosmos/converter.py b/cosmos/converter.py index 5bf99cac8..524864aa9 100644 --- a/cosmos/converter.py +++ b/cosmos/converter.py @@ -229,8 +229,8 @@ def __init__( validate_changed_config_paths(execution_config, project_config, render_config) - env_vars = copy.deepcopy(project_config.env_vars or operator_args.get("env")) - dbt_vars = copy.deepcopy(project_config.dbt_vars or operator_args.get("vars")) + env_vars = project_config.env_vars or operator_args.get("env") + dbt_vars = project_config.dbt_vars or operator_args.get("vars") if execution_config.execution_mode != ExecutionMode.VIRTUALENV and execution_config.virtualenv_dir is not None: logger.warning( diff --git a/dev/dags/example_taskflow.py b/dev/dags/example_taskflow.py new file mode 100644 index 000000000..e75be2adc --- /dev/null +++ b/dev/dags/example_taskflow.py @@ -0,0 +1,48 @@ +import os +from datetime import datetime +from pathlib import Path + +from airflow.decorators import dag, task + +from cosmos import DbtTaskGroup, ProfileConfig, ProjectConfig +from cosmos.profiles import PostgresUserPasswordProfileMapping + +DEFAULT_DBT_ROOT_PATH = Path(__file__).parent / "dbt" +DBT_ROOT_PATH = Path(os.getenv("DBT_ROOT_PATH", DEFAULT_DBT_ROOT_PATH)) + + +profile_config = ProfileConfig( + profile_name="default", + target_name="dev", + profile_mapping=PostgresUserPasswordProfileMapping( + conn_id="example_conn", + profile_args={"schema": "public"}, + disable_event_tracking=True, + ), +) + + +@task(task_id="build_partial_dbt_env_vars_operator") +def build_partial_dbt_env(): + return {"ENV_VAR_NAME": "value", "ENV_VAR_NAME_2": False} + + +@dag( + schedule_interval="@daily", + start_date=datetime(2024, 1, 1), + catchup=False, +) +def example_taskflow() -> None: + DbtTaskGroup( + group_id="transform_task_group", + project_config=ProjectConfig( + dbt_project_path=DBT_ROOT_PATH / "jaffle_shop", + manifest_path=DBT_ROOT_PATH / "jaffle_shop" / "target" / "manifest.json", + env_vars=build_partial_dbt_env(), + ), + profile_config=profile_config, + operator_args={"install_deps": True}, + ) + + +example_taskflow() From 3b9242166b3677e85f418239972507c9978147b5 Mon Sep 17 00:00:00 2001 From: Andrew Lui Date: Fri, 20 Dec 2024 01:55:01 -0500 Subject: [PATCH 10/10] adds profile_config for Docker (#1347) Adds ProfileConfig to Docker operators so that people can use TaskGroups. Closes #1346 --- cosmos/operators/docker.py | 3 +++ tests/test_converter.py | 11 ++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cosmos/operators/docker.py b/cosmos/operators/docker.py index 05671b4d0..81b7196b3 100644 --- a/cosmos/operators/docker.py +++ b/cosmos/operators/docker.py @@ -4,6 +4,7 @@ from airflow.utils.context import Context +from cosmos.config import ProfileConfig from cosmos.operators.base import ( AbstractDbtBaseOperator, DbtBuildMixin, @@ -42,8 +43,10 @@ class DbtDockerBaseOperator(AbstractDbtBaseOperator, DockerOperator): # type: i def __init__( self, image: str, # Make image a required argument since it's required by DockerOperator + profile_config: ProfileConfig | None = None, **kwargs: Any, ) -> None: + self.profile_config = profile_config super().__init__(image=image, **kwargs) def build_and_run_cmd(self, context: Context, cmd_flags: list[str] | None = None) -> Any: diff --git a/tests/test_converter.py b/tests/test_converter.py index 9da31f00d..4883605dc 100644 --- a/tests/test_converter.py +++ b/tests/test_converter.py @@ -134,7 +134,7 @@ def test_validate_arguments_schema_in_task_args(): "execution_mode,operator_args", [ (ExecutionMode.KUBERNETES, {}), - # (ExecutionMode.DOCKER, {"image": "sample-image"}), + (ExecutionMode.DOCKER, {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes) @@ -168,6 +168,7 @@ def test_converter_creates_dag_with_seed(mock_load_dbt_graph, execution_mode, op "execution_mode,operator_args", [ (ExecutionMode.KUBERNETES, {}), + (ExecutionMode.DOCKER, {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes) @@ -201,7 +202,7 @@ def test_converter_creates_dag_with_project_path_str(mock_load_dbt_graph, execut "execution_mode,virtualenv_dir,operator_args", [ (ExecutionMode.KUBERNETES, Path("/some/virtualenv/dir"), {}), - # (ExecutionMode.DOCKER, {"image": "sample-image"}), + (ExecutionMode.DOCKER, Path("/some/virtualenv/dir"), {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes) @@ -241,7 +242,7 @@ def test_converter_raises_warning(mock_load_dbt_graph, execution_mode, virtualen "execution_mode,operator_args", [ (ExecutionMode.KUBERNETES, {}), - # (ExecutionMode.DOCKER, {"image": "sample-image"}), + (ExecutionMode.DOCKER, {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes) @@ -278,7 +279,7 @@ def test_converter_fails_execution_config_no_project_dir(mock_load_dbt_graph, ex "execution_mode,operator_args", [ (ExecutionMode.KUBERNETES, {}), - # (ExecutionMode.DOCKER, {"image": "sample-image"}), + (ExecutionMode.DOCKER, {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes) @@ -317,7 +318,7 @@ def test_converter_fails_project_config_path_and_execution_config_path( "execution_mode,operator_args", [ (ExecutionMode.KUBERNETES, {}), - # (ExecutionMode.DOCKER, {"image": "sample-image"}), + (ExecutionMode.DOCKER, {"image": "sample-image"}), ], ) @patch("cosmos.converter.DbtGraph.filtered_nodes", nodes)