Why is my dbt run one block in the my Dagster run’s UI and gantt chart? #18115
-
Hello - curious: Why do each of my DBT files not appear as unique assets in a run, and instead come under run_dbt? Is there a way around this? Secondly, I'm having a small issue with run_dbt being split up into two. Here is my scenario: The question was originally asked in Dagster Slack. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi there! The blocks on each chart you see in the run's page detail page is the step (otherwise known as Op) that your run is executing, and not necessarily what assets are being materialized. For what it's worth, many assets have a 1:1 relationship between the asset and the op that creates it, but the dbt integration is an exception and is a 1:many relationship of 1 op to many assets produced. Dagster's dbt integration is optimized to create as few dbt runs as possible, and so it figures out what models to materialize in a dbt run/build. You can see what models each step is running from the logs. Here's an example from one of our Dagster's runs. Compared to other orchestrators, others may make a task for each dbt model, which means that dbt model gets additional overhead time due to the task/executor getting spun up, which may be 1-3 seconds. In your example, you have two runs. This is commonly found when Dagster needs to make different configurations across models, such as if you've partitioned a dbt model. A partitioned dbt run would have additional variables passed into it to tell the model what partition its running for. Wrt to your second question, if you have incomplete data due to two runs, are the models across both marked dependent on each other? Dagster should resolve this by staggering, if so, but it might be a bug. |
Beta Was this translation helpful? Give feedback.
Hi there!
The blocks on each chart you see in the run's page detail page is the step (otherwise known as Op) that your run is executing, and not necessarily what assets are being materialized. For what it's worth, many assets have a 1:1 relationship between the asset and the op that creates it, but the dbt integration is an exception and is a 1:many relationship of 1 op to many assets produced.
Dagster's dbt integration is optimized to create as few dbt runs as possible, and so it figures out what models to materialize in a dbt run/build. You can see what models each step is running from the logs. Here's an example from one of our Dagster's runs.
Compared to other orchestrators, others m…