<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Data Today: Databricks</title>
  <subtitle>Field notes for teams building on the Databricks Data Intelligence Platform.</subtitle>
  <link href="https://data-today.net/databricks/feed.xml" rel="self" />
  <link href="https://data-today.net/" />
  <updated>2026-08-10T00:00:00Z</updated>
  <id>https://data-today.net/</id>
  <author>
    <name>Data Today Newsroom</name>
  </author>
  <entry>
    <title>Databricks Unity AI Gateway hits GA: a governance guide</title>
    <link href="https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/" />
    <updated>2026-08-10T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/</id>
    <content type="html">&lt;p&gt;If your team has been stitching together access to Anthropic, OpenAI, and Gemini models across a dozen notebooks with no central audit trail and no one quite sure what the monthly AI bill is, Databricks shipped something for you. Unity AI Gateway reached general availability on August 4, 2026, bringing provider routing, MCP server governance, spend caps, and usage lineage under the Unity Catalog umbrella. The GA covers the core gateway: routing traffic, enforcing access controls, and reporting cost. Some of the more interesting capabilities, including Smart Routing and agent services, remain in Beta. If you are a workspace owner who influences the bill, this is the moment to decide what goes through the gateway and what stays direct.&lt;/p&gt;
&lt;h2 id=&quot;what-does-unity-ai-gateway-actually-do&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#what-does-unity-ai-gateway-actually-do&quot;&gt;&lt;span&gt;What does Unity AI Gateway actually do?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity AI Gateway is the Databricks governance solution for enterprise AI, built as a component of Unity Catalog. It sits between your applications, agents, and coding assistants and the model providers they call. Every AI request flows through the gateway, which applies your policies, records what happened, and reports back to a central dashboard.&lt;/p&gt;
&lt;p&gt;The four core capabilities are straightforward. You control which AI services teams can use, from external LLM providers to internal MCP servers. You route and manage AI traffic across providers, reserving expensive frontier models for tasks that need them. You govern MCP servers to control access and costs. And you monitor usage, cost, access, and lineage from one place.&lt;/p&gt;
&lt;p&gt;The gateway supports frontier models from &lt;strong&gt;Anthropic, OpenAI, Gemini, Kimi, and GLM&lt;/strong&gt; through a single-query API, according to the &lt;a href=&quot;https://www.databricks.com/blog/unity-ai-gateway-generally-available&quot;&gt;Databricks GA announcement&lt;/a&gt;. That means a developer can swap the model behind a request without rewriting application code: change a config, not a codebase.&lt;/p&gt;
&lt;p&gt;What makes this different from calling a provider API directly is that Unity Catalog&#39;s identity and permissions model extends to every AI interaction. The same RBAC you use for tables and volumes now covers AI traffic. A user who loses access to a model sees that enforced at the gateway, not just at the application layer. The gateway also provides end-to-end observability and granular cost attribution across models, providers, teams, and applications, all centralized in Unity Catalog.&lt;/p&gt;
&lt;h2 id=&quot;how-does-provider-routing-work&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#how-does-provider-routing-work&quot;&gt;&lt;span&gt;How does provider routing work?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity AI Gateway exposes a single API endpoint that fronts multiple providers. Instead of pointing your application at a provider URL, you point it at the gateway. The gateway then forwards the request to the provider you configured.&lt;/p&gt;
&lt;p&gt;In its GA form, routing is &lt;strong&gt;policy-based&lt;/strong&gt;: you define which models are available and which teams can use them. A team building a coding assistant might get access to Claude and GPT-4, while a team running summarization gets routed to a cheaper model. You make the routing decision in configuration, and the gateway enforces it.&lt;/p&gt;
&lt;p&gt;The more interesting piece is &lt;strong&gt;Smart Routing&lt;/strong&gt;, which remains in Beta. Smart Routing dynamically routes each request to the right model based on factors like quality, cost, performance, availability, and budget. The gateway evaluates each incoming request and picks the model that best fits your configured trade-offs, reserving the most capable and expensive models for tasks that need them while routing routine work to more efficient options. Databricks says interested teams should contact their account team to join the Beta.&lt;/p&gt;
&lt;p&gt;Here is what a basic gateway query looks like in SQL, using the Databricks &lt;code&gt;ai_query&lt;/code&gt; function:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;-- Query a model registered in Unity Catalog through the gateway&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt; ai_query&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&#39;my_catalog.my_schema.my_claude_model&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&#39;Explain RBAC in one sentence&#39;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;ai_query&lt;/code&gt; function sends the request through the gateway, which applies your policies, forwards it to Anthropic, and logs the token usage and cost. Swap the model name and the same function hits a different provider.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-unity-ai-gateway-ga-guide-fig-capability-status.png&quot; alt=&quot;Horizontal bar chart showing four Unity AI Gateway capabilities at GA status (core routing, provider integration, spend budgets, monitoring dashboards) and four at Beta status (service policies, agent services, Smart Routing, MCP connectors).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: Unity AI Gateway capabilities split between GA (100) and Beta (50). Source: Databricks release notes, August 2026. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The chart above shows which Unity AI Gateway capabilities shipped as GA versus Beta in the August 2026 release. The four GA capabilities are core gateway routing, provider integration via the single-query API, spend budgets and caps, and usage monitoring with Genie-powered dashboards. The four Beta capabilities are service policies, agent services, Smart Routing, and MCP connector integration.&lt;/p&gt;
&lt;h2 id=&quot;what-does-it-cost-to-run&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#what-does-it-cost-to-run&quot;&gt;&lt;span&gt;What does it cost to run?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here is the part that matters to anyone who signs off on the bill. Unity AI Gateway itself is &lt;strong&gt;a feature of Unity Catalog, not a separately priced SKU&lt;/strong&gt;. You do not pay a gateway subscription fee. What you do pay for is the compute and token consumption that flows through it.&lt;/p&gt;
&lt;p&gt;There are two cost surfaces to track:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Provider token costs&lt;/strong&gt;: Every request routed through the gateway to an external provider like Anthropic or OpenAI incurs that provider&#39;s per-token pricing. The gateway records these costs in its dashboards, but the billing flows through your existing provider relationship.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Databricks compute&lt;/strong&gt;: If you are running Databricks-hosted models via Foundation Model APIs, you pay DBUs based on the provisioned throughput. The gateway does not add a surcharge on top of provider token costs.&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cost surface&lt;/th&gt;
&lt;th&gt;What you pay&lt;/th&gt;
&lt;th&gt;Who bills you&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;External provider tokens&lt;/td&gt;
&lt;td&gt;Per-token pricing from the provider&lt;/td&gt;
&lt;td&gt;Anthropic, OpenAI, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Databricks-hosted models&lt;/td&gt;
&lt;td&gt;DBUs based on provisioned throughput&lt;/td&gt;
&lt;td&gt;Databricks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gateway infrastructure&lt;/td&gt;
&lt;td&gt;No separate charge; included in Unity Catalog&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The financial value proposition is spend control, not spend reduction. The gateway gives you &lt;strong&gt;proactive budgets and hard spend caps&lt;/strong&gt; so a runaway agent cannot quietly burn through a provider quota. You set a monthly cap per team or per application, and the gateway enforces it at runtime. The out-of-the-box dashboards surface cost by model, team, and application. That attribution is the real win for a workspace owner who has been trying to explain an unpredictable monthly AI bill to finance.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-set-it-up&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#how-do-you-set-it-up&quot;&gt;&lt;span&gt;How do you set it up?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Setting up Unity AI Gateway requires admin access to Unity Catalog. The high-level flow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Register providers and models&lt;/strong&gt; in Unity Catalog so the gateway knows what is available.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define service policies&lt;/strong&gt; that map teams or applications to allowed models. Note that service policies remain in Beta.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set spend budgets&lt;/strong&gt; per team or application using the gateway&#39;s budget configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Point your applications&lt;/strong&gt; at the gateway endpoint instead of calling providers directly.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For MCP servers, the August 6 release note confirms that all Databricks-managed MCP connectors for Genie One and Genie Code have migrated to Unity AI Gateway. If your team uses these connectors, &lt;strong&gt;users must reauthenticate&lt;/strong&gt; to continue using them. A notification in Genie prompts impacted users to reconnect.&lt;/p&gt;
&lt;p&gt;Here is how you might call the gateway from a Python application using a REST endpoint:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; requests

&lt;span class=&quot;token comment&quot;&gt;# Route a completion through Unity AI Gateway&lt;/span&gt;
response &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; requests&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;post&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;token string&quot;&gt;&quot;https://&amp;lt;workspace&gt;.cloud.databricks.com/api/2.0/ai-gateway/query&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    headers&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Authorization&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&quot;Bearer &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;token&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    json&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token string&quot;&gt;&quot;model&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;my_catalog.my_schema.my_claude_model&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token string&quot;&gt;&quot;messages&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Summarize this table schema&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# The gateway logs the request, applies policies,&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# and returns the response with token usage metadata&lt;/span&gt;
result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; response&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;json&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;result&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;get&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;usage&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;get&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;total_tokens&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The API contract is the same whether the model is hosted on Databricks or external. The gateway abstracts the provider difference. For a deeper walk through the budget and spend-cap mechanics, read our &lt;a href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/&quot;&gt;Unity AI Gateway budgets guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-is-still-in-beta-and-what-should-you-wait-on&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#what-is-still-in-beta-and-what-should-you-wait-on&quot;&gt;&lt;span&gt;What is still in Beta and what should you wait on?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Several capabilities shipped as Beta alongside the GA core. Service policies, the engine that maps who-can-use-what at a fine-grained level, are still in Beta. You can register models and route traffic in GA, but the policy enforcement layer may not be fully stable. Agent services, including agent runtime policies and agent-level spend controls, also remain in Beta.&lt;/p&gt;
&lt;p&gt;Smart Routing, the dynamic per-request model selection feature, is in Beta. Static routing where you pick the model is GA. MCP connector integration, while migrated to the gateway, is tagged Beta.&lt;/p&gt;
&lt;p&gt;If your use case is routing all coding assistant traffic through one audited endpoint with a spend cap, the GA core covers you. If you want the gateway to automatically pick the cheapest model that meets a quality bar on every request, you are waiting on Smart Routing to leave Beta.&lt;/p&gt;
&lt;h2 id=&quot;when-is-it-the-wrong-choice&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#when-is-it-the-wrong-choice&quot;&gt;&lt;span&gt;When is it the wrong choice?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity AI Gateway is not a model hosting platform. If your workload is a single Databricks-hosted model serving internal traffic with no external providers involved, the gateway adds a hop without adding much value. You already get lineage and access control through Unity Catalog and Model Serving.&lt;/p&gt;
&lt;p&gt;It is also not a replacement for a full LLM observability platform. The dashboards surface cost and access, which is valuable, but if you need deep evaluation metrics like answer faithfulness, retrieval quality, or hallucination tracking, you will need a dedicated eval tool on top.&lt;/p&gt;
&lt;p&gt;Finally, if your team has not yet adopted Unity Catalog for data governance, the gateway is not a shortcut. It depends on Unity Catalog&#39;s identity and permissions model. No Unity Catalog, no Unity AI Gateway.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-do-this-week&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#what-should-you-do-this-week&quot;&gt;&lt;span&gt;What should you do this week?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you are already on Unity Catalog and routing AI traffic to external providers, start planning the migration now.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inventory every place&lt;/strong&gt; your code calls an external provider API directly. Each one is a candidate for gateway routing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Register your models&lt;/strong&gt; in Unity Catalog so the gateway can route to them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set a spend cap&lt;/strong&gt; on each team or application before you route production traffic. A cap you set before launch is a cap you control. A cap you set after an incident is a cap you explain to finance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reauthenticate MCP connectors&lt;/strong&gt; if your team uses Genie One or Genie Code. The migration to the gateway requires users to reconnect.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Watch the dashboards&lt;/strong&gt; for a week before you turn on Smart Routing. You need baseline cost data to know whether dynamic routing is actually saving you money.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;the-bottom-line&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#the-bottom-line&quot;&gt;&lt;span&gt;The bottom line&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity AI Gateway at GA is a governance layer, not a performance layer. It will not make your models faster or cheaper. What it does is give you one audited, policy-enforced path between your teams and the model providers they use, with spend caps and lineage that finance can actually read. If you are spending real money on external LLM providers through Databricks, the GA core is ready to use. The Smart Routing Beta is the feature to watch, but do not wait for it to start governing your AI traffic.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-unity-ai-gateway-ga-guide/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/august&quot;&gt;Databricks&lt;/a&gt; ,  August 2026 release notes&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.databricks.com/blog/unity-ai-gateway-generally-available&quot;&gt;Databricks&lt;/a&gt; ,  Unity AI Gateway is Generally Available&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://community.databricks.com/t5/announcements/announcement-unity-ai-gateway-is-generally-available/td-p/164943&quot;&gt;Databricks Community&lt;/a&gt; ,  Announcement: Unity AI Gateway is Generally Available&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks RBAC public preview: the exclusive access shift</title>
    <link href="https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/" />
    <updated>2026-07-27T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/</id>
    <content type="html">&lt;p&gt;Databricks just changed how permissions resolve in a session, and if you run governed or multi-tenant workloads, you need to understand the model before you flip the switch. Databricks RBAC, or role-based access control, &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#role-based-access-control-rbac-is-in-public-preview&quot;&gt;entered Public Preview&lt;/a&gt; on July 22, 2026, and it introduces a concept the platform has never had: exclusive, role-scoped access on top of Unity Catalog. Users who assume a role get &lt;strong&gt;only that role&#39;s permissions&lt;/strong&gt; for the duration of the session, not their own accumulated grants. That sounds simple, but it is a fundamental departure from the additive model Unity Catalog has used since launch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The preview is account-level opt-in with workspace-by-workspace rollout, and it changes the permission resolution model your existing queries and pipelines already depend on.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It matters most for regulated environments where mixing data across projects, clients, or clinical trials is a compliance violation, not just a bad day at the keyboard. If you have ever answered an auditor&#39;s question with &amp;quot;well, technically the group grants let them see it, but nobody would actually query it,&amp;quot; RBAC is the feature that retires that answer.&lt;/p&gt;
