<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Incomplete downstream dependencies in system.access.column_lineage in Data Governance</title>
    <link>https://community.databricks.com/t5/data-governance/incomplete-downstream-dependencies-in-system-access-column/m-p/162285#M2899</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/244151"&gt;@antoine_pac&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I think this is expected behaviour, and you have already identified the reason in your query.&amp;nbsp; The public docs for &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;lineage system tables&lt;/A&gt; explicitly say that both lineage tables represent only a subset of read/write events, and that "records are only emitted when lineage can be inferred." The broader &lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/data-lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;Unity Catalog lineage documentation&lt;/A&gt; also says that Databricks captures column lineage “as much as possible,” and notes that there are cases where column-level lineage cannot be captured.&lt;/P&gt;
&lt;P&gt;In your example query, it makes sense that account.entity may not appear as an upstream dependency for the target table in system.access.column_lineage, because that column is being used in the join predicate rather than flowing into a projected target column. system.access.column_lineage is most reliable for source-to-target column derivation, not necessarily for every column referenced somewhere in the query logic.&lt;/P&gt;
&lt;P&gt;If your intention is to do the impact analysis, you can probably use &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;system.access.table_lineage&lt;/A&gt; to find downstream tables that depend on the source table at all first. You can then&amp;nbsp;use system.access.column_lineage for direct column-to-column mappings. You can&amp;nbsp;treat join/filter/predicate-only column usage as something that may require checking the defining SQL or query history separately.&lt;/P&gt;
&lt;P&gt;I couldn't find any references that says this is under consideration for development but if this is really important for you, you should consider reaching out to your Databricks account team to request this as a feature or product enhancement.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps.&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 08 Jul 2026 20:41:29 GMT</pubDate>
    <dc:creator>Ashwin_DSA</dc:creator>
    <dc:date>2026-07-08T20:41:29Z</dc:date>
    <item>
      <title>Incomplete downstream dependencies in system.access.column_lineage</title>
      <link>https://community.databricks.com/t5/data-governance/incomplete-downstream-dependencies-in-system-access-column/m-p/162247#M2898</link>
      <description>&lt;DIV&gt;&lt;P&gt;Hi Community,&lt;/P&gt;&lt;P&gt;I'm currently facing an issue with the &lt;STRONG&gt;system.access.column_lineage&lt;/STRONG&gt; system table.&lt;/P&gt;&lt;P&gt;My goal is to assess the downstream impact of removing a column from a source table. I tried to use the column_lineage table for this purpose, but it seems that it does not capture all downstream dependencies.&lt;/P&gt;&lt;P&gt;For example, suppose the definition of my table &lt;STRONG&gt;test&lt;/STRONG&gt; is:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;SELECT&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; c.name,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; a.category&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;FROM contract c&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;LEFT JOIN account a&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; ON c.entity = a.entity&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;In this case, I do not see the &lt;STRONG&gt;entity&lt;/STRONG&gt; column from the &lt;STRONG&gt;account &lt;/STRONG&gt;table reported as an upstream dependency for the &lt;STRONG&gt;test&lt;/STRONG&gt; table. As a result, it is difficult to accurately assess the impact of dropping the &lt;STRONG&gt;entity&lt;/STRONG&gt; column from &lt;STRONG&gt;account&lt;/STRONG&gt;, since it is still required by the join condition.&lt;/P&gt;&lt;P&gt;I noticed the following statement in the documentation:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;"Records are only emitted when lineage can be inferred."&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Does this mean that the current behavior is expected?&lt;/P&gt;&lt;P&gt;If so, are there any plans to enhance the &lt;STRONG&gt;system.access.column_lineage&lt;/STRONG&gt; table in the future to provide a more complete level of column-level dependency tracking, including columns used in join predicates and other non-selected expressions?&lt;/P&gt;&lt;P&gt;Thanks in advance for your help.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 08 Jul 2026 14:17:41 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/incomplete-downstream-dependencies-in-system-access-column/m-p/162247#M2898</guid>
      <dc:creator>antoine_pac</dc:creator>
      <dc:date>2026-07-08T14:17:41Z</dc:date>
    </item>
    <item>
      <title>Re: Incomplete downstream dependencies in system.access.column_lineage</title>
      <link>https://community.databricks.com/t5/data-governance/incomplete-downstream-dependencies-in-system-access-column/m-p/162285#M2899</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/244151"&gt;@antoine_pac&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I think this is expected behaviour, and you have already identified the reason in your query.&amp;nbsp; The public docs for &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;lineage system tables&lt;/A&gt; explicitly say that both lineage tables represent only a subset of read/write events, and that "records are only emitted when lineage can be inferred." The broader &lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/data-lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;Unity Catalog lineage documentation&lt;/A&gt; also says that Databricks captures column lineage “as much as possible,” and notes that there are cases where column-level lineage cannot be captured.&lt;/P&gt;
&lt;P&gt;In your example query, it makes sense that account.entity may not appear as an upstream dependency for the target table in system.access.column_lineage, because that column is being used in the join predicate rather than flowing into a projected target column. system.access.column_lineage is most reliable for source-to-target column derivation, not necessarily for every column referenced somewhere in the query logic.&lt;/P&gt;
&lt;P&gt;If your intention is to do the impact analysis, you can probably use &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;system.access.table_lineage&lt;/A&gt; to find downstream tables that depend on the source table at all first. You can then&amp;nbsp;use system.access.column_lineage for direct column-to-column mappings. You can&amp;nbsp;treat join/filter/predicate-only column usage as something that may require checking the defining SQL or query history separately.&lt;/P&gt;
&lt;P&gt;I couldn't find any references that says this is under consideration for development but if this is really important for you, you should consider reaching out to your Databricks account team to request this as a feature or product enhancement.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps.&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jul 2026 20:41:29 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-governance/incomplete-downstream-dependencies-in-system-access-column/m-p/162285#M2899</guid>
      <dc:creator>Ashwin_DSA</dc:creator>
      <dc:date>2026-07-08T20:41:29Z</dc:date>
    </item>
  </channel>
</rss>

