Noam Finkelstein
01/26/2023, 12:28 AMOlivier Dupuis
01/26/2023, 6:29 PMevents_fct
becomes stale, it will run only int_events
, events_fct
and whatever other upstream assets that need to be refreshed.
• Whereas if my hex_main_dashboard_refresh
becomes stale, it will check to see if movements_dim
, events_fct
and observations_fct
are fresh. If not, Dagster will bundle them in the next job run.
• That also applies to manually running assets. I could just manually select int_events
, events_fct
and semantic_definitions
to be run as a single job.
I think I see where in the tutorial you might get the impression that the whole dbt project needs to be run as a block. I’m not sure I understand what’s meant by “These assets share the same underlying op”, but regardless, dbt models are just loaded as any other assets with their list of dependencies.
Was that even the question you were asking? 🙂Noam Finkelstein
01/26/2023, 6:43 PMLoads a set of dbt models from a dbt project into Dagster assets.
Creates one Dagster asset for each dbt model. All assets will be re-materialized using a singleordbt run
command.dbt build
Olivier Dupuis
01/26/2023, 8:50 PMNoam Finkelstein
01/26/2023, 8:56 PMslow_asset -> dbt_asset1
fast_asset -> dbt_asset2
My worry is that because all the dbt assets share a single op, dbt_asset2
can't be kicked off until slow_asset
is done, even though all it really needs is for fast_asset
to be done. Do you see what I mean?Olivier Dupuis
01/26/2023, 9:25 PMowen
01/26/2023, 10:46 PMNoam Finkelstein
01/27/2023, 4:20 PMSourceAsset
class and the non_argument_dependencies
parameter, and lean into giving dagster full flexibility in terms of scheduling execution. We'll have a lot of data flowing in and out of the database, so dealing with a blocking dbt call would be inefficient. It's good to know what the options are!