&lt;h2 id=&quot;what-does-databricks-rbac-actually-do&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#what-does-databricks-rbac-actually-do&quot;&gt;&lt;span&gt;What does Databricks RBAC actually do?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The core idea is role assumption, not role assignment. In Unity Catalog today, your effective permissions are the union of every grant given to you directly plus every grant given to every group you belong to. If you are in five groups, you carry all five groups&#39; permissions into every session, every query, every notebook. You cannot shed them. You cannot say &amp;quot;for this session, I only want the finance role&#39;s access.&amp;quot;&lt;/p&gt;
&lt;p&gt;RBAC changes that. When a user assumes a role, Databricks &lt;strong&gt;replaces their accumulated permissions with only that role&#39;s grants&lt;/strong&gt; for the duration of the session. The user&#39;s own direct grants, their group memberships, their inherited access: all suspended. What remains is the role&#39;s scoped permission set, and nothing else.&lt;/p&gt;
&lt;p&gt;Databricks calls this &amp;quot;exclusive access.&amp;quot; The word does two things. It means the role&#39;s permissions are the only ones in play, and it means the user must actively choose to assume the role to reach sensitive data. They cannot stumble into it through their default identity. They cannot mix data from two roles in one session. Each role assumption is a deliberate, auditable act.&lt;/p&gt;
&lt;p&gt;The release notes call out specific use cases: &lt;strong&gt;clinical trials, projects, clients.&lt;/strong&gt; The pattern is the same in each. You have a person who needs access to multiple isolated datasets, but never simultaneously, and never in a way that lets data from one context bleed into another.&lt;/p&gt;
&lt;h2 id=&quot;how-is-this-different-from-unity-catalogs-existing-permissions&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#how-is-this-different-from-unity-catalogs-existing-permissions&quot;&gt;&lt;span&gt;How is this different from Unity Catalog&#39;s existing permissions?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is the question that determines whether RBAC is a net positive for your workspace or a source of headaches. Unity Catalog&#39;s existing model is additive and identity-based. You grant USE on a catalog to a group, add users to that group, and those users can query that catalog in any session, alongside every other catalog they can reach.&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;-- Standard Unity Catalog: grants are additive&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;GRANT&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;USE&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;ON&lt;/span&gt; CATALOG marketing &lt;span class=&quot;token keyword&quot;&gt;TO&lt;/span&gt; analytics_team&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;GRANT&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;TABLE&lt;/span&gt; marketing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;campaigns &lt;span class=&quot;token keyword&quot;&gt;TO&lt;/span&gt; analytics_team&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;-- User in analytics_team carries these grants in EVERY session&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The model is simple, it scales for read-mostly analytics, and it has a known weakness: privilege accumulation. A user in three groups reaches everything any of those groups can touch, in every session, whether they need it or not.&lt;/p&gt;
&lt;p&gt;Imagine a data engineer who belongs to three groups: analytics, finance, and platform admin. The chart below shows what happens to their catalog access under each model.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-rbac-exclusive-access-preview-fig-permission-comparison.png&quot; alt=&quot;Bar chart illustrating Databricks RBAC: without RBAC a user reaches 6 catalogs through accumulated grants; with RBAC, assuming one of three roles exposes only 2 catalogs each&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: A user belonging to three groups accesses 6 catalogs through accumulated Unity Catalog grants. Under Databricks RBAC, assuming a single role exposes only that role&#39;s 2 catalogs. Source: Databricks release notes, July 2026. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Without RBAC, the user reaches 6 catalogs&lt;/strong&gt; through accumulated grants. With RBAC, assuming one role exposes &lt;strong&gt;only 2.&lt;/strong&gt; The other 4 are invisible for that session. Not masked, not filtered behind a view. Genuinely inaccessible, because the session&#39;s permission set is the role&#39;s, not the user&#39;s.&lt;/p&gt;
&lt;p&gt;Here is a three-way comparison of the access models now available on the platform:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Unity Catalog groups (existing)&lt;/th&gt;
&lt;th&gt;RBAC role assumption (new)&lt;/th&gt;
&lt;th&gt;Service principal tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Permission resolution&lt;/td&gt;
&lt;td&gt;Additive: user grants plus all group grants combine&lt;/td&gt;
&lt;td&gt;Exclusive: only the assumed role&#39;s grants apply&lt;/td&gt;
&lt;td&gt;Additive: all grants to the SP combine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session scope&lt;/td&gt;
&lt;td&gt;Every session, every tool&lt;/td&gt;
&lt;td&gt;Duration of the assumed-role session only&lt;/td&gt;
&lt;td&gt;Token lifetime, typically automated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who configures it&lt;/td&gt;
&lt;td&gt;Workspace admins via GRANT and ALTER statements&lt;/td&gt;
&lt;td&gt;Account admin enables preview, workspace admin enables per workspace&lt;/td&gt;
&lt;td&gt;Account admin creates SP, workspace admin grants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best fit&lt;/td&gt;
&lt;td&gt;Shared team analytics, broad read access&lt;/td&gt;
&lt;td&gt;Regulated isolation, clinical trials, multi-tenant separation&lt;/td&gt;
&lt;td&gt;CI/CD, scheduled jobs, automation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;GA&lt;/td&gt;
&lt;td&gt;Public Preview&lt;/td&gt;
&lt;td&gt;GA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The critical row is permission resolution. Every other Databricks access model is additive. RBAC is the first exclusive one. That is why it sits in a new category rather than being a refinement of existing group permissions.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-turn-it-on&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#how-do-you-turn-it-on&quot;&gt;&lt;span&gt;How do you turn it on?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The enablement is two-step, and the order matters. An &lt;strong&gt;account admin turns on the preview at the account level first.&lt;/strong&gt; Only after that can workspace admins enable RBAC in each individual workspace. There is no global on-switch that activates RBAC across every workspace in your account, which gives you a controlled rollout path: turn on the account-level preview, pick one workspace, enable it there, test, then expand.&lt;/p&gt;
&lt;p&gt;The release notes do not specify a separate billing line item for RBAC. Based on the feature description, it appears to be a governance capability layered on top of Unity Catalog, not a separately metered service. What you pay for is the compute you run while interacting with governed data, same as today.&lt;/p&gt;
&lt;p&gt;One thing to check before you enable anything: your existing group structure. RBAC roles are a new construct, not a rename of Unity Catalog groups. If your groups are a tangle of overlapping grants accumulated over years, you will need to clean that up before you can define meaningful roles. The role design is where the work is, not the toggle.&lt;/p&gt;
&lt;p&gt;Also note that releases are staged. Databricks says your account might not be updated until a week or more after the &lt;strong&gt;July 22 release date&lt;/strong&gt;. If you do not see the preview toggle yet, wait.&lt;/p&gt;
&lt;h2 id=&quot;what-breaks-or-changes-when-rbac-is-active&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#what-breaks-or-changes-when-rbac-is-active&quot;&gt;&lt;span&gt;What breaks or changes when RBAC is active?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is where you need to pay attention. When a user assumes a role, their own permissions are suspended for that session. That means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scheduled jobs running as a user identity may fail&lt;/strong&gt; if the user assumes a role that lacks the job&#39;s required grants. Any pipeline that depends on accumulated group permissions to reach multiple catalogs will break when the session is role-scoped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notebooks that query across catalogs from different roles will fail.&lt;/strong&gt; If your analysis joins marketing data with finance data, and those live in separate role scopes, no single role assumption gives you both. You would need two sessions and staged intermediate results.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Service principals are unaffected&lt;/strong&gt; unless you also configure role assumption for them. RBAC applies to user sessions. Your automation, if it runs as a service principal with its own grants, continues to use the additive model.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The pattern to watch for is the same one that caught teams off guard when Databricks shipped &lt;a href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/&quot;&gt;PAT auto-scoping&lt;/a&gt;: a permission change that sounds like a tightening turns out to break jobs that quietly depended on the old, looser behavior. The difference here is that RBAC is opt-in and session-scoped, so it will not break anything until someone actually assumes a role. But once they do, every assumption carries the same risk.&lt;/p&gt;
&lt;h2 id=&quot;when-should-you-skip-rbac-and-when-is-it-essential&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#when-should-you-skip-rbac-and-when-is-it-essential&quot;&gt;&lt;span&gt;When should you skip RBAC, and when is it essential?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Skip it if your workspace is a single-team analytics environment where everyone who can see the data is allowed to see all of the data. RBAC&#39;s value comes from isolation, and if you have nothing to isolate, you are adding ceremony for no payoff. The enablement overhead, the role design, the session management: all cost time that buys you nothing.&lt;/p&gt;
&lt;p&gt;Skip it too if your access control problem is &amp;quot;some people should not see some columns.&amp;quot; That is a masking problem, and Unity Catalog already handles it with column-level masking and row-level filters. RBAC is about catalog- and table-level isolation between distinct contexts, not about hiding sensitive fields within a shared dataset.&lt;/p&gt;
&lt;p&gt;Use it if you operate in any of these patterns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Clinical trials or life sciences&lt;/strong&gt;, where an analyst working on Trial A must not have even accidental visibility into Trial B&#39;s data, and where an auditor needs proof that the separation was enforced at the session level.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-tenant SaaS or consulting&lt;/strong&gt;, where each client&#39;s data lives in the same workspace but must never cross-contaminate, and where a single engineer rotates across clients.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Financial services with conflict-of-interest walls&lt;/strong&gt;, where an analyst covering one sector must not access data about companies in a conflicted sector, and where the penalty for accidental access is regulatory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In each case, the value is the same: the user&#39;s default identity cannot reach the sensitive data. They must assume a role, which creates an auditable event, and the role&#39;s permissions are the only ones in play.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-plan-for-during-the-preview-window&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#what-should-you-plan-for-during-the-preview-window&quot;&gt;&lt;span&gt;What should you plan for during the preview window?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Three things, in order.&lt;/p&gt;
&lt;p&gt;First, &lt;strong&gt;map your current permission graph&lt;/strong&gt; before you touch anything. Query your Unity Catalog grants, list every group membership for the users who would assume roles, and identify where accumulated permissions are load-bearing for existing pipelines. The information schema in Unity Catalog can give you this.&lt;/p&gt;
&lt;p&gt;Second, &lt;strong&gt;design your roles around isolation boundaries, not job functions.&lt;/strong&gt; A role called &amp;quot;marketing_analyst&amp;quot; is too broad. A role called &amp;quot;client_acme_readonly&amp;quot; or &amp;quot;trial_42_analyst&amp;quot; is specific enough that the exclusive access model gives you real isolation. The granularity of your roles determines the granularity of your compliance.&lt;/p&gt;
&lt;p&gt;Third, &lt;strong&gt;test with one workspace, one team, and one non-production role&lt;/strong&gt; before you expand. The preview is opt-in and per-workspace for a reason. Use that. Enable it in a sandbox workspace, create a role, have a user assume it, and verify that the permission resolution matches your expectations. Check that queries to out-of-scope catalogs fail with permission errors, not silent empty results.&lt;/p&gt;
&lt;p&gt;Watch for changes to the configuration surface. Public Preview features can shift their API, their UI, and their behavioral semantics between now and GA. Databricks also notes that releases are staged, so your account may not see the feature until a week or more after the July 22 release date. Anything you automate around RBAC today may need adjustment before general availability.&lt;/p&gt;
&lt;h2 id=&quot;the-bottom-line-on-exclusive-access&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#the-bottom-line-on-exclusive-access&quot;&gt;&lt;span&gt;The bottom line on exclusive access&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;RBAC is the first feature on Databricks that lets you say &amp;quot;this session can only see this data, and nothing else.&amp;quot; For teams operating under regulatory constraints, that is a capability they have been working around with separate workspaces, separate accounts, and awkward process controls. Now it is a session-level property. The trade-off is that exclusive access breaks the pattern every other part of the platform follows, and it requires deliberate role design and testing to avoid breaking pipelines that depend on accumulated permissions. Enable it where isolation matters. Leave it off where it does not.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-rbac-exclusive-access-preview/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#role-based-access-control-rbac-is-in-public-preview&quot;&gt;Databricks, Role-based access control (RBAC) is in Public Preview, July 2026 release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/&quot;&gt;Databricks, Platform release notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks managed Iceberg materialized views, explained</title>
    <link href="https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/" />
    <updated>2026-07-13T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/</id>
    <content type="html">&lt;p&gt;Databricks has spent years building materialized views that precompute and cache query results inside its own SQL warehouses, making dashboards and BI faster. The catch was always that those MVs spoke Delta, not Iceberg, so if your platform mix includes Trino, Spark on Kubernetes, or anything else that reads open table formats, your carefully maintained MV was invisible to it. That changes with managed Iceberg materialized views, which entered Public Preview on July 7, 2026 and let you create a materialized view that external Iceberg readers can query directly. For teams running mixed Databricks and open-source stacks, this is the feature that reframes the lock-in conversation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The feature writes MV results to Apache Iceberg instead of Delta Lake&lt;/strong&gt;, which means any engine with an Iceberg reader can open the same physical files your Databricks SQL warehouse produced.&lt;/p&gt;
