Malo PARIS
03/31/2023, 9:18 AM@asset()
def test_asset(context):
print(context.asset_name)
>>> test_asset
Thanks !Vinnie
03/31/2023, 10:11 AMcontext
arg by inspecting the OpExecutionContext
Class: https://github.com/dagster-io/dagster/blob/master/python_modules/dagster/dagster/_core/execution/context/compute.py#L91
From then it’s just a matter of figuring out what information you need exactlyMalo PARIS
03/31/2023, 11:12 AMVinnie
03/31/2023, 11:13 AMMalo PARIS
03/31/2023, 11:21 AM@asset(key_prefix=["ETL"],required_resource_keys={"my_sap_co"},retry_policy=sap_retry_policy)
def SAP_TABLE1(context):
my_connection = context.resources.my_sap_co
SAP_TABLE1 = my_connection.get_table(
table="SAP_TABLE1",
fields="F1,F2,F3",
filters=["Filter1","Filter2"])
return SAP_TABLE1
I would like to create a Yaml file containing all the parameters for each asset instead.
Example :
asset:
SAP_TABLE1:
fields: F1,F2,F3
filters:
- ["Filter1","Filter2"]
SAP_TABLE2:
fields: ....
filters:
- [....]
The ultimate goal is to be able to create assets on the fly by reading this Yaml file :)Charles
03/31/2023, 11:42 AMVinnie
03/31/2023, 11:46 AMdef make_sap_table(conf):
my_assets = []
for item in conf:
@asset(name=item.name, key_prefix=["ETL"],required_resource_keys={"my_sap_co"},retry_policy=sap_retry_policy)
def table_asset(context):
my_connection = context.resources.my_sap_co
SAP_TABLE = my_connection.get_table(
table=item.table,
fields=item.fields,
filters=item.filters)
return SAP_TABLE
my_assets.append(table_asset)
return my_assets
Malo PARIS
03/31/2023, 11:49 AM