Defining an asset
Place Python files underassets/ and decorate functions with @asset:
AssetContext and returns through ctx.result(...).
Materialization
Assets record whether they actually produced an artifact viamaterialized:
materialized=True- the artifact was produced this run.materialized=False- the asset ran but produced nothing (e.g. it only observed state). This is not a skip; the node still succeeded.
materialized; tasks do not.
Dependencies
Assets declare dependencies withdepends_on (a single function, tuple, or list), and may depend on tasks, assets, and loaders:
Columns and column lineage
Assets can declare a schema for catalog and lineage purposes. This does not enforce anything at runtime; it describes the artifact:columns- column declarations withname, optionaltype,nullable,description, andmeta.column_lineage- maps each asset column to upstream{node, column}references, surfaced in the DAG artifact and integrations.
columns or column_lineage.
Skipping and retries
Assets support the samectx.skip(...) and retry behavior as tasks:
Decorator parameters
Running assets
sqb build. Use --no-python to suppress read-side assets while still loading sources.