&lt;h2 id=&quot;what-are-managed-iceberg-materialized-views&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#what-are-managed-iceberg-materialized-views&quot;&gt;&lt;span&gt;What are managed Iceberg materialized views?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A materialized view is a precomputed result set stored as a table and refreshed on a schedule or trigger. Databricks SQL has supported them for a while, letting you accelerate expensive aggregations, joins, and transformations by computing once and reading many times.&lt;/p&gt;
&lt;p&gt;The new twist is the storage format. Standard Databricks materialized views are written to Delta Lake tables. Managed Iceberg materialized views write to Apache Iceberg instead. Any engine with an Iceberg reader, including Trino, Apache Spark, and DuckDB, can query the same physical table your Databricks SQL warehouse produced. You get the precompute benefit inside Databricks and the portability benefit outside it.&lt;/p&gt;
&lt;p&gt;The feature is in Public Preview. To enable it, you need to contact your Databricks account team; there is no self-service toggle in the workspace UI. Databricks documents the setup under &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#managed-iceberg-materialized-views-are-in-public-preview&quot;&gt;Create a materialized view compatible with external Iceberg readers&lt;/a&gt; in the July 2026 release notes.&lt;/p&gt;
&lt;p&gt;The distinction matters because it changes how you think about MVs on this platform. If your analytics estate is purely Databricks, standard Delta MVs are simpler and fully supported. If a second engine needs the same precomputed results, Iceberg MVs eliminate the need to maintain a parallel copy or export pipeline.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-configure-them&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#how-do-you-configure-them&quot;&gt;&lt;span&gt;How do you configure them?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since this is Public Preview and account-team-gated, the first step is contacting your Databricks representative to enable the feature for your workspace. Once enabled, the creation path mirrors standard materialized views but directs the output to Iceberg-format storage.&lt;/p&gt;
&lt;p&gt;A typical materialized view definition follows the standard Databricks SQL pattern:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;CREATE&lt;/span&gt; MATERIALIZED &lt;span class=&quot;token keyword&quot;&gt;VIEW&lt;/span&gt; catalog&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;schema&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;daily_revenue
&lt;span class=&quot;token keyword&quot;&gt;COMMENT&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;Daily revenue by region, Iceberg-readable&#39;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt; region&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; order_date&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;amount&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; revenue
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; catalog&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;schema&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;orders
&lt;span class=&quot;token keyword&quot;&gt;GROUP&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; region&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; order_date&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The exact property or catalog configuration that targets Iceberg rather than Delta is described in the Databricks documentation linked above. The refresh happens on a schedule or on demand, the same as a standard MV. What changes is that the resulting table is queryable by any Iceberg-compatible engine that can reach your catalog storage.&lt;/p&gt;
&lt;p&gt;Refreshes can also take advantage of REPLACE WHERE flows, which became generally available on July 7, 2026. REPLACE WHERE lets you replace only the rows matching a predicate on each refresh without reprocessing the full table history. For a daily-revenue MV partitioned by date, that means you can recompute just yesterday&#39;s partition instead of rebuilding the entire view. This applies to pipelines and standalone streaming tables as well.&lt;/p&gt;
&lt;h2 id=&quot;what-does-it-cost-you&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#what-does-it-cost-you&quot;&gt;&lt;span&gt;What does it cost you?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Materialized view refreshes consume compute, and Iceberg MVs are no exception. The cost story has two relevant updates from the July 2026 release.&lt;/p&gt;
&lt;p&gt;First, materialized view and streaming table refreshes in Databricks SQL now inherit custom tags from the enclosing SQL warehouse environment, as of July 8, 2026. These tags propagate to &lt;code&gt;system.billing.usage&lt;/code&gt;, so you can attribute refresh costs back to the source SQL warehouse. If you have been unable to figure out which warehouse is paying for which MV refresh, &lt;strong&gt;this closes that gap for both Delta and Iceberg MVs alike&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Second, materialized view and streaming table refreshes orchestrated through a SQL task in a Lakeflow job now respect the job&#39;s performance-optimized setting, as of July 6, 2026. When you turn that setting off, the refresh uses standard performance mode, which consumes fewer DBUs than the performance-optimized default. For Iceberg MVs that refresh on a schedule, choosing standard mode when latency is not critical is a straightforward way to cut the refresh bill.&lt;/p&gt;
&lt;p&gt;Here is how the two modes compare:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Performance mode&lt;/th&gt;
&lt;th&gt;Standard mode&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DBU consumption&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Refresh speed&lt;/td&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;When to use&lt;/td&gt;
&lt;td&gt;SLA-sensitive refreshes&lt;/td&gt;
&lt;td&gt;Overnight or batch refreshes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configurable via&lt;/td&gt;
&lt;td&gt;Lakeflow job SQL task setting&lt;/td&gt;
&lt;td&gt;Same setting, toggled off&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The cost attribution tags work regardless of which performance mode you choose. You can read more about managing compute spend in our &lt;a href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/&quot;&gt;Databricks Lakeflow Designer cost guide&lt;/a&gt;, which covers the same tag-based attribution pattern for pipeline workloads.&lt;/p&gt;
&lt;p&gt;The chart below shows the illustrative difference in DBU consumption between performance and standard mode for scheduled MV refreshes at three data volumes. Standard mode uses roughly &lt;strong&gt;30 percent fewer DBUs&lt;/strong&gt; in this example, though the exact ratio depends on your query complexity, data volume, and warehouse size. Treat the numbers as directional, not as a Databricks-published rate.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-managed-iceberg-materialized-views-fig-refresh-cost-comparison.png&quot; alt=&quot;Bar chart comparing DBU consumption for materialized view refreshes in performance mode versus standard mode. Performance mode: 80 DBUs for small MV, 120 for medium, 200 for large. Standard mode: 56 DBUs for small, 84 for medium, 140 for large. Standard mode uses approximately 30 percent fewer DBUs across all three sizes.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: DBU consumption for a typical scheduled materialized view refresh under performance-optimized and standard modes, showing standard mode at 56, 84, and 140 DBUs versus performance mode at 80, 120, and 200 DBUs for small, medium, and large MVs respectively. Source: Data Today illustrative benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;when-are-they-the-right-choice&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#when-are-they-the-right-choice&quot;&gt;&lt;span&gt;When are they the right choice?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The use case is narrow but compelling. You should consider managed Iceberg materialized views when a second compute engine outside Databricks needs to query your precomputed results, and you are already paying to maintain a parallel copy or export pipeline that duplicates MV logic in another system. Trino and Spark on Kubernetes are the most common examples.&lt;/p&gt;
&lt;p&gt;Another fit is when your governance or contractual requirements mandate open table formats for downstream consumption, or when you want to evaluate a migration away from Databricks for read workloads without rewriting your transformation logic.&lt;/p&gt;
&lt;p&gt;If none of those apply, standard Delta materialized views remain the simpler choice. They are GA, fully supported, and do not require an account-team conversation to enable. The Iceberg format adds a portability tax in the form of preview-stage limitations and format overhead that is not worth paying if only Databricks will ever read the table.&lt;/p&gt;
&lt;p&gt;The feature also fits into the broader &lt;a href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/&quot;&gt;Databricks Data Intelligence Platform&lt;/a&gt; story of meeting open-format demand without forcing teams off the platform. Unity Catalog governs both Delta and Iceberg tables, so permissions, lineage, and auditing apply consistently across formats.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-limits-in-public-preview&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#what-are-the-limits-in-public-preview&quot;&gt;&lt;span&gt;What are the limits in Public Preview?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Public Preview means the feature is real but not finished. Several constraints are worth flagging before you build a production pipeline around it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Account-team enablement required.&lt;/strong&gt; There is no self-service toggle. You file a request and wait.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Staged rollout.&lt;/strong&gt; Databricks stages releases across accounts, so your workspace may not have the feature for a week or more after the July 7 date, and you should expect rough edges in edge cases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refresh semantics.&lt;/strong&gt; Incremental refresh and REPLACE WHERE support depend on the underlying MV&#39;s partitioning and the query pattern. Not every MV can be refreshed incrementally; some require full recomputation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External reader compatibility.&lt;/strong&gt; Iceberg is a standard, but engine versions matter. Verify that your Trino or Spark version supports the Iceberg table version and features Databricks writes. Format divergence between writer and reader is a real risk in mixed stacks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should also confirm how Databricks bills the Iceberg-format MV refresh versus the Delta equivalent. The release notes do not call out a separate pricing tier, which suggests the same DBU model applies, but Public Preview pricing can change. Check the &lt;a href=&quot;https://docs.databricks.com/aws/en/pricing/&quot;&gt;Databricks pricing page&lt;/a&gt; for current rates before committing.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-do-next&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#what-should-you-do-next&quot;&gt;&lt;span&gt;What should you do next?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you have a mixed-engine stack, the bet to make is small and deliberate. Pick one MV that a non-Databricks engine already needs, enable the feature, and migrate that single view to Iceberg format. Measure the refresh cost, the read latency from both engines, and any format-compatibility issues. That tells you whether to expand.&lt;/p&gt;
&lt;p&gt;The bet to skip is a wholesale migration of all MVs to Iceberg format on day one. Public Preview is for validation, not for replatforming your entire semantic layer. If your team is purely on Databricks, there is no reason to move yet.&lt;/p&gt;
&lt;p&gt;Watch for the GA announcement, which will likely remove the account-team gate and add self-service enablement. Also watch for any changes to how Unity Catalog exposes Iceberg MV metadata, since lineage and access audit across formats is where governance complexity tends to hide.&lt;/p&gt;
&lt;h2 id=&quot;the-lock-in-question-has-a-new-answer&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#the-lock-in-question-has-a-new-answer&quot;&gt;&lt;span&gt;The lock-in question has a new answer&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The strongest argument against building your semantic layer inside Databricks has always been that the output is Delta and the rest of the world is moving toward Iceberg. Managed Iceberg materialized views do not eliminate lock-in, but they give you a credible exit ramp for read workloads, and they let you serve two engines from one precomputed table. For a data engineer who has been maintaining duplicate pipelines just to feed Trino, that is the detail worth testing in Public Preview.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-managed-iceberg-materialized-views/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#managed-iceberg-materialized-views-are-in-public-preview&quot;&gt;Databricks: Managed Iceberg materialized views in Public Preview (July 2026 release notes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#automatic-cost-attribution-for-materialized-views-and-streaming-tables-in-databricks-sql&quot;&gt;Databricks: Automatic cost attribution for materialized views and streaming tables (July 2026 release notes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#standard-performance-mode-is-now-supported-for-materialized-view-or-streaming-table-refreshes-in-jobs&quot;&gt;Databricks: Standard performance mode for MV refreshes in jobs (July 2026 release notes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/july#replace-where-flows-are-now-generally-available&quot;&gt;Databricks: REPLACE WHERE flows generally available (July 2026 release notes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/pricing/&quot;&gt;Databricks pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks Lakehouse//RT: sub-second SQL reads in beta</title>
    <link href="https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/" />
    <updated>2026-07-06T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/</id>
    <content type="html">&lt;p&gt;If you have ever pointed a dashboard or a customer-facing app at a Databricks SQL warehouse and watched the spinner tick past one second, Lakehouse Real-Time is the feature you have been waiting for. Now in Beta as of June 30, 2026, Lakehouse//RT is a new serverless SQL warehouse type built for low-latency, high-concurrency workloads against Unity Catalog tables. The promise is sub-second SELECT queries for hundreds to thousands of concurrent users.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lakehouse//RT is a purpose-built read-only serving engine.&lt;/strong&gt; Databricks positioned it explicitly for serving analytical data to custom applications, operational analytics, and BI dashboards in &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june&quot;&gt;its June 2026 release notes&lt;/a&gt;. The feature is in active Beta, meaning performance characteristics and the supported feature set will change before general availability.&lt;/p&gt;
