Ejemplo n.º 1
0
 def dbt_run_with_custom_assets(context):
     dbt_result = context.resources.dbt.run()
     for materialization in generate_materializations(dbt_result):
         yield materialization._replace(
             metadata_entries=[...]  # insert whatever metadata you want here
         )
     yield Output(dbt_result)
Ejemplo n.º 2
0
def test_generate_materializations(sample):
    out = DbtOutput(result=sample)
    materializations = [mat for mat in generate_materializations(out)]

    assert len(materializations) == 3

    mat_names = {mat.asset_key for mat in materializations}

    assert mat_names == {AssetKey(["model", "my_schema", f"table_{i}"]) for i in range(1, 4)}
Ejemplo n.º 3
0
 def _dbt_project_multi_assset(context):
     dbt_output = context.resources.dbt.run(select=select)
     # yield an Output for each materialization generated in the run
     for materialization in generate_materializations(dbt_output):
         output_name = materialization.asset_key.path[-1]
         if runtime_metadata_fn:
             yield Output(
                 value=None,
                 output_name=output_name,
                 metadata=runtime_metadata_fn(context, out_name_to_node_info[output_name]),
             )
         else:
             yield Output(
                 value=None,
                 output_name=output_name,
                 metadata_entries=materialization.metadata_entries,
             )