Slackbot
02/22/2024, 1:43 PMScout
02/22/2024, 1:43 PMDagsterInstance
class to query the event log for materialization events related to the asset's partition. Here's an example based on the documentation: python from dagster import DagsterInstance, EventRecordsFilter, DagsterEventType, AssetKey def is_partition_materialized(asset_key: AssetKey, partition_key: str, instance: DagsterInstance) -> bool: return bool( instance.get_event_records( EventRecordsFilter( asset_key=asset_key, event_type=DagsterEventType.ASSET_MATERIALIZATION, asset_partitions=[partition_key], ), limit=1, ) )
In this function, you pass the AssetKey
of the asset you're interested in, the partition_key
for the specific partition, and a DagsterInstance
. The function queries the event log for materialization events for that partition and returns True
if there is at least one materialization event, indicating that the partition has been materialized. You can get the DagsterInstance
using context.instance
inside any Dagster function that accepts a context object. If you are outside of a Dagster context, you will need to create or get a reference to the DagsterInstance
in another way, which is typically done by using DagsterInstance.get()
. Please note that this code snippet is a direct example from the documentation, and you should ensure that you have the appropriate instance and asset information before using it in your code.Josh
02/22/2024, 1:46 PMScout
02/22/2024, 1:46 PMpartition_key
property on the AssetExecutionContext
or OpExecutionContext
. Here's how you can access it: python from dagster import asset @asset def my_asset(context): partition_key = context.partition_key <http://context.log.info|context.log.info>(f"The partition key is: {partition_key}")
In this example, context.partition_key
retrieves the partition key for the current run when the asset is being materialized. If the run is not a partitioned run, or if the run is operating over a range of partitions (e.g., a backfill of several partitions executed in a single run), accessing context.partition_key
will raise an error. Remember that this property is only available when the asset or op is being executed in the context of a partitioned run. If you're working with a partitioned asset, make sure that your asset definition includes a partitions_def
that defines how the partitions are structured.