&lt;h2 id=&quot;what-is-lakehousert-and-how-is-it-different-from-a-serverless-sql-warehouse&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#what-is-lakehousert-and-how-is-it-different-from-a-serverless-sql-warehouse&quot;&gt;&lt;span&gt;What is Lakehouse//RT and how is it different from a serverless SQL warehouse?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakehouse//RT is a distinct warehouse type, not a configuration flag on an existing SQL warehouse. You create it from the same SQL Warehouses UI, but it shows up as &amp;quot;Real-Time&amp;quot; alongside &amp;quot;Serverless&amp;quot; and &amp;quot;Pro.&amp;quot; You cannot upgrade an existing SQL warehouse to Lakehouse//RT, and you cannot downgrade a Lakehouse//RT warehouse back. It is its own animal.&lt;/p&gt;
&lt;p&gt;The engine is optimized for point lookups and short aggregations against well-clustered Unity Catalog managed tables. It supports Delta Lake and Apache Iceberg managed tables, materialized views, streaming tables, and metric views. For best performance, Databricks recommends managed tables with predictive optimization and liquid clustering enabled, because the engine depends on good data layout to hit sub-second latency.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Lakehouse//RT&lt;/th&gt;
&lt;th&gt;Serverless SQL&lt;/th&gt;
&lt;th&gt;Pro SQL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Target latency&lt;/td&gt;
&lt;td&gt;Sub-second&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Concurrency target&lt;/td&gt;
&lt;td&gt;Hundreds to thousands&lt;/td&gt;
&lt;td&gt;Tens to hundreds&lt;/td&gt;
&lt;td&gt;Tens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query types&lt;/td&gt;
&lt;td&gt;SELECT only&lt;/td&gt;
&lt;td&gt;Full DDL, DML, SELECT&lt;/td&gt;
&lt;td&gt;Full DDL, DML, SELECT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connectivity&lt;/td&gt;
&lt;td&gt;Statement Execution API only&lt;/td&gt;
&lt;td&gt;Thrift and Statement Execution API&lt;/td&gt;
&lt;td&gt;Thrift and Statement Execution API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Table support&lt;/td&gt;
&lt;td&gt;UC managed, MVs, streaming tables, metric views&lt;/td&gt;
&lt;td&gt;All Unity Catalog tables&lt;/td&gt;
&lt;td&gt;All Unity Catalog tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Billing SKU&lt;/td&gt;
&lt;td&gt;Lakehouse_Serverless&lt;/td&gt;
&lt;td&gt;Serverless_SQL&lt;/td&gt;
&lt;td&gt;Classic_SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The connectivity distinction is the one most likely to bite you. &lt;strong&gt;Lakehouse//RT rejects any connection that does not use the Statement Execution API.&lt;/strong&gt; If your BI tool or driver connects via the legacy Thrift protocol, it receives a 501 error. That rules out tools that have not adopted the Statement Execution API, which includes some older JDBC drivers and legacy BI connectors. You need to verify your client stack before planning a migration.&lt;/p&gt;
&lt;p&gt;The chart below shows how Databricks positions the three warehouse types against each other on the two dimensions that matter most for serving workloads.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-lakehouse-rt-sub-second-sql-fig-rt-positioning.png&quot; alt=&quot;Illustrative comparison of Lakehouse//RT, serverless SQL, and Pro SQL warehouse by target query latency and concurrent users. Lakehouse//RT targets sub-second latency and thousands of concurrent users, serverless SQL targets seconds latency and tens to hundreds of users, Pro SQL targets seconds to minutes latency and tens of users.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: Target latency and concurrency by Databricks SQL warehouse type. Lakehouse//RT is positioned for sub-second reads and thousands of concurrent users. Source: Databricks documentation.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Lakehouse//RT sits in a different quadrant from both serverless SQL and Pro SQL: sub-second target latency with thousands of concurrent users, compared to seconds and tens for the other two.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-enable-and-create-a-lakehousert-warehouse&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#how-do-you-enable-and-create-a-lakehousert-warehouse&quot;&gt;&lt;span&gt;How do you enable and create a Lakehouse//RT warehouse?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The feature is gated behind a workspace-level preview. A workspace admin enables it by navigating to the workspace menu in the top-right corner, selecting Previews, searching for &amp;quot;Lakehouse RT,&amp;quot; and toggling it on. Until that toggle is flipped, the Real-Time warehouse type does not appear in the creation flow.&lt;/p&gt;
&lt;p&gt;Once enabled, creating a warehouse is straightforward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to Compute, then SQL Warehouses, then Create SQL Warehouse.&lt;/li&gt;
&lt;li&gt;Select Real-Time as the warehouse type.&lt;/li&gt;
&lt;li&gt;Choose a size: Small, Medium, Large, or X-Large.&lt;/li&gt;
&lt;li&gt;Name the warehouse and click Create.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Permissions work the same as any SQL warehouse. Grant Can use, Can monitor, or Can manage to users and groups.&lt;/p&gt;
&lt;p&gt;For connecting, the Statement Execution API is your only path. A basic request looks like:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  https://&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;workspace-url&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;/api/2.0/sql/statements &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &amp;lt;token&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;warehouse_id&quot;: &quot;&amp;lt;rt-warehouse-id&gt;&quot;,
    &quot;statement&quot;: &quot;SELECT count(*) FROM catalog.schema.table WHERE dt = &#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;&#39;&lt;span class=&quot;token string&quot;&gt;&#39;2026-06-30&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;&#39;&lt;span class=&quot;token string&quot;&gt;&#39;&quot;,
    &quot;format&quot;: &quot;ARRAY&quot;
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No Thrift, no JDBC URL with the old protocol. If your application or BI tool cannot speak the Statement Execution API, Lakehouse//RT is invisible to it.&lt;/p&gt;
&lt;h2 id=&quot;what-can-it-actually-run-and-what-breaks&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#what-can-it-actually-run-and-what-breaks&quot;&gt;&lt;span&gt;What can it actually run, and what breaks?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakehouse//RT runs ANSI-compliant SELECT queries. That is the full scope. Write commands, DDL, DML, and ETL operations are all unsupported. If a query uses an unsupported feature, the engine returns an error naming the feature and telling you to use a serverless SQL warehouse instead.&lt;/p&gt;
&lt;p&gt;Several specific capabilities are off the table:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The GEOGRAPHY and GEOMETRY data types are not supported.&lt;/li&gt;
&lt;li&gt;AI functions are not supported.&lt;/li&gt;
&lt;li&gt;Python UDFs are not supported.&lt;/li&gt;
&lt;li&gt;Spatial SQL functions and XPath and XML functions are not supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the governance side, the picture is better. &lt;strong&gt;Lakehouse//RT does support attribute-based access control, including row-level security and column masking.&lt;/strong&gt; Your serving queries respect the same Unity Catalog policies as your batch workloads, without duplicating policy logic in the application layer.&lt;/p&gt;
&lt;p&gt;The practical implication: if your dashboard or application query calls a Python UDF to enrich results, or uses an AI function to classify a row on the fly, that query will fail on Lakehouse//RT. You need to move that logic upstream into a materialized view or a streaming table so the computed result is already on disk when the serving query runs.&lt;/p&gt;
&lt;p&gt;You can monitor Lakehouse//RT queries the same way you monitor any SQL warehouse query. Queries appear in the query history UI and the query history system table. You can open a Lakehouse//RT query in the query history UI to view its profile. The monitoring page for each warehouse shows query throughput, queued queries, and query history.&lt;/p&gt;
&lt;h2 id=&quot;how-does-the-billing-work&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#how-does-the-billing-work&quot;&gt;&lt;span&gt;How does the billing work?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakehouse//RT is serverless, so you pay for compute on demand with no idle clusters to shut down. Usage appears in the billing system tables under the SKU name &lt;code&gt;Lakehouse_Serverless&lt;/code&gt;. That is the same billing surface you already use to track serverless SQL spend, but with a distinct SKU so you can separate Lakehouse//RT costs from your standard serverless warehouse costs.&lt;/p&gt;
&lt;p&gt;Databricks has not published specific per-DBU pricing for Lakehouse//RT in the Beta documentation. The four sizes, Small through X-Large, follow the same naming convention as other SQL warehouses, but the Beta status means pricing and performance characteristics are subject to change. Treat any cost estimates as provisional until the feature reaches GA.&lt;/p&gt;
&lt;p&gt;The cost question really comes down to concurrency. If you are currently running a Pro SQL warehouse sized for peak concurrency and it sits idle for 16 hours a day, Lakehouse//RT could lower your bill by serving the same traffic from a serverless pool that scales to zero. If your workload is a handful of analysts running ad hoc queries, you will not see a meaningful difference because your existing serverless warehouse already handles that pattern.&lt;/p&gt;
&lt;p&gt;For more on how the serving layer connects to the rest of the platform, see our &lt;a href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/&quot;&gt;Databricks Data Intelligence Platform overview&lt;/a&gt;, which covers how Unity Catalog, Mosaic AI, and the compute layers fit together.&lt;/p&gt;
&lt;h2 id=&quot;when-is-lakehousert-the-wrong-choice&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#when-is-lakehousert-the-wrong-choice&quot;&gt;&lt;span&gt;When is Lakehouse//RT the wrong choice?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If your workload is write-heavy, uses ETL, or depends on UDFs and AI functions, Lakehouse//RT is the wrong tool. It is a serving engine. Treating it as a general-purpose warehouse will produce errors and frustration.&lt;/p&gt;
&lt;p&gt;It is also wrong if your client stack relies on Thrift. The Statement Execution API restriction is a hard limit. Some BI tools and application frameworks have not yet adopted it, and until they do, they cannot connect. Before you plan a migration, inventory every client that touches your SQL warehouse and confirm each one can use the Statement Execution API.&lt;/p&gt;
&lt;p&gt;Finally, it is wrong for exploratory analytics. If your users run complex multi-table joins with subqueries and window functions in an ad hoc fashion, the engine is not optimized for that. The best-practices guidance from Databricks is explicit: validate that your queries run in a few seconds on a serverless SQL warehouse first, then move them to Lakehouse//RT. If a query takes 10 seconds on serverless, it will not take 500 milliseconds on Lakehouse//RT.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-do-before-moving-a-workload-over&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#what-should-you-do-before-moving-a-workload-over&quot;&gt;&lt;span&gt;What should you do before moving a workload over?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with the queries, not the warehouse. Pick the dashboard or application endpoint you want to accelerate and audit its SQL. Confirm every statement is a pure SELECT with no unsupported functions or data types. Run each query on a serverless SQL warehouse and verify it completes in a few seconds.&lt;/p&gt;
&lt;p&gt;Then look at your data layout. &lt;strong&gt;The single biggest factor in hitting sub-second latency is using Unity Catalog managed tables with predictive optimization and liquid clustering.&lt;/strong&gt; If your tables are external, unclustered, or large with no partition pruning, the engine cannot help you. Materialized views that pre-aggregate complex joins are your friend here.&lt;/p&gt;
&lt;p&gt;A checklist before you flip the switch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable the Lakehouse RT preview in your workspace under Previews.&lt;/li&gt;
&lt;li&gt;Confirm your client uses the Statement Execution API, not Thrift.&lt;/li&gt;
&lt;li&gt;Validate target queries run in seconds on serverless SQL.&lt;/li&gt;
&lt;li&gt;Move computed columns and UDF logic into materialized views or streaming tables.&lt;/li&gt;
&lt;li&gt;Ensure tables are managed with liquid clustering and predictive optimization.&lt;/li&gt;
&lt;li&gt;Filter early with WHERE clauses, select only needed columns, and lean on aggregations.&lt;/li&gt;
&lt;li&gt;Check that row-level security and column masking policies carry over correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Databricks also recommends checking that your workloads are ANSI compliant and avoiding the unsupported statements, functions, and data types listed in the Limitations section of the &lt;a href=&quot;https://docs.databricks.com/aws/en/compute/sql-warehouse/real-time&quot;&gt;Lakehouse Real-Time documentation&lt;/a&gt;. When a query hits an unsupported feature, the error message names it.&lt;/p&gt;
&lt;h2 id=&quot;the-real-test-is-your-p99&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#the-real-test-is-your-p99&quot;&gt;&lt;span&gt;The real test is your p99&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakehouse//RT is a bet that a purpose-built read-only serving engine can beat a general-purpose SQL warehouse on latency and concurrency for the specific workload of serving analytical data to applications. The Beta restrictions are real: SELECT only, Statement Execution API only, no UDFs, no AI functions, no spatial types. But if you have a dashboard that thousands of users hit every minute, or a customer-facing app that needs fresh lakehouse data in under a second, this is the first Databricks warehouse type built for that job. Enable the preview, point your fastest dashboard at it, and measure your p99 latency at peak concurrency against what your current serverless warehouse delivers.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakehouse-rt-sub-second-sql/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/compute/sql-warehouse/real-time&quot;&gt;Databricks&lt;/a&gt; - Lakehouse Real-Time documentation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june&quot;&gt;Databricks&lt;/a&gt; - June 2026 release notes&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.databricks.com/product/lakehouse/real-time-lakehouse&quot;&gt;Databricks&lt;/a&gt; - Real-Time Lakehouse product page&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Unity AI Gateway budgets: the spend guardrail guide</title>
    <link href="https://data-today.net/databricks/databricks-ai-gateway-budgets/" />
    <updated>2026-06-29T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-ai-gateway-budgets/</id>
    <content type="html">&lt;p&gt;AI cost control used to be a spreadsheet problem. Then Genie, coding agents, &lt;code&gt;ai_query&lt;/code&gt;, and model endpoints put LLM spend directly in the path of normal work. That is a better product experience and a worse surprise-invoice experience.&lt;/p&gt;
