-
Notifications
You must be signed in to change notification settings - Fork 297
Support to prune sources without downstream references in dbt projects #1988
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
be8e5d0
Add source_prunning logic to cosmos
corsettigyg d94314e
add source prunning logic
corsettigyg 25800b7
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] c156dff
Merge branch 'main' into source-prunning
corsettigyg a61ceb8
add cached property to transverse map
corsettigyg 4a530bd
Merge remote-tracking branch 'origin/source-prunning' into source-pru…
corsettigyg 3f74389
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] 2c2510a
Merge branch 'main' into source-prunning
corsettigyg 27c5b74
fix issue
corsettigyg de3dab1
improve performance
corsettigyg 31b4a45
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] 69c7673
fix spelling
corsettigyg b669066
Merge remote-tracking branch 'origin/source-prunning' into source-pru…
corsettigyg ddbd32d
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] ea187a6
Update cosmos/config.py
corsettigyg 1758e3d
rename to source pruning
corsettigyg 6427f0d
rename to source pruning v2
corsettigyg ceee75c
fix spelling in dag_id
corsettigyg 32b7bdd
fix file name
corsettigyg 152bc63
revert changes in node
corsettigyg b5f32e1
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] 8140db7
fix doc
corsettigyg fc323e1
Merge remote-tracking branch 'origin/source-prunning' into source-pru…
corsettigyg a3ee387
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] a19fb7e
fix source_pruning not having default value
corsettigyg 3305675
Merge remote-tracking branch 'origin/source-prunning' into source-pru…
corsettigyg 71266ab
add tests
corsettigyg 82ea59d
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] 26adfd8
improve documentation
corsettigyg dfcda48
adding extra node to the test_graph
corsettigyg 7187e42
exclude failing node to fix airflow 3 issue
corsettigyg 3eb6888
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
pre-commit-ci[bot] fcd08e8
Merge branch 'main' into source-prunning
corsettigyg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| """ | ||
| An example DAG that uses Cosmos to render a dbt project into an Airflow DAG using Cosmos source rendering, and then | ||
| prunes unused source nodes. | ||
| """ | ||
|
|
||
| import os | ||
| from datetime import datetime | ||
| from pathlib import Path | ||
|
|
||
| from cosmos import DbtDag, ProfileConfig, ProjectConfig, RenderConfig | ||
| from cosmos.constants import SourceRenderingBehavior | ||
| 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, | ||
| ), | ||
| ) | ||
|
|
||
| # [START cosmos_source_node_example] | ||
|
|
||
| source_rendering_dag = DbtDag( | ||
| # dbt/cosmos-specific parameters | ||
| project_config=ProjectConfig( | ||
| DBT_ROOT_PATH / "altered_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, | ||
| source_pruning=True, | ||
| exclude=[ | ||
| "multibyte" | ||
| ], # Exclude multibyte model to avoid Airflow 3.0 AssetAlias ASCII validation issues | ||
|
tatiana marked this conversation as resolved.
|
||
| ), | ||
| # normal dag parameters | ||
| schedule="@daily", | ||
| start_date=datetime(2024, 1, 1), | ||
| catchup=False, | ||
| dag_id="source_pruning_dag", | ||
| default_args={"retries": 0}, | ||
| on_warning_callback=lambda context: print(context), | ||
| ) | ||
| # [END cosmos_source_node_example] | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.