Hi @prathamesh1982 ,
Good news: there's nothing to enable. @balajij8 has it right, Unity Catalog captures column-level lineage automatically. I'll add some prerequisites and gotchas to check if the lineage doesn't appear.
If your bronze and silver tables are registered in Unity Catalog and the bronze-to-silver transformation runs on UC-compliant compute, the lineage graph picks up column-level dependencies on its own. No pipeline changes, no configuration. Once the job or notebook runs, open Catalog Explorer, go to your silver table, click the Lineage tab, and select the target silver column. The graph filters down to show exactly which bronze columns feed it, plus anything downstream that consumes it. Since you mentioned only one or two bronze columns build the silver column, that's precisely the view you want.
If lineage isn't showing up, take a gander at these prerequisites:
- Both tables must live in Unity Catalog. Lineage isn't captured for tables in the legacy
hive_metastore.
- Your compute must be UC-compliant: a SQL warehouse, or a cluster in standard (shared) or dedicated (single user) access mode with Unity Catalog enabled.
- The transformation must use a supported interface, such as Spark DataFrame operations or SQL. RDD-based processing, some user-defined functions, and checkpointing can prevent lineage from being captured.
- Column lineage isn't captured if you reference the source or target by path, for example
SELECT * FROM delta.s3://bucket/path``. Read and write through the registered table names instead.
- Columns populated from explicit literal values (an
INSERT with hardcoded values) won't show column lineage, since there's no source column to trace.
- If you're building these tables with Lakeflow Spark Declarative Pipelines, column lineage requires DBR 13.3 LTS or above.
- To view lineage, you need at least
BROWSE on the parent catalog.
You can also pull this programmatically from the lineage system tables, as @balajij8 showed. Filtering on the target table is handy for your case:
sql
SELECT
source_table_full_name,
source_column_name,
target_table_full_name,
target_column_name,
event_time
FROM system.access.column_lineage
WHERE target_table_full_name = 'catalog.schema.silver_table'
ORDER BY event_time DESC;
Two caveats there. The system tables only contain events where lineage could be inferred, so not every expression or workload is guaranteed to show up. And they keep a rolling one-year window. For history beyond that, use Catalog Explorer or the lineage API, which retain lineage captured after September 1, 2024 indefinitely.
One last option: if your bronze data lives outside Unity Catalog or the transformation runs outside Databricks, you can use external lineage (currently in Public Preview) to add those relationships to the graph. Just know that external lineage isn't written to system.access.column_lineage.
References:
Regards,
Louis