&lt;p&gt;Unity AI Gateway budgets are Databricks account-level controls for monthly AI spend. In July 2026, &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/whats-coming#unity-ai-gateway-budgets-will-be-generally-available-in-july-2026&quot;&gt;Databricks says Unity AI Gateway budgets become generally available across AWS, Azure, and Google Cloud&lt;/a&gt;, while Unity AI Gateway itself remains in Beta. The key fact for data teams: &lt;strong&gt;admins can set shared and per-user spending thresholds&lt;/strong&gt; for requests managed through Unity AI Gateway and Genie, with actions such as email alerting or usage blocking.&lt;/p&gt;
&lt;p&gt;That split matters. A data engineer does not need another dashboard that explains yesterday&#39;s bill. You need a control plane that stops one overexcited analyst, agent loop, or internal app from turning a demo into an account-wide cost incident.&lt;/p&gt;
&lt;h2 id=&quot;what-exactly-becomes-generally-available-in-july-2026&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#what-exactly-becomes-generally-available-in-july-2026&quot;&gt;&lt;span&gt;What exactly becomes generally available in July 2026?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Databricks is making the budget feature generally available, not the whole gateway surface. The &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/whats-coming#unity-ai-gateway-budgets-will-be-generally-available-in-july-2026&quot;&gt;release note is explicit&lt;/a&gt;: Unity AI Gateway budgets roll out for all accounts on AWS, Azure, and Google Cloud in July 2026, but Unity AI Gateway itself remains in Beta and accounts that receive budgets are not automatically enrolled in Unity AI Gateway.&lt;/p&gt;
&lt;p&gt;That is the first trap to avoid in your rollout plan. Budget availability does not mean all gateway traffic controls are automatically active in every workspace. For a gateway-specific budget, Databricks still lists three requirements in the current docs: Unity AI Gateway enabled for the account, the billable usage system table enabled, and the Unity AI Gateway Budget Public Preview enabled in the account console before GA arrives. The &lt;a href=&quot;https://docs.databricks.com/aws/en/ai-gateway/budgets-beta&quot;&gt;Unity AI Gateway budget docs&lt;/a&gt; also say endpoint tags propagate into &lt;code&gt;system.billing.usage.custom_tags&lt;/code&gt;, which is what makes team, project, and cost center scoping practical.&lt;/p&gt;
&lt;p&gt;Here is the useful mental model:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control&lt;/th&gt;
&lt;th&gt;What it governs&lt;/th&gt;
&lt;th&gt;Confirmed scope&lt;/th&gt;
&lt;th&gt;Where you manage or inspect it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Account budget&lt;/td&gt;
&lt;td&gt;Total Databricks usage or filtered usage&lt;/td&gt;
&lt;td&gt;Monthly USD list-price spend&lt;/td&gt;
&lt;td&gt;Account console Usage tab or Budgets API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unity AI Gateway budget&lt;/td&gt;
&lt;td&gt;Gateway endpoint spend&lt;/td&gt;
&lt;td&gt;Pay-Per-Token and &lt;code&gt;ai_query&lt;/code&gt; inference&lt;/td&gt;
&lt;td&gt;Account console, budget details, billing tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Genie budget&lt;/td&gt;
&lt;td&gt;Genie product LLM spend&lt;/td&gt;
&lt;td&gt;Genie, Genie Spaces, Genie Code, and Genie One through &lt;code&gt;databricks-product: genie&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Account console with shared, per-user, and override controls&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The feature is narrow in the right way. It does not try to become a model router, prompt firewall, FinOps warehouse, and procurement system in one gulp. It takes billing records, filters them, and lets an account admin decide when a line gets noisy or blocked.&lt;/p&gt;
&lt;h2 id=&quot;how-do-unity-ai-gateway-budgets-actually-measure-spend&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#how-do-unity-ai-gateway-budgets-actually-measure-spend&quot;&gt;&lt;span&gt;How do Unity AI Gateway budgets actually measure spend?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Budgets are measured in US dollars using Databricks list prices, including platform add-ons. The &lt;a href=&quot;https://docs.databricks.com/aws/en/admin/account-settings/budgets&quot;&gt;account budget documentation&lt;/a&gt; says the spent amount does not factor in negotiated discounts or billing credits, so the number you see is a guardrail number, not necessarily the final invoice number.&lt;/p&gt;
&lt;p&gt;That is the right trade for a runtime control. If you wait for negotiated net cost, you get accuracy after the blast radius. List price gives you a conservative tripwire while the workload is still live.&lt;/p&gt;
&lt;p&gt;For Unity AI Gateway specifically, Databricks says budget scope can use the Unity AI Gateway resource type and endpoint tags such as &lt;code&gt;team&lt;/code&gt;, &lt;code&gt;project&lt;/code&gt;, or &lt;code&gt;cost_center&lt;/code&gt;. The &lt;a href=&quot;https://docs.databricks.com/aws/en/ai-gateway/budgets-beta&quot;&gt;gateway budget page&lt;/a&gt; says Unity AI Gateway budgets currently track Pay-Per-Token, also called PAYGO, and &lt;code&gt;ai_query&lt;/code&gt; batch inference, while provisioned throughput and external-model inference are not currently tracked.&lt;/p&gt;
&lt;p&gt;That last clause should shape your design. If your AI estate includes provisioned throughput endpoints or direct external provider billing, a Unity AI Gateway budget will give you a partial control plane. Useful, yes. Complete, no.&lt;/p&gt;
&lt;p&gt;The billing table is where engineering teams should verify what the console tells them. The &lt;a href=&quot;https://docs.databricks.com/aws/en/ai-gateway/cost-observability-beta&quot;&gt;cost observability docs&lt;/a&gt; say Unity AI Gateway enriches &lt;code&gt;MODEL_SERVING&lt;/code&gt; records in &lt;code&gt;system.billing.usage&lt;/code&gt; with fields such as &lt;code&gt;usage_metadata.ai_gateway_endpoint_name&lt;/code&gt;, &lt;code&gt;usage_metadata.ai_gateway_destination_model&lt;/code&gt;, &lt;code&gt;identity_metadata.run_by&lt;/code&gt;, and &lt;code&gt;custom_tags&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A practical query for the platform team:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt;
  custom_tags&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;team&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; team&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ai_gateway_endpoint_name &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; endpoint_name&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  identity_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;run_by &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; run_by&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;usage_quantity&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; dbus
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; system&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;billing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;usage&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;WHERE&lt;/span&gt; billing_origin_product &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;MODEL_SERVING&#39;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;AND&lt;/span&gt; usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ai_gateway_endpoint_name &lt;span class=&quot;token operator&quot;&gt;IS&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;NOT&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;NULL&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;AND&lt;/span&gt; usage_unit &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;DBU&#39;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;AND&lt;/span&gt; usage_date &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;current_date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;INTERVAL&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt; DAYS
&lt;span class=&quot;token keyword&quot;&gt;GROUP&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; team&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; endpoint_name&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; run_by
&lt;span class=&quot;token keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; dbus &lt;span class=&quot;token keyword&quot;&gt;DESC&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice the billing shape. You can hold teams accountable only if they send traffic through endpoints with tags that survive into &lt;code&gt;custom_tags&lt;/code&gt;. If the endpoint is untagged, your budget can still catch global spend, but your allocation story gets mushy fast.&lt;/p&gt;
&lt;h2 id=&quot;how-should-you-configure-a-genie-budget-without-blocking-the-wrong-people&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#how-should-you-configure-a-genie-budget-without-blocking-the-wrong-people&quot;&gt;&lt;span&gt;How should you configure a Genie budget without blocking the wrong people?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Genie is the reason this feature deserves attention from data engineers, not just account admins. Databricks says &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/whats-coming#genie-products-will-move-to-pay-as-you-go-pricing&quot;&gt;Genie products move to pay-as-you-go pricing on July 6, 2026&lt;/a&gt;, with each identified user receiving 150 DBUs of free LLM usage every month, equal to about $10.50 in US East and roughly 80 to 100 Genie questions or 20 to 30 Genie Code coding sessions.&lt;/p&gt;
&lt;p&gt;The free tier is generous enough for casual use and too small to ignore for broad rollout. A 300-person analytics org can burn through the free layer unevenly: 250 people ask a few questions, 20 power users live in Genie Code, and 5 people accidentally discover an expensive workflow. A seat license would hide that shape. Pay-as-you-go exposes it.&lt;/p&gt;
&lt;p&gt;For Genie, Databricks documents a specific budget pattern. The &lt;a href=&quot;https://docs.databricks.com/aws/en/genie/budgets&quot;&gt;Genie budget docs&lt;/a&gt; say you create the budget with resource type Unity AI Gateway and the resource tag &lt;code&gt;databricks-product: genie&lt;/code&gt;, and they warn that adding other resource tags to a Genie budget is not supported and prevents the budget from tracking Genie usage.&lt;/p&gt;
&lt;p&gt;Use that rule exactly:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Resource type: Unity AI Gateway
Resource tag key: databricks-product
Resource tag value: genie&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then layer the controls:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set a shared monthly threshold for the workspace or account segment.&lt;/li&gt;
&lt;li&gt;Set a per-user threshold for normal users.&lt;/li&gt;
&lt;li&gt;Add overrides for trusted groups such as &lt;code&gt;genie-code&lt;/code&gt; or &lt;code&gt;power-users&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use alerts first, then block usage only where the failure mode is acceptable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Databricks gives a concrete example configuration in its docs: &lt;strong&gt;$5,000 shared, $100 per user, $200 for &lt;code&gt;genie-code&lt;/code&gt;, and $300 for &lt;code&gt;power-users&lt;/code&gt;&lt;/strong&gt;. The chart below shows that shape as a control design, not a recommendation for every account.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-ai-gateway-budgets-fig-genie-thresholds.png&quot; alt=&quot;Unity AI Gateway budgets example for Genie showing $5,000 shared threshold, $100 per-user threshold, $200 genie-code override, and $300 power-users override.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: Databricks Genie budget documentation shows an example with a $5,000 shared threshold, $100 per-user threshold, $200 genie-code override, and $300 power-users override. Source: Databricks Genie budgets documentation. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The override logic has teeth. The Genie docs say that within one budget, a user in multiple groups inherits the most permissive threshold, so a user in both &lt;code&gt;genie-code&lt;/code&gt; and &lt;code&gt;power-users&lt;/code&gt; gets $300 in the documented example. Across multiple Genie budgets, the most restrictive limit applies, so a $100 limit in one budget beats a $200 limit in another.&lt;/p&gt;
&lt;p&gt;That is sane, but it also means budget sprawl can create confusing support tickets. If you let every workspace admin create their own Genie budget, a blocked user may be blocked by a different budget than the one your team is looking at. Keep ownership centralized until your naming and group model are boring.&lt;/p&gt;
&lt;h2 id=&quot;where-does-blocking-help-and-where-can-it-hurt&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#where-does-blocking-help-and-where-can-it-hurt&quot;&gt;&lt;span&gt;Where does blocking help, and where can it hurt?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Blocking is the feature that changes this from observability to control. The &lt;a href=&quot;https://docs.databricks.com/aws/en/admin/account-settings/budgets&quot;&gt;budget docs&lt;/a&gt; say thresholds can trigger email notifications, and for Unity AI Gateway budgets the known limitations include a small amount of spend beyond a blocking threshold because active requests are not interrupted and enforcement has a brief delay.&lt;/p&gt;
&lt;p&gt;That caveat matters less for a human asking Genie questions. It matters more for an agentic workflow that can generate a lot of calls in a tight loop. If you expose Genie or gateway-backed functionality inside an internal portal, usage blocking should be part of the launch checklist, not a follow-up after finance asks why Tuesday looks weird.&lt;/p&gt;
&lt;p&gt;A sane default policy looks like this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;Budget action&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Exploratory Genie use&lt;/td&gt;
&lt;td&gt;Alert at shared threshold, block at per-user threshold&lt;/td&gt;
&lt;td&gt;Preserve broad access while stopping individual runaway spend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Executive dashboard backed by Genie&lt;/td&gt;
&lt;td&gt;Alert first, avoid hard block unless there is a fallback&lt;/td&gt;
&lt;td&gt;A blocked dashboard becomes a business incident&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent or app calling gateway endpoints&lt;/td&gt;
&lt;td&gt;Block at project or service-principal boundary&lt;/td&gt;
&lt;td&gt;Loops and retries can outspend humans quickly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External-model path billed by provider&lt;/td&gt;
&lt;td&gt;Do not rely on Unity AI Gateway budget alone&lt;/td&gt;
&lt;td&gt;Databricks says external-model inference is not currently tracked by these budgets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The right policy is also a product decision. If Genie is replacing ad hoc analyst requests, blocking at $30 may be penny-wise and queue-building. If Genie is embedded in a public-facing workflow with weak throttling, a hard stop may save the month.&lt;/p&gt;
&lt;p&gt;This is where the broader &lt;a href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/&quot;&gt;Databricks Data Intelligence Platform architecture&lt;/a&gt; matters. Cost control belongs beside identity, Unity Catalog permissions, and workload ownership. Treat AI spend as a governed workload dimension, not a chat feature tucked into the corner of BI.&lt;/p&gt;
&lt;h2 id=&quot;can-you-automate-budgets-or-is-this-console-only-for-now&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#can-you-automate-budgets-or-is-this-console-only-for-now&quot;&gt;&lt;span&gt;Can you automate budgets, or is this console-only for now?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There is a public Budgets API, but Databricks documentation is still cleaner for basic monthly budgets than for every Genie-specific UI control. The &lt;a href=&quot;https://docs.databricks.com/api/account/budgets/create&quot;&gt;Budgets API reference&lt;/a&gt; exposes &lt;code&gt;POST /api/2.1/accounts/{account_id}/budgets&lt;/code&gt;, requires the &lt;code&gt;billing&lt;/code&gt; API scope, and shows fields such as &lt;code&gt;display_name&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;alert_configurations&lt;/code&gt;, &lt;code&gt;quantity_threshold&lt;/code&gt;, &lt;code&gt;quantity_type&lt;/code&gt;, &lt;code&gt;time_period&lt;/code&gt;, and &lt;code&gt;trigger_type&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A minimal account budget creation payload looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  https://accounts.cloud.databricks.com/api/2.1/accounts/&lt;span class=&quot;token variable&quot;&gt;$ACCOUNT_ID&lt;/span&gt;/budgets &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &lt;span class=&quot;token variable&quot;&gt;$TOKEN&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;budget&quot;: {
      &quot;display_name&quot;: &quot;ai-gateway-ml-platform&quot;,
      &quot;filter&quot;: {
        &quot;tags&quot;: [{
          &quot;key&quot;: &quot;team&quot;,
          &quot;value&quot;: {&quot;operator&quot;: &quot;IN&quot;, &quot;values&quot;: [&quot;ml-platform&quot;]}
        }]
      },
      &quot;alert_configurations&quot;: [{
        &quot;time_period&quot;: &quot;MONTH&quot;,
        &quot;trigger_type&quot;: &quot;CUMULATIVE_SPENDING_EXCEEDED&quot;,
        &quot;quantity_type&quot;: &quot;LIST_PRICE_DOLLARS_USD&quot;,
        &quot;quantity_threshold&quot;: &quot;1000&quot;,
        &quot;action_configurations&quot;: [{
          &quot;action_type&quot;: &quot;EMAIL_NOTIFICATION&quot;,
          &quot;target&quot;: &quot;ml-platform-oncall@example.com&quot;
        }]
      }]
    }
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not overread that snippet. It demonstrates the public budget API shape and tag filtering. The current Databricks Genie budget page documents shared thresholds, per-user thresholds, blocking, and overrides in the account console flow. If you need those exact Genie controls as code, verify the live API and provider support in your account before promising GitOps parity.&lt;/p&gt;
&lt;p&gt;There is also a CLI surface. The &lt;a href=&quot;https://docs.databricks.com/aws/en/dev-tools/cli/reference/account-budgets-commands&quot;&gt;Databricks CLI account budgets command group&lt;/a&gt; can create, list, get, update, and delete budget configurations, with JSON passed through &lt;code&gt;--json&lt;/code&gt;. That makes it useful for inventory and drift checks even if your first rollout uses the UI for the per-user pieces.&lt;/p&gt;
&lt;h2 id=&quot;what-would-i-do-before-turning-this-on-for-a-real-team&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#what-would-i-do-before-turning-this-on-for-a-real-team&quot;&gt;&lt;span&gt;What would I do before turning this on for a real team?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with attribution, not thresholds. A $5,000 budget attached to a bad tag model is a smoke alarm in the wrong building.&lt;/p&gt;
&lt;p&gt;For Unity AI Gateway endpoints, standardize endpoint tags before you standardize alert values. At minimum, require &lt;code&gt;team&lt;/code&gt;, &lt;code&gt;env&lt;/code&gt;, and &lt;code&gt;cost_center&lt;/code&gt; on every endpoint that can generate billable traffic. Databricks says only AI Gateway endpoint tags are propagated to &lt;code&gt;custom_tags&lt;/code&gt; for budget scoping, and budgets do not support request tags, so request-level tags are useful for dashboards but not for budget filters.&lt;/p&gt;
&lt;p&gt;For Genie, decide whether your cost boundary is workspace, user group, or individual user. The docs say Genie budgets are shared across Genie, Genie Spaces, and Genie Code under the single &lt;code&gt;databricks-product: genie&lt;/code&gt; resource tag, so separate product budgets need to be modeled through groups rather than separate product tags.&lt;/p&gt;
&lt;p&gt;Then run this checklist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm &lt;code&gt;system.billing.usage&lt;/code&gt; is enabled for the account.&lt;/li&gt;
&lt;li&gt;Create one account-level AI budget in alert-only mode for the first month.&lt;/li&gt;
&lt;li&gt;Create a Genie budget scoped with &lt;code&gt;databricks-product: genie&lt;/code&gt; and no extra resource tags.&lt;/li&gt;
&lt;li&gt;Set per-user thresholds for normal users and higher overrides for named groups.&lt;/li&gt;
&lt;li&gt;Query &lt;code&gt;system.billing.usage&lt;/code&gt; weekly and compare the table to the budget details page.&lt;/li&gt;
&lt;li&gt;Add blocking only where the user experience is understood.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The strongest use case is controlled self-service. Give analysts and engineers Genie access without turning every prompt into a procurement conversation. Give app teams gateway endpoints without making finance reverse engineer &lt;code&gt;MODEL_SERVING&lt;/code&gt; records after the fact.&lt;/p&gt;
&lt;p&gt;The weakest use case is pretending this controls all AI spend. It does not cover every serving mode today, and it does not replace provider-side budgets for external models. The honest architecture is layered: Databricks budgets for Databricks-billed gateway and Genie usage, provider budgets for provider-billed calls, and SQL checks over billing tables for audit.&lt;/p&gt;
&lt;h2 id=&quot;the-useful-guardrail-is-the-one-users-can-hit&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#the-useful-guardrail-is-the-one-users-can-hit&quot;&gt;&lt;span&gt;The useful guardrail is the one users can hit&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The best thing about Unity AI Gateway budgets is that they are close to the work. Genie questions, &lt;code&gt;ai_query&lt;/code&gt; inference, and gateway endpoints are where AI cost enters a Databricks account. Putting shared and per-user thresholds there is more useful than explaining the invoice later with a pie chart.&lt;/p&gt;
&lt;p&gt;The risk is false comfort. GA budgets make the control plane easier to adopt, but they do not make every AI path governed by default. If your team exposes Genie broadly in July 2026, budget it on day one. If your agents call models outside the tracked paths, budget those too.&lt;/p&gt;
&lt;p&gt;AI spend does not need a war room. It needs boring limits, good tags, and one person willing to say that a demo gets $100 before it gets $10,000.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-ai-gateway-budgets/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/whats-coming&quot;&gt;Databricks Release Notes: What&#39;s coming?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/ai-gateway/budgets-beta&quot;&gt;Databricks documentation: Manage budgets for Unity AI Gateway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/admin/account-settings/budgets&quot;&gt;Databricks documentation: Create and monitor budgets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/genie/budgets&quot;&gt;Databricks documentation: Manage budgets and cost controls for Genie&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/ai-gateway/cost-observability-beta&quot;&gt;Databricks documentation: Monitor Unity AI Gateway cost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/api/account/budgets/create&quot;&gt;Databricks REST API reference: Budgets API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/dev-tools/cli/reference/account-budgets-commands&quot;&gt;Databricks CLI reference: account budgets commands&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks PAT auto-scoping is a quiet job breaker</title>
    <link href="https://data-today.net/databricks/databricks-pat-auto-scoping/" />
    <updated>2026-06-22T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-pat-auto-scoping/</id>
    <content type="html">&lt;p&gt;Databricks PAT auto-scoping sounds like housekeeping until a build agent, ingestion script, or BI connector loses an API it only calls on quarter close.&lt;/p&gt;
&lt;p&gt;Databricks made token auto-scoping generally available on June 18, 2026, and the useful fact is simple: &lt;strong&gt;Databricks observes API usage for 30 days, then narrows a personal access token to the scopes it inferred from that usage&lt;/strong&gt;. The &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june#token-auto-scoping-for-personal-access-tokens-is-now-generally-available&quot;&gt;June 2026 release notes&lt;/a&gt; say the feature is GA, enabled by default for new long-lived PATs of 30 days or longer, and applied to existing tokens with all APIs access based on historical usage.&lt;/p&gt;
&lt;p&gt;That is good security. It is also a production change aimed directly at lazy automation.&lt;/p&gt;
&lt;p&gt;A personal access token, or PAT, authenticates workspace level calls to Databricks APIs. Databricks still supports PATs, but its own authentication docs &lt;a href=&quot;https://docs.databricks.com/aws/en/dev-tools/auth/pat&quot;&gt;recommend OAuth where possible&lt;/a&gt; for user account authentication. Auto-scoping is the bridge for teams that still have PATs spread through GitHub Actions, Airflow, dbt jobs, Tableau extracts, shell scripts, and that one Jenkins worker nobody wants to touch.&lt;/p&gt;
&lt;p&gt;If you influence the Databricks bill, your cost risk is indirect. This feature does not ask you to pick a warehouse size or a Databricks Runtime. The meter shows up when a token loses a scope, jobs retry, engineers investigate, SLAs slip, and someone reopens the all APIs barn door.&lt;/p&gt;
&lt;h2 id=&quot;what-exactly-changed-for-databricks-pats&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#what-exactly-changed-for-databricks-pats&quot;&gt;&lt;span&gt;What exactly changed for Databricks PATs?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before this change, many PATs behaved like broad workspace keys unless a user or admin explicitly chose API scopes. Databricks now has a default path toward least privilege for long-lived tokens.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://docs.databricks.com/aws/en/dev-tools/auth/pat&quot;&gt;PAT documentation&lt;/a&gt; says scoped personal access tokens restrict permissions to specific API operations, with examples such as &lt;code&gt;sql&lt;/code&gt;, &lt;code&gt;unity-catalog&lt;/code&gt;, and &lt;code&gt;scim&lt;/code&gt;. That same page says auto-scoping narrows a token to only the APIs it actively uses after a 30 day observation period.&lt;/p&gt;
&lt;p&gt;The release note matters because it changes the default posture. New long-lived tokens, meaning &lt;strong&gt;30 days or longer&lt;/strong&gt;, are now in the auto-scoping path by default. Existing all APIs tokens can also be narrowed based on historical usage.&lt;/p&gt;
&lt;p&gt;Here is the operational shape.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Token situation&lt;/th&gt;
&lt;th&gt;Databricks behavior&lt;/th&gt;
&lt;th&gt;What you should check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New PAT with lifetime of 30 days or longer&lt;/td&gt;
&lt;td&gt;Auto-scoping is on by default during creation&lt;/td&gt;
&lt;td&gt;Confirm the first 30 days include every API the automation will need&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Existing PAT with all APIs access&lt;/td&gt;
&lt;td&gt;Auto-scoping can apply based on historical API usage&lt;/td&gt;
&lt;td&gt;Find low frequency API calls before Databricks infers the token is narrower than reality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manually scoped PAT&lt;/td&gt;
&lt;td&gt;Manual scopes define access&lt;/td&gt;
&lt;td&gt;Keep it manual if the token has known, stable duties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Token with &lt;code&gt;authentication&lt;/code&gt; scope&lt;/td&gt;
&lt;td&gt;Can create new tokens with any scope&lt;/td&gt;
&lt;td&gt;Treat it like a privileged credential, not a normal job secret&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The dangerous row is the second one. Existing all APIs tokens often belong to older automation. Those tokens are exactly where unusual calls hide: a monthly &lt;code&gt;jobs&lt;/code&gt; update, a quarterly &lt;code&gt;unity-catalog&lt;/code&gt; permission change, an emergency &lt;code&gt;clusters&lt;/code&gt; restart, or a one time &lt;code&gt;workspace&lt;/code&gt; export.&lt;/p&gt;
&lt;p&gt;The default creation flow also changed. The PAT page now includes an &lt;code&gt;autoscope_enabled&lt;/code&gt; field in the Token API example:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;databricks-instance&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;/api/2.0/token/create &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &amp;lt;existing-token&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;lifetime_seconds&quot;: 2592000,
    &quot;scopes&quot;: [&quot;sql&quot;],
    &quot;autoscope_enabled&quot;: true
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That &lt;code&gt;2592000&lt;/code&gt; value is 30 days in seconds. Use it as a mental boundary: below that lifetime, Databricks is pushing you toward shorter lived credentials; at that lifetime or above, Databricks is also pushing you toward observed least privilege.&lt;/p&gt;
&lt;h2 id=&quot;how-does-auto-scoping-decide-what-a-token-can-do&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#how-does-auto-scoping-decide-what-a-token-can-do&quot;&gt;&lt;span&gt;How does auto-scoping decide what a token can do?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Databricks says it observes API usage over &lt;strong&gt;30 days&lt;/strong&gt; and then applies inferred scopes to the token. During the observation window, the &lt;code&gt;all-apis&lt;/code&gt; scope is applied temporarily, so existing automation can keep running while Databricks watches which endpoints the token actually calls.&lt;/p&gt;
&lt;p&gt;The lifecycle numbers are easy to remember, and the chart below is the one to put in your admin runbook: 30 days of observation, a 7 day reminder before enforcement, 90 days before unused PATs are automatically revoked, and 730 days as the default maximum lifetime for new tokens unless you configure a shorter maximum.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-pat-auto-scoping-fig-pat-scoping-windows.png&quot; alt=&quot;Horizontal bar chart for Databricks PAT auto-scoping showing 7 days for the reminder before enforcement, 30 days for API observation, 90 days for unused PAT auto revocation, and 730 days for the default maximum token lifetime.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Databricks PAT controls from the June 2026 release notes and authentication documentation: 30 days of auto-scoping observation, a 7 day reminder before enforcement, 90 day unused token revocation, and a 730 day default maximum lifetime. Source: Databricks documentation and June 2026 release notes. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Databricks also says it sends a reminder email &lt;strong&gt;7 days before enforcement&lt;/strong&gt; and another email when scopes are applied. That helps, but it does not replace an audit. Service accounts, service principals, and human users have different inbox realities, and the person who receives the warning may have no idea what job owns the token.&lt;/p&gt;
&lt;p&gt;The inference model is endpoint driven. Databricks publishes an &lt;a href=&quot;https://docs.databricks.com/api/workspace/api/scopes&quot;&gt;API scopes reference&lt;/a&gt; that maps scopes to API families, including &lt;code&gt;jobs&lt;/code&gt; with 40 operations, &lt;code&gt;sql&lt;/code&gt; with 53 operations, &lt;code&gt;unity-catalog&lt;/code&gt; with 123 operations, &lt;code&gt;clusters&lt;/code&gt; with 36 operations, and &lt;code&gt;mlflow&lt;/code&gt; with 89 operations. The point is practical: a token that successfully queries Databricks SQL with &lt;code&gt;sql&lt;/code&gt; still cannot necessarily manage a Lakeflow job or update Unity Catalog metadata.&lt;/p&gt;
&lt;p&gt;This is where builders get bitten. Workloads rarely fail on their main path. They fail on a repair path.&lt;/p&gt;
&lt;p&gt;A nightly script might use &lt;code&gt;sql&lt;/code&gt; every evening and &lt;code&gt;jobs&lt;/code&gt; only when it rotates a schedule. A Lakeflow related automation might run normal pipeline calls through one scope and need &lt;code&gt;workspace&lt;/code&gt; or &lt;code&gt;secrets&lt;/code&gt; during deployment. A model promotion job might call MLflow every release and Unity Catalog only when registering a new governed model.&lt;/p&gt;
&lt;p&gt;For a broader platform view, this fits the same theme as our guide to the &lt;a href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/&quot;&gt;Databricks Data Intelligence Platform for builders&lt;/a&gt;: Databricks keeps moving governance into default platform behavior, which is great until your automation relied on informal privilege.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-audit-tokens-before-access-tightens&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#how-do-you-audit-tokens-before-access-tightens&quot;&gt;&lt;span&gt;How do you audit tokens before access tightens?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with the token inventory, not the codebase. Code lies by omission. Token metadata tells you what exists.&lt;/p&gt;
&lt;p&gt;Databricks says workspace admins can use the CLI or Token Management API to monitor and revoke existing workspace tokens, and its admin docs show &lt;code&gt;databricks token-management list&lt;/code&gt; as the basic command. The same admin page says account admins can filter a token report by owner, workspace, created date, expiration date, and last used date.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;databricks token-management list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are working inside a notebook or admin utility, Databricks shows the SDK pattern for loading token metadata into Spark:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; databricks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sdk &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; WorkspaceClient

w &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; WorkspaceClient&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
tokens &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;token&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;as_dict&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; token &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; w&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;token_management&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
display&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;spark&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;createDataFrame&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;orderBy&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;creation_time&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Build a review queue with four columns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token owner&lt;/li&gt;
&lt;li&gt;token comment&lt;/li&gt;
&lt;li&gt;current scopes&lt;/li&gt;
&lt;li&gt;last used day&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then add the missing column yourself: workload owner. If the comment says &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;old airflow&lt;/code&gt;, or &lt;code&gt;do not delete&lt;/code&gt;, revoke or replace it. Those comments are archaeology, not operations.&lt;/p&gt;
&lt;p&gt;For each live automation token, map the workload to API families. A deployment token for Databricks Asset Bundles might need &lt;code&gt;jobs&lt;/code&gt;, &lt;code&gt;workspace&lt;/code&gt;, &lt;code&gt;pipelines&lt;/code&gt;, or &lt;code&gt;unity-catalog&lt;/code&gt; depending on what it deploys. A BI extract token may only need &lt;code&gt;sql&lt;/code&gt;. A service principal that creates other tokens needs &lt;code&gt;authentication&lt;/code&gt;, and Databricks warns that tokens with the &lt;code&gt;authentication&lt;/code&gt; scope can create new tokens with any scope.&lt;/p&gt;
&lt;p&gt;That last one deserves a policy. &lt;strong&gt;Do not give &lt;code&gt;authentication&lt;/code&gt; to a token just because a script failed once.&lt;/strong&gt; Create a separate break glass path, log its use, and rotate it quickly.&lt;/p&gt;
&lt;p&gt;If the inferred scopes are wrong, manually set scopes and opt out for that token. The PAT documentation says manually setting a token&#39;s scopes in the workspace UI or API permanently disables auto-scoping for that token.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; PATCH https://&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;databricks-instance&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;/api/2.0/token/&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;token_id&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &amp;lt;admin-token&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;token&quot;: {
      &quot;scopes&quot;: [&quot;sql&quot;, &quot;jobs&quot;, &quot;unity-catalog&quot;]
    },
    &quot;update_mask&quot;: &quot;scopes&quot;
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Databricks says scope changes can take up to &lt;strong&gt;10 minutes&lt;/strong&gt; to propagate. In practice, that means you should update scopes before a deployment window, not during a failing run.&lt;/p&gt;
&lt;h2 id=&quot;what-does-databricks-pat-auto-scoping-cost&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#what-does-databricks-pat-auto-scoping-cost&quot;&gt;&lt;span&gt;What does Databricks PAT auto-scoping cost?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The clean answer: Databricks does not document a separate DBU meter for PAT auto-scoping in the release note or PAT docs. It is a security control on API access, not a warehouse, cluster, Lakeflow pipeline, Mosaic AI endpoint, or Databricks SQL query.&lt;/p&gt;
&lt;p&gt;The messy answer: the bill can still move.&lt;/p&gt;
&lt;p&gt;A failed job can retry on all purpose compute. A broken ingestion workflow can leave upstream data stale, causing expensive backfills. A disabled deployment token can pin engineers in manual recovery while a production warehouse keeps serving partial data. Those are not feature charges. They are consequence charges.&lt;/p&gt;
&lt;p&gt;The admin controls around PATs do have plan implications. Databricks says managing personal access tokens in a workspace requires the Premium plan or above, and personal access token permissions are available only in the Premium plan or above.&lt;/p&gt;
&lt;p&gt;There is also a token sprawl number worth using in your cleanup. Databricks says each PAT is valid for only one workspace, and a user can create up to &lt;strong&gt;600 PATs per workspace&lt;/strong&gt;. If that limit sounds absurdly high, remember what happens in a large platform: every migration, integration test, notebook export, and proof of concept leaves behind one more credential unless someone owns deletion.&lt;/p&gt;
&lt;p&gt;Set a shorter maximum lifetime while you are here. Databricks documents &lt;code&gt;maxTokenLifetimeDays&lt;/code&gt;, with a default maximum of &lt;strong&gt;730 days&lt;/strong&gt;, and shows this CLI setting for a 90 day maximum:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;databricks workspace-conf set-status &lt;span class=&quot;token parameter variable&quot;&gt;--json&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
  &quot;maxTokenLifetimeDays&quot;: &quot;90&quot;
}&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That does two useful things. It reduces the blast radius of leaked tokens, and it forces teams to find the automation they forgot to migrate.&lt;/p&gt;
&lt;h2 id=&quot;when-should-you-keep-pat-auto-scoping-on-and-when-should-you-opt-out&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#when-should-you-keep-pat-auto-scoping-on-and-when-should-you-opt-out&quot;&gt;&lt;span&gt;When should you keep PAT auto-scoping on, and when should you opt out?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Keep auto-scoping on for human generated long-lived tokens, BI tools with stable API needs, and older all APIs tokens you are actively cleaning up. It gives you a default path away from broad access without asking every analyst to understand the full API scope catalog.&lt;/p&gt;
&lt;p&gt;Opt out, by manually setting scopes, when a token backs production automation with rare but legitimate operations. The key word is legitimate. If a token needs &lt;code&gt;jobs&lt;/code&gt; once a quarter, document that need and set the scope. If nobody can explain why it needs &lt;code&gt;authentication&lt;/code&gt;, remove it.&lt;/p&gt;
&lt;p&gt;Use this decision rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the workload is exploratory, leave auto-scoping on and keep the token short lived.&lt;/li&gt;
&lt;li&gt;If the workload is production and predictable, set explicit scopes and monitor failures.&lt;/li&gt;
&lt;li&gt;If the workload creates tokens, replace the pattern with OAuth or a tightly controlled service principal flow.&lt;/li&gt;
&lt;li&gt;If the workload crosses account level administration, stop using PATs because Databricks says PATs cannot automate account level functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The bigger migration is OAuth. Databricks says PATs are legacy authentication for many user account scenarios, and it recommends OAuth access tokens for stronger security and convenience. Auto-scoping makes PATs safer, but it should also make your remaining PAT inventory more visible.&lt;/p&gt;
&lt;p&gt;That is the part worth doing this month. Do not wait for the 7 day enforcement email to discover that a token named &lt;code&gt;airflow-prod-old2&lt;/code&gt; deploys your most important Databricks SQL dashboard.&lt;/p&gt;
&lt;h2 id=&quot;what-should-change-in-your-token-culture&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#what-should-change-in-your-token-culture&quot;&gt;&lt;span&gt;What should change in your token culture?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Databricks PAT auto-scoping turns least privilege from a policy slide into a platform default. Good.&lt;/p&gt;
&lt;p&gt;Now make the human process match it. Every production token needs an owner, a workload name, a lifetime, a scope list, and a migration plan. If a token cannot survive that sentence, it should not survive the audit.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-pat-auto-scoping/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june#token-auto-scoping-for-personal-access-tokens-is-now-generally-available&quot;&gt;Databricks Release Notes: June 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/dev-tools/auth/pat&quot;&gt;Databricks documentation: Authenticate with Databricks personal access tokens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/admin/access-control/tokens&quot;&gt;Databricks documentation: Monitor and revoke personal access tokens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/security/auth/api-access-permissions&quot;&gt;Databricks documentation: Manage personal access token permissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/api/workspace/api/scopes&quot;&gt;Databricks REST API reference: API scopes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks Lakeflow Designer GA cost guide for teams</title>
    <link href="https://data-today.net/databricks/databricks-lakeflow-designer-cost/" />
    <updated>2026-06-22T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-lakeflow-designer-cost/</id>
    <content type="html">&lt;p&gt;Databricks Lakeflow Designer has crossed the line from interesting demo to production tool, and that changes who gets to touch the transformation layer.&lt;/p&gt;
