<?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: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring? in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168135#M55852</link>
    <description>&lt;P&gt;Fair point, the ID joins do get heavy in a federated model. Two things that help:&lt;/P&gt;
&lt;P&gt;For Predictive Optimization specifically, you can skip the billing join entirely. system.storage.predictive_optimization_operations_history already reports catalog, schema, table, and table_id per operation alongside estimated DBUs, so PO cost attributes to a table directly from that table.&lt;/P&gt;
&lt;P&gt;To avoid maintaining a mapping table, join to the UC tag system tables (system.information_schema.table_tags, with schema_tags/catalog_tags for rollup) instead of a hand-kept lookup. Each team's own tags in UC become the source of truth, so there's nothing to babysit. The same idea works for billing-only usage via the stable schema_id/table_id in usage_metadata.&lt;/P&gt;
&lt;P&gt;On native UC object tag propagation into custom_tags: not supported today, and I can't speak to roadmap here.&lt;/P&gt;</description>
    <pubDate>Wed, 09 Sep 2026 23:53:31 GMT</pubDate>
    <dc:creator>stbjelcevic</dc:creator>
    <dc:date>2026-09-09T23:53:31Z</dc:date>
    <item>
      <title>Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168109#M55841</link>
      <description>&lt;P&gt;I am looking at a scenario for&lt;STRONG&gt; team-level cost&lt;/STRONG&gt; attribution using &lt;STRONG&gt;system.billing.usage&lt;/STRONG&gt; and have a tagging gap for Databricks-managed services such as &lt;EM&gt;Predictive Optimization&lt;/EM&gt; and &lt;EM&gt;Data Quality Monitoring.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Tried adding a team/ownership tag directly to the underlying Unity Catalog table, expecting that when Predictive Optimization or Data Quality Monitoring operates on that table, the tag would propagate to the corresponding billing usage.&lt;/P&gt;&lt;P&gt;However, it's not the reflected in :&amp;nbsp;system.billing.usage.custom_tags&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Usage can be identified with:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SELECT
    usage_date,
    billing_origin_product,
    sku_name,
    usage_metadata.schema_id,
    custom_tags,
    usage_quantity
FROM system.billing.usage
WHERE billing_origin_product IN (
    'PREDICTIVE_OPTIMIZATION',
    'DATA_QUALITY_MONITORING',
    'LAKEHOUSE_MONITORING'
)
ORDER BY usage_date DESC;&lt;/LI-CODE&gt;&lt;P&gt;&lt;STRONG&gt;Trying to determine whether the following attribution flow is supported:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;UC Table
  team = "team-a"
       ↓
Predictive Optimization / DQ Monitoring
       ↓
Databricks-managed compute
       ↓
system.billing.usage.custom_tags
  team = "team-a"&lt;/LI-CODE&gt;&lt;P&gt;Is propagation of catalog/schema/table tags into billing usage supported for these services?&lt;/P&gt;&lt;P&gt;If not, what could be the recommended way to attribute Predictive Optimization and Data Quality Monitoring costs back to the team owning the underlying table/schema?&lt;/P&gt;&lt;P&gt;We are currently considering a separate object-to-team mapping for cost attribution (Kind of mapping table), but wanted to check whether there is a native/supported mechanism before doing so.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 15:46:07 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168109#M55841</guid>
      <dc:creator>data_pulse</dc:creator>
      <dc:date>2026-09-09T15:46:07Z</dc:date>
    </item>
    <item>
      <title>Re: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168121#M55848</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/250262"&gt;@data_pulse&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;Short answer: no, that propagation isn't supported. Unity Catalog catalog/schema/table tags do not flow into &lt;CODE&gt;system.billing.usage.custom_tags&lt;/CODE&gt; for Predictive Optimization, Data Quality Monitoring, or Lakehouse Monitoring. This is by design, not a gap in how you've set things up.&lt;BR /&gt;&lt;BR /&gt;The reason is what &lt;CODE&gt;custom_tags&lt;/CODE&gt; is scoped to. It only reflects tags applied to compute resources: workspaces, pools, clusters, SQL warehouses, database instances, and serverless usage policies (&lt;A href="https://docs.databricks.com/aws/en/admin/account-settings/usage-detail-tags" target="_self"&gt;billing tag docs&lt;/A&gt;). Predictive Optimization and Data Quality Monitoring run on Databricks-managed background compute that you don't own or configure, so there's no taggable compute resource for a UC object tag to attach to. Databricks documents the same behavior for materialized views and streaming tables: object-level tags are "not automatically appended to billing records" and have to be joined in manually (&lt;A href="https://docs.databricks.com/aws/en/dlt/dbsql/materialized-monitor" target="_self"&gt;materialized view monitoring docs&lt;/A&gt;).&lt;BR /&gt;&lt;BR /&gt;What does work today is &lt;CODE&gt;usage_metadata&lt;/CODE&gt;. For these services it carries the object identifier, &lt;CODE&gt;schema_id&lt;/CODE&gt; for anomaly detection and &lt;CODE&gt;table_id&lt;/CODE&gt; for data profiling (&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/billing" target="_self"&gt;billing system table reference&lt;/A&gt;). That gives you two ways to attribute the cost back to the owning object.&lt;BR /&gt;&lt;BR /&gt;1. Governed UC tags plus a manual join. If you already apply a &lt;CODE&gt;team&lt;/CODE&gt; governed tag to your objects, you can join usage to the tag system tables (the same &lt;CODE&gt;table_tags&lt;/CODE&gt; join the materialized view docs point to) instead of maintaining a separate list. Lower maintenance, since it reuses tags you're already applying.&lt;BR /&gt;&lt;BR /&gt;2. Object-to-team mapping table. Your instinct here is the right fallback. Key it on the &lt;CODE&gt;schema_id&lt;/CODE&gt;/&lt;CODE&gt;table_id&lt;/CODE&gt; that appear in &lt;CODE&gt;usage_metadata&lt;/CODE&gt; so you never have to resolve names:&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;PRE&gt;sql
-- mapping you maintain
CREATE TABLE my_catalog.billing.team_ownership_map (
  object_id   STRING,   -- schema_id or table_id from usage_metadata
  object_type STRING,   -- 'schema' or 'table'
  team        STRING,
  cost_center STRING
);

-- attribution query
SELECT
  u.billing_origin_product,
  m.team,
  m.cost_center,
  SUM(u.usage_quantity) AS total_dbus
FROM system.billing.usage u
LEFT JOIN my_catalog.billing.team_ownership_map m
  ON m.object_id = COALESCE(u.usage_metadata.table_id, u.usage_metadata.schema_id)
WHERE u.billing_origin_product IN (
  'PREDICTIVE_OPTIMIZATION',
  'DATA_QUALITY_MONITORING',
  'LAKEHOUSE_MONITORING'
)
GROUP BY ALL&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;Both patterns are what teams use in practice for background-compute attribution. There's no native "tag the table, see it in billing" path for these services today, so one of the two joins above is the way to go&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 18:38:25 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168121#M55848</guid>
      <dc:creator>stbjelcevic</dc:creator>
      <dc:date>2026-09-09T18:38:25Z</dc:date>
    </item>
    <item>
      <title>Re: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168126#M55850</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/167034"&gt;@stbjelcevic&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the response and clarification. We are currently relying on &lt;STRONG&gt;usage_metadata&lt;/STRONG&gt; IDs as work around mentioned but this adds bit of &lt;STRONG&gt;maintenance&lt;/STRONG&gt; &lt;STRONG&gt;overhead&lt;/STRONG&gt; in &lt;STRONG&gt;federated&lt;/STRONG&gt; team model with many team owned data products.&lt;/P&gt;&lt;P&gt;With &lt;STRONG&gt;materialized&lt;/STRONG&gt; &lt;STRONG&gt;views&lt;/STRONG&gt;/&lt;STRONG&gt;streaming&lt;/STRONG&gt; tables, there is at least an associated &lt;STRONG&gt;compute&lt;/STRONG&gt; context that can be used for attribution. PO/DQ is slightly different because the processing runs on Databricks managed serverless where we don't have an underlying compute resource to tag.&lt;/P&gt;&lt;P&gt;Is there anything in the roadmap to support UC object table/schema tags as native attribution mechanism for PO/DQ?&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 19:39:00 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168126#M55850</guid>
      <dc:creator>data_pulse</dc:creator>
      <dc:date>2026-09-09T19:39:00Z</dc:date>
    </item>
    <item>
      <title>Re: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168131#M55851</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Thanks for the follow-up &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/250262"&gt;@data_pulse&lt;/a&gt;&amp;nbsp;. There is no native propagation of UC catalog, schema, or table tags into &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;system.billing.usage.custom_tags&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt; for Predictive Optimisation or Data Quality Monitoring today, and I have not found a public roadmap commitment for that capability.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;There are, however, supported attribution surfaces available now:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Predictive Optimization: &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;system.storage.predictive_optimization_operations_history &lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt;provides the &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;table_id&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt;, catalog/schema/table names, and estimated DBUs.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Data Quality Monitoring: &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;system.billing.usage&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt; provides &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;usage_metadata.schema_id&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt; for anomaly detection and &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;usage_metadata.table_id&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt; for data profiling.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;For a federated model, the practical approach is a centrally managed ownership dimension keyed by the stable schema/table IDs. That dimension can be populated or validated from your UC ownership tags, but the final attribution remains a post-processing join rather than native billing-tag propagation.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;References:&lt;/SPAN&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/predictive-optimization" target="_blank" rel="noopener"&gt;&lt;SPAN&gt; Predictive Optimization system table&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; and&lt;/SPAN&gt;&lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/billing" target="_blank" rel="noopener"&gt;&lt;SPAN&gt; billable usage system table&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 21:22:12 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168131#M55851</guid>
      <dc:creator>Gokul_Pillai1</dc:creator>
      <dc:date>2026-09-09T21:22:12Z</dc:date>
    </item>
    <item>
      <title>Re: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168135#M55852</link>
      <description>&lt;P&gt;Fair point, the ID joins do get heavy in a federated model. Two things that help:&lt;/P&gt;
&lt;P&gt;For Predictive Optimization specifically, you can skip the billing join entirely. system.storage.predictive_optimization_operations_history already reports catalog, schema, table, and table_id per operation alongside estimated DBUs, so PO cost attributes to a table directly from that table.&lt;/P&gt;
&lt;P&gt;To avoid maintaining a mapping table, join to the UC tag system tables (system.information_schema.table_tags, with schema_tags/catalog_tags for rollup) instead of a hand-kept lookup. Each team's own tags in UC become the source of truth, so there's nothing to babysit. The same idea works for billing-only usage via the stable schema_id/table_id in usage_metadata.&lt;/P&gt;
&lt;P&gt;On native UC object tag propagation into custom_tags: not supported today, and I can't speak to roadmap here.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 23:53:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168135#M55852</guid>
      <dc:creator>stbjelcevic</dc:creator>
      <dc:date>2026-09-09T23:53:31Z</dc:date>
    </item>
    <item>
      <title>Re: Do UC table tags propagate to billing for Predictive Optimization and Data Quality Monitoring?</title>
      <link>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168184#M55863</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/167034"&gt;@stbjelcevic&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks, that was helpful and gave another way to solve this use case.&lt;/P&gt;&lt;P&gt;Instead of maintaining a separate table for object to team mapping table, can now use UC tags as the ownership source with precedence:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;table tag -&amp;gt; schema tag -&amp;gt; catalog tag&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;and join that to &lt;STRONG&gt;system.storage.predictive_optimization_operations_history.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Query shape now looks like:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SELECT
  DATE(po.start_time) AS usage_date,
  po.catalog_name,
  po.schema_name,
  po.table_name,
  st.tag_value AS team,
  po.operation_type,
  SUM(po.usage_quantity) AS estimated_dbus
FROM system.storage.predictive_optimization_operations_history po
LEFT JOIN system.information_schema.schema_tags st
  ON po.catalog_name = st.catalog_name
 AND po.schema_name = st.schema_name
 AND LOWER(st.tag_name) IN ('team', 'team_name')
WHERE po.usage_unit = 'ESTIMATED_DBU'
GROUP BY ALL;&lt;/LI-CODE&gt;&lt;P&gt;This gives the PO estimated DBUs by team directly from UC ownership tags. We can extend the same pattern with table and catalog tags as fallbacks.&lt;/P&gt;&lt;P&gt;The only &lt;STRONG&gt;caveat&lt;/STRONG&gt; is that these are estimated DBUs, so would still need to reconcile them with &lt;STRONG&gt;system.billing.usage&lt;/STRONG&gt; for actual billing/cost reporting.&lt;/P&gt;&lt;P&gt;For &lt;STRONG&gt;DQ Monitoring&lt;/STRONG&gt;, found a similar potential path. &lt;STRONG&gt;system.billing.usage&lt;/STRONG&gt; exposes &lt;STRONG&gt;schema_id&lt;/STRONG&gt; / &lt;STRONG&gt;table_id&lt;/STRONG&gt;&amp;nbsp;and &lt;STRONG&gt;system.data_quality_monitoring.table_results&lt;/STRONG&gt; exposes those IDs together with the catalog/schema/table names. This should resolve the billed object back to its UC ownership tags without maintaining mapping table.&lt;BR /&gt;I haven’t validated it yet as currently don't have access to the DQ monitoring system table, but we’ll test it once access is enabled.&lt;/P&gt;&lt;P&gt;So the attribution path now looks like:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PO:&lt;/STRONG&gt; PO operations history → UC object → UC ownership tag → team → reconcile with billing.&lt;BR /&gt;&lt;STRONG&gt;DQ:&lt;/STRONG&gt; Billing schema_id/table_id&amp;nbsp;→ DQ table_results → UC object → UC ownership tag → team&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2026 09:46:03 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/do-uc-table-tags-propagate-to-billing-for-predictive/m-p/168184#M55863</guid>
      <dc:creator>data_pulse</dc:creator>
      <dc:date>2026-09-10T09:46:03Z</dc:date>
    </item>
  </channel>
</rss>