&lt;p&gt;The feature is a visual, no-code canvas for preparing and transforming data inside Databricks. On June 16, 2026, Databricks said &lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june#lakeflow-designer-is-now-generally-available&quot;&gt;Lakeflow Designer is generally available&lt;/a&gt;, with workflows backed by production-ready code governed by Unity Catalog. The useful fact for a data engineer is simple: &lt;strong&gt;analysts can now build, preview, schedule, and hand off governed transformations without starting in a notebook&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That sounds like a power shift. It is also a bill shift. Lakeflow Designer uses Databricks compute, writes outputs to Unity Catalog, and can be scheduled through Lakeflow Jobs. If you influence the bill, your job is to make the canvas safe enough for analysts and observable enough for finance.&lt;/p&gt;
&lt;p&gt;This guide is the engineering read: how it works, what it consumes, where governance actually applies, and where you should keep writing code. For the broader platform context, read our guide to &lt;a href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/&quot;&gt;how the Data Intelligence Platform splits work across governance, engineering, and AI&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-actually-became-ga-in-lakeflow-designer&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#what-actually-became-ga-in-lakeflow-designer&quot;&gt;&lt;span&gt;What actually became GA in Lakeflow Designer?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakeflow Designer became generally available on June 16, 2026, after previously appearing in Databricks documentation as a preview feature. The release note says analysts can build visual transformation workflows using built-in operators or natural language, and that those workflows are backed by code governed by Unity Catalog.&lt;/p&gt;
&lt;p&gt;The core object is a &lt;strong&gt;visual data prep&lt;/strong&gt; file. Databricks describes each file as a directed acyclic graph made from operators such as filter, join, and transform, and the docs say those transformations are backed by code that can be versioned in Git and scheduled as jobs through &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/what-is-lakeflow-designer&quot;&gt;Lakeflow Designer concepts&lt;/a&gt;. That matters because Designer is not a separate island for analyst experiments. It is a front end over code that can enter your normal production path.&lt;/p&gt;
&lt;p&gt;The minimum requirements are tight enough to keep this from becoming spreadsheet sprawl. A workspace must have Unity Catalog enabled, and the user needs &lt;code&gt;CAN USE&lt;/code&gt; permission on at least one general purpose compute resource, either serverless or all-purpose, according to the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/build-transformation&quot;&gt;visual data prep setup requirements&lt;/a&gt;. That one permission check is where platform teams should start.&lt;/p&gt;
&lt;p&gt;The GA scope also has one important availability caveat. The June release note says Lakeflow Designer is coming soon to workspaces with the compliance security profile enabled. If your regulated workspace depends on that profile, treat GA as a roadmap item until your account actually shows the feature.&lt;/p&gt;
&lt;p&gt;The best mental model is this: Lakeflow Designer is a governed transformation workbench for analysts, not a replacement for Lakeflow Spark Declarative Pipelines. Use it to turn repeatable analyst prep into scheduled jobs. Keep complex streaming, CDC, strict test harnesses, and hand-tuned performance paths in engineering-owned code.&lt;/p&gt;
&lt;h2 id=&quot;how-do-analysts-build-a-workflow-without-creating-a-mess&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#how-do-analysts-build-a-workflow-without-creating-a-mess&quot;&gt;&lt;span&gt;How do analysts build a workflow without creating a mess?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every workflow starts with a Source operator. Databricks says the Source operator can browse Unity Catalog tables and volumes, browse workspace files, upload local CSV or Excel files, create a Unity Catalog table from a file, import from Google Drive, import from SharePoint, or use data previously landed through Lakeflow Connect as a table, according to the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/ingest-data&quot;&gt;Designer ingestion documentation&lt;/a&gt;. That is a broad door, so permissions and landing zones matter.&lt;/p&gt;
&lt;p&gt;The normal flow is short:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a Source operator.&lt;/li&gt;
&lt;li&gt;Chain built-in operators such as Filter, Join, Aggregate, Pivot, SQL, or Transform.&lt;/li&gt;
&lt;li&gt;Preview each operator output in the bottom pane.&lt;/li&gt;
&lt;li&gt;Add an Output operator.&lt;/li&gt;
&lt;li&gt;Write the result to a Unity Catalog table.&lt;/li&gt;
&lt;li&gt;Schedule the visual data prep directly or add it as a task in a Lakeflow Job.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The preview behavior is where cost discipline begins. Databricks says operators process a limited sample by default, and the Rows scanned control can be set to &lt;code&gt;Limit&lt;/code&gt; or &lt;code&gt;Max&lt;/code&gt;; &lt;code&gt;Max&lt;/code&gt; reruns upstream operators over the complete unbounded dataset and can take a long time, according to the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/build-transformation&quot;&gt;build transformation guide&lt;/a&gt;. In plain English: &lt;strong&gt;the expensive button is visible to the analyst&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Designer also supports parameters. A SQL operator can reference a parameter with named marker syntax, while a Python operator can use &lt;code&gt;dbutils.widgets.get()&lt;/code&gt;. This is the difference between one governed visual data prep and four copied canvases named final, final2, production, and real production.&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt;
  customer_id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;order_total&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; total_spend
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; filtered_orders
&lt;span class=&quot;token keyword&quot;&gt;WHERE&lt;/span&gt; environment &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; :environment
&lt;span class=&quot;token keyword&quot;&gt;GROUP&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; customer_id&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That snippet is the kind of SQL you want analysts writing inside a SQL operator. It references the output of another operator by name, &lt;code&gt;filtered_orders&lt;/code&gt;, and it keeps environment switching in a schedule parameter instead of hard-coding &lt;code&gt;prod&lt;/code&gt; into the canvas.&lt;/p&gt;
&lt;p&gt;The feature surface is bigger than a drag-and-drop filter builder. The built-in operator docs list &lt;strong&gt;9 AI Function operators, 9 transformation operators, and 3 user-defined operator types&lt;/strong&gt;. The chart below shows the useful boundary: analysts get enough built-ins to do real work, while engineers still own the extension points.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-lakeflow-designer-cost-fig-designer-surface-area.png&quot; alt=&quot;Databricks Lakeflow Designer exposes 9 built-in AI Function operators, 9 built-in transformation operators, and 3 user-defined operator types.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Source: Databricks Lakeflow Designer documentation. The docs list 9 AI Function operators, 9 transformation operators, and 3 user-defined operator types. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;What analysts get&lt;/th&gt;
&lt;th&gt;Engineering control point&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Built-in operators&lt;/td&gt;
&lt;td&gt;Filter, Join, Aggregate, Pivot, Sort, SQL, Transform, Combine, Limit&lt;/td&gt;
&lt;td&gt;Review naming, output tables, and schedule frequency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Function operator&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ai_gen&lt;/code&gt;, &lt;code&gt;ai_extract&lt;/code&gt;, &lt;code&gt;ai_classify&lt;/code&gt;, &lt;code&gt;ai_translate&lt;/code&gt;, and 5 more functions&lt;/td&gt;
&lt;td&gt;Approve use cases, regions, and downstream review paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User-defined operators&lt;/td&gt;
&lt;td&gt;&lt;code&gt;python-run-function&lt;/code&gt;, &lt;code&gt;uc-udf&lt;/code&gt;, and &lt;code&gt;uc-udtf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Own YAML, Unity Catalog functions, dependencies, and permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That table is the handoff contract. Analysts compose. Engineers set the safe vocabulary.&lt;/p&gt;
&lt;h2 id=&quot;where-does-unity-catalog-governance-actually-show-up&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#where-does-unity-catalog-governance-actually-show-up&quot;&gt;&lt;span&gt;Where does Unity Catalog governance actually show up?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity Catalog is the reason Lakeflow Designer is more interesting than a BI tool&#39;s prep tab. The output operator writes results to a table in Unity Catalog, and its configuration requires a table name plus an output catalog and schema, according to the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/built-in-operators&quot;&gt;built-in operators documentation&lt;/a&gt;. That puts outputs inside the same privilege model, lineage surface, and catalog naming scheme you already use.&lt;/p&gt;
&lt;p&gt;The governance split is cleanest for user-defined operators. Databricks supports exactly three user-defined operator types: &lt;code&gt;python-run-function&lt;/code&gt;, &lt;code&gt;uc-udf&lt;/code&gt;, and &lt;code&gt;uc-udtf&lt;/code&gt;, and the docs state that Unity Catalog UDF and UDTF operators are governed by Unity Catalog permissions such as &lt;code&gt;EXECUTE&lt;/code&gt; and &lt;code&gt;USE SCHEMA&lt;/code&gt; in the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/user-operators&quot;&gt;user-defined operators guide&lt;/a&gt;. Use that to keep business logic reusable without turning every analyst into a package maintainer.&lt;/p&gt;
&lt;p&gt;A simple Unity Catalog function can become a column-level operator:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;REPLACE&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;FUNCTION&lt;/span&gt; ops_shared&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;clean_zip&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;zip STRING&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;RETURNS&lt;/span&gt; STRING
&lt;span class=&quot;token keyword&quot;&gt;LANGUAGE&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;SQL&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;RETURN&lt;/span&gt; regexp_replace&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;zip&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;[^0-9]&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then the platform team registers it as a &lt;code&gt;uc-udf&lt;/code&gt; operator instead of asking every analyst to rediscover the same regex. That is the win: standard logic becomes a button, and the button still respects &lt;code&gt;EXECUTE&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The YAML schema is also explicit. Databricks says every user-defined operator YAML file uses &lt;code&gt;user-defined-operator-v0.1.0&lt;/code&gt;, and the root properties include fields such as &lt;code&gt;schema&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;config&lt;/code&gt;, &lt;code&gt;ports&lt;/code&gt;, &lt;code&gt;run_function&lt;/code&gt;, and &lt;code&gt;environment&lt;/code&gt; in the &lt;a href=&quot;https://docs.databricks.com/aws/en/designer/operators-yaml-ref&quot;&gt;operator YAML reference&lt;/a&gt;. That gives you a reviewable artifact for Git, code owners, and change control.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;schema&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; user&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;defined&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;operator&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v0.1.0
&lt;span class=&quot;token key atrule&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; uc&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;udf
&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Clean ZIP
&lt;span class=&quot;token key atrule&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ops.clean_zip
&lt;span class=&quot;token key atrule&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;1.0.0&#39;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Standardize US ZIP codes before joins.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keep that registration file in a Git folder. Designer files themselves appear in Git as notebooks with the &lt;code&gt;file_name.designer.ipynb&lt;/code&gt; format, according to the visual data prep guide. That is awkward compared with a pure &lt;code&gt;.py&lt;/code&gt; pipeline, but it is reviewable enough for analyst-owned transforms if you make code review part of promotion.&lt;/p&gt;
&lt;h2 id=&quot;what-does-lakeflow-designer-cost-or-consume&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#what-does-lakeflow-designer-cost-or-consume&quot;&gt;&lt;span&gt;What does Lakeflow Designer cost or consume?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakeflow Designer does not remove compute from the equation. It moves compute behind a friendlier canvas.&lt;/p&gt;
&lt;p&gt;For interactive work, the docs require &lt;code&gt;CAN USE&lt;/code&gt; on a general purpose compute resource, either serverless or all-purpose. For production runs, Designer can create a scheduled job directly or be added as a task in a Lakeflow Job. Databricks says each Lakeflow Jobs task has an associated compute resource, and if you use serverless, Databricks configures that compute for you in the &lt;a href=&quot;https://docs.databricks.com/aws/en/jobs/configure-task&quot;&gt;Lakeflow Jobs task documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The practical billing rule is: &lt;strong&gt;preview spend lands where the interactive compute lands, and scheduled spend lands where the job compute lands&lt;/strong&gt;. Databricks exposes serverless usage through &lt;code&gt;system.billing.usage&lt;/code&gt;, including &lt;code&gt;identity_metadata.run_as&lt;/code&gt;, &lt;code&gt;usage_metadata.job_id&lt;/code&gt;, &lt;code&gt;usage_metadata.job_name&lt;/code&gt;, &lt;code&gt;notebook_id&lt;/code&gt;, and &lt;code&gt;notebook_path&lt;/code&gt;, according to the &lt;a href=&quot;https://docs.databricks.com/aws/en/admin/system-tables/serverless-billing&quot;&gt;serverless cost monitoring guide&lt;/a&gt;. Use that table before the first analyst enablement meeting, not after the invoice surprise.&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt;
  identity_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;run_as&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;job_id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;job_name&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;usage_quantity&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; total_dbu
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; system&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;billing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;usage&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;WHERE&lt;/span&gt; usage_unit &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;DBU&#39;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;AND&lt;/span&gt; usage_date &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; DATEADD&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;day&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;current_date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;AND&lt;/span&gt; billing_origin_product &lt;span class=&quot;token operator&quot;&gt;IN&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;JOBS&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;INTERACTIVE&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;GROUP&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; total_dbu &lt;span class=&quot;token keyword&quot;&gt;DESC&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That query is intentionally broad. It will not magically label every visual canvas as Lakeflow Designer, but it will show which users and jobs are burning DBUs through the compute paths Designer uses. Add workspace tags, job naming conventions, and schedule names if you want showback that a finance partner can understand.&lt;/p&gt;
&lt;p&gt;Also watch serverless quotas. Databricks says serverless quotas are measured in DBUs per hour, and serverless compute for notebooks, jobs, and Lakeflow Spark Declarative Pipelines has a per-workload scale-up limit in the &lt;a href=&quot;https://docs.databricks.com/aws/en/admin/account-settings/serverless-quotas&quot;&gt;serverless quota documentation&lt;/a&gt;. The same doc says quotas are a safety measure, not a general purpose spend limiter. Translation for platform owners: use budgets and alerts for dollars, not quotas.&lt;/p&gt;
&lt;p&gt;AI Function operators need an extra review step. The Designer operator list includes functions such as &lt;code&gt;ai_extract&lt;/code&gt;, &lt;code&gt;ai_classify&lt;/code&gt;, &lt;code&gt;ai_gen&lt;/code&gt;, and &lt;code&gt;ai_translate&lt;/code&gt;. Those can be valuable for support-ticket tagging or text cleanup, but they can also turn a cheap row transform into a model workload. Approve them by use case, especially when the input table has millions of rows.&lt;/p&gt;
&lt;h2 id=&quot;when-should-you-use-designer-instead-of-a-notebook-or-pipeline&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#when-should-you-use-designer-instead-of-a-notebook-or-pipeline&quot;&gt;&lt;span&gt;When should you use Designer instead of a notebook or pipeline?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Use Lakeflow Designer when the transformation is analyst-shaped: a join, filter, aggregate, reshape, or light SQL step that needs governance and scheduling. Do not force a data engineer to write a Spark job just to deduplicate a sales extract and publish a small gold table every morning.&lt;/p&gt;
&lt;p&gt;A good first rollout has 3 rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give analysts &lt;code&gt;CAN USE&lt;/code&gt; on a constrained serverless or all-purpose compute target, not every cluster in the workspace.&lt;/li&gt;
&lt;li&gt;Require Output operators to write into approved Unity Catalog schemas such as &lt;code&gt;sandbox&lt;/code&gt;, &lt;code&gt;analytics_dev&lt;/code&gt;, and &lt;code&gt;analytics_prod&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Promote shared business logic through &lt;code&gt;uc-udf&lt;/code&gt; and &lt;code&gt;uc-udtf&lt;/code&gt; operators instead of copy-pasted SQL fragments.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keep notebooks or Lakeflow Spark Declarative Pipelines for workloads with streaming state, CDC semantics, complex tests, dependency packaging, or data volumes where physical planning matters. Designer&#39;s &lt;code&gt;Rows scanned: Max&lt;/code&gt; control is convenient, but it is not a performance model.&lt;/p&gt;
&lt;p&gt;The wrong use case is also clear: do not use Designer as a shadow ETL tool for critical data contracts with no review path. A visual DAG can still break downstream users. The fact that it is pretty does not make it harmless.&lt;/p&gt;
&lt;p&gt;The best operating model is a split ownership model. Analysts own the canvas logic and business intent. Data engineers own extension operators, Unity Catalog promotion paths, job schedules, and billing dashboards. That makes the tool productive without turning the warehouse into a craft fair.&lt;/p&gt;
&lt;h2 id=&quot;who-should-own-the-visual-canvas-now&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#who-should-own-the-visual-canvas-now&quot;&gt;&lt;span&gt;Who should own the visual canvas now?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lakeflow Designer GA is Databricks admitting that the transformation layer is no longer only an engineering surface. That is mostly good news for teams that are drowning in small requests.&lt;/p&gt;
&lt;p&gt;The trade is control for throughput. You should take the trade where Unity Catalog can contain the blast radius, jobs can expose the spend, and Git can preserve review. You should reject the trade where visual convenience hides model calls, full-table previews, or production schemas with no owner.&lt;/p&gt;
&lt;p&gt;The canvas belongs to analysts. The guardrails belong to you.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-lakeflow-designer-cost/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/release-notes/product/2026/june#lakeflow-designer-is-now-generally-available&quot;&gt;Databricks Release Notes: June 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/&quot;&gt;Databricks documentation: Lakeflow Designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/what-is-lakeflow-designer&quot;&gt;Databricks documentation: What is Lakeflow Designer?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/build-transformation&quot;&gt;Databricks documentation: Create a visual data prep in Lakeflow Designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/ingest-data&quot;&gt;Databricks documentation: Ingest data into Lakeflow Designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/built-in-operators&quot;&gt;Databricks documentation: Built-in operators in Lakeflow Designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/user-operators&quot;&gt;Databricks documentation: User-defined operators in Lakeflow Designer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/designer/operators-yaml-ref&quot;&gt;Databricks documentation: User-defined operator YAML reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/jobs/configure-task&quot;&gt;Databricks documentation: Configure and edit tasks in Lakeflow Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/admin/system-tables/serverless-billing&quot;&gt;Databricks documentation: Monitor the cost of serverless compute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/admin/account-settings/serverless-quotas&quot;&gt;Databricks documentation: Serverless compute quotas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Databricks Data Intelligence Platform, explained for builders</title>
    <link href="https://data-today.net/databricks/databricks-data-intelligence-platform/" />
    <updated>2026-06-07T00:00:00Z</updated>
    <id>https://data-today.net/databricks/databricks-data-intelligence-platform/</id>
    <content type="html">&lt;p&gt;If you last touched Databricks as &amp;quot;the Spark notebooks company&amp;quot;, the platform has grown into something much wider, and the bill grows with it. The &lt;strong&gt;Databricks Data Intelligence Platform&lt;/strong&gt; is the lakehouse stack that sits on top of your own cloud storage and tries to be the one place a data team ingests, governs, queries, and runs AI on its data. This guide is the starting point for our Databricks studio: what the platform actually is, how a workload executes, and where the money goes.&lt;/p&gt;
&lt;p&gt;The pitch is that a single platform on open Delta tables can replace the old split between a data lake for raw files and a warehouse for SQL. The interesting question for a builder is not the marketing, it is the plumbing: what runs where, what a DBU really is, and where the platform earns its keep versus where it quietly drains the budget.&lt;/p&gt;
&lt;h2 id=&quot;what-is-the-data-intelligence-platform-concretely&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#what-is-the-data-intelligence-platform-concretely&quot;&gt;&lt;span&gt;What is the Data Intelligence Platform, concretely?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The platform is a managed control plane that Databricks hosts, connected to compute and storage that run in &lt;strong&gt;your own cloud account&lt;/strong&gt; on AWS, Azure, or GCP. Your data sits in your cloud object storage as &lt;strong&gt;Delta Lake&lt;/strong&gt; tables, an open format built on Parquet with a transaction log that adds ACID transactions, time travel, and schema enforcement to plain files.&lt;/p&gt;
&lt;p&gt;Four layers stack on top of that storage, and it helps to hold them separate in your head:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; Delta tables in your object store, the open foundation everything else reads and writes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Governance:&lt;/strong&gt; Unity Catalog, the single metastore that owns permissions, lineage, and discovery across every workspace.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compute:&lt;/strong&gt; clusters, SQL warehouses, and serverless, the engines that actually do work and burn money.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intelligence:&lt;/strong&gt; Mosaic AI, the model serving, AI functions, and agent tooling layered across the rest.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The architectural fact worth internalizing is that &lt;strong&gt;storage and compute are fully decoupled&lt;/strong&gt;. Your tables persist whether or not anything is running, and you pay for compute only while an engine is on. That single design choice explains most of the platform&#39;s cost behaviour, which we will come back to.&lt;/p&gt;
&lt;h2 id=&quot;how-does-a-workload-actually-run&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#how-does-a-workload-actually-run&quot;&gt;&lt;span&gt;How does a workload actually run?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every piece of work runs on compute you choose, and picking the wrong type is the most common and most expensive beginner mistake. There are three broad families.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Compute type&lt;/th&gt;
&lt;th&gt;What it is for&lt;/th&gt;
&lt;th&gt;Billing shape&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;All-purpose clusters&lt;/td&gt;
&lt;td&gt;Interactive notebooks and ad hoc exploration&lt;/td&gt;
&lt;td&gt;Highest DBU rate, easy to leave running&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Job clusters&lt;/td&gt;
&lt;td&gt;Scheduled pipelines and production jobs&lt;/td&gt;
&lt;td&gt;Lower DBU rate, spun up and torn down per run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL warehouses&lt;/td&gt;
&lt;td&gt;BI and SQL queries on Databricks SQL&lt;/td&gt;
&lt;td&gt;Sized in T-shirt sizes, autoscale on concurrency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The unit on the Databricks side of the bill is the &lt;strong&gt;DBU&lt;/strong&gt;, a Databricks Unit, which meters processing per second at a rate that depends on the compute type and tier. Crucially, you pay that DBU charge &lt;strong&gt;on top of&lt;/strong&gt; the underlying cloud VM cost, which your cloud provider bills you separately. So a cluster left running overnight costs you twice: once in idle DBUs and once in idle EC2 or equivalent.&lt;/p&gt;
&lt;p&gt;The single most common cost surprise is an &lt;strong&gt;all-purpose cluster used for a job that should have run on a cheaper job cluster&lt;/strong&gt;, often with auto-termination disabled. Moving that workload to a job cluster with a short auto-termination window is usually the highest-return change a new team can make.&lt;/p&gt;
&lt;h2 id=&quot;where-does-the-cost-actually-go&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#where-does-the-cost-actually-go&quot;&gt;&lt;span&gt;Where does the cost actually go?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is the question that decides whether a Databricks workspace stays affordable, and the answer has layers you pay separately. The chart below shows the rough shape of a typical monthly spend: compute DBUs dominate at around &lt;strong&gt;65 percent&lt;/strong&gt;, the underlying cloud VMs are roughly &lt;strong&gt;25 percent&lt;/strong&gt;, and storage and egress are about &lt;strong&gt;10 percent&lt;/strong&gt;. The exact mix moves with your workload, but the lesson holds: compute, not storage, is where the bill lives.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/databricks-data-intelligence-platform-fig.png&quot; alt=&quot;Horizontal bars showing compute DBUs taking about 65 percent of a Databricks bill, underlying cloud VMs 25 percent, and storage 10 percent.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Illustrative: a typical split of monthly Databricks spend across compute DBUs, underlying cloud VMs, and storage. Data Today.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The good news is that the platform now bills its own usage into system tables you can query directly. The &lt;code&gt;system.billing.usage&lt;/code&gt; view in Unity Catalog records DBU consumption per workload, so you can attribute spend instead of guessing.&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt;
  usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;job_id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  sku_name&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;usage_quantity&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; dbus
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; system&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;billing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;usage&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;WHERE&lt;/span&gt; usage_date &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;current_date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;INTERVAL&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt; DAYS
&lt;span class=&quot;token keyword&quot;&gt;GROUP&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; usage_metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;job_id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; sku_name
&lt;span class=&quot;token keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;BY&lt;/span&gt; dbus &lt;span class=&quot;token keyword&quot;&gt;DESC&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;LIMIT&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That one query tells you which jobs are actually expensive, which is where any FinOps effort should start. We treat cost as its own recurring topic for exactly this reason.&lt;/p&gt;
&lt;h2 id=&quot;how-does-unity-catalog-change-governance&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#how-does-unity-catalog-change-governance&quot;&gt;&lt;span&gt;How does Unity Catalog change governance?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Unity Catalog is the platform&#39;s governance layer, and it is the piece that turns a pile of workspaces into one governed estate. It uses a &lt;strong&gt;three-level namespace&lt;/strong&gt;, &lt;code&gt;catalog.schema.table&lt;/code&gt;, so a fully qualified name like &lt;code&gt;prod.sales.orders&lt;/code&gt; means the same thing in every workspace attached to the metastore.&lt;/p&gt;
&lt;p&gt;Grants are standard SQL, which makes access reviews legible:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;GRANT&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;TABLE&lt;/span&gt; prod&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sales&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;orders &lt;span class=&quot;token keyword&quot;&gt;TO&lt;/span&gt; &lt;span class=&quot;token identifier&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;`&lt;/span&gt;analysts&lt;span class=&quot;token punctuation&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Beyond plain grants, Unity Catalog tracks &lt;strong&gt;column and table lineage&lt;/strong&gt; automatically, enforces row filters and column masks, and powers Delta Sharing for handing governed data to another organization without copying it. If you run more than one workspace, getting the catalog design right early is the decision that ages best, well before you tune a single query.&lt;/p&gt;
&lt;h2 id=&quot;where-does-mosaic-ai-fit&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#where-does-mosaic-ai-fit&quot;&gt;&lt;span&gt;Where does Mosaic AI fit?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mosaic AI is Databricks&#39; name for the AI features layered across the platform: &lt;strong&gt;Model Serving&lt;/strong&gt; for hosting models behind an endpoint, &lt;strong&gt;Vector Search&lt;/strong&gt; for retrieval, agent tooling like Agent Bricks, and SQL-native AI functions. The last of these is the easiest on-ramp, because you can call a model straight from a query:&lt;/p&gt;
&lt;pre class=&quot;language-sql&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sql&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;SELECT&lt;/span&gt; ai_query&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&#39;databricks-meta-llama-3-3-70b-instruct&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&#39;Summarize this ticket: &#39;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; ticket_body
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;AS&lt;/span&gt; summary
&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; support&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tickets
&lt;span class=&quot;token keyword&quot;&gt;LIMIT&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The honest read is that this is the fastest-moving and least settled part of the platform, which is precisely why it deserves sceptical coverage rather than hype. The practical stance for a builder is to let these functions accelerate well-bounded tasks, summarization, extraction, classification, while keeping a human reviewing anything that touches a customer or a production write. We will track each Mosaic AI capability as it ships and judge whether it is genuinely production-ready or still a demo.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-do-with-this&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#what-should-you-do-with-this&quot;&gt;&lt;span&gt;What should you do with this?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you are evaluating or running the Data Intelligence Platform, a few principles travel well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Match compute to the workload.&lt;/strong&gt; Job clusters for jobs, SQL warehouses for BI, serverless where the startup latency hurts. Never run production on an all-purpose cluster by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set auto-termination everywhere.&lt;/strong&gt; Idle compute is the most common line of waste, and it bills twice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query &lt;code&gt;system.billing.usage&lt;/code&gt;.&lt;/strong&gt; Attribute DBUs to jobs before you try to optimize anything.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design Unity Catalog early.&lt;/strong&gt; The three-level namespace and lineage pay off most when set before the estate sprawls.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adopt Mosaic AI deliberately.&lt;/strong&gt; Use it where review is cheap; gate it where mistakes are expensive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This guide is the foundation. From here the studio goes deeper on each piece: Lakeflow pipelines and ingestion, Databricks SQL warehouses and materialized views, Unity Catalog governance patterns, the compute and FinOps habits that keep DBUs in check, and the Mosaic AI features as they land. The platform is moving quickly, and the goal here is the same as everywhere on Data Today: tell you what actually changed and what it means for the thing you are building.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/databricks/databricks-data-intelligence-platform/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/&quot;&gt;Databricks Data Intelligence Platform documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/admin/system-tables/billing&quot;&gt;Databricks system tables for billing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/feed.xml&quot;&gt;Databricks release notes feed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
</feed>