[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-dbt-semantic-layer-centralizes-metrics-en":3,"article-related-dbt-semantic-layer-centralizes-metrics-en":30,"series-tools-f91d329a-0570-406f-abf8-2fb5444890f6":73},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"f91d329a-0570-406f-abf8-2fb5444890f6","dbt-semantic-layer-centralizes-metrics-en","dbt Semantic Layer centralizes metric definitions","\u003Cp data-speakable=\"summary\">dbt Semantic Layer centralizes metric definitions in dbt and keeps them consistent across tools.\u003C\u002Fp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fdbt-sl\" target=\"_blank\" rel=\"noopener\">dbt Labs\u003C\u002Fa> is pushing metric logic out of BI dashboards and into the model layer, and the pitch is simple: define a metric once, use it everywhere. The \u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fdbt-sl\" target=\"_blank\" rel=\"noopener\">dbt Semantic Layer\u003C\u002Fa> uses \u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fbuild\u002Fmetricflow\" target=\"_blank\" rel=\"noopener\">MetricFlow\u003C\u002Fa> to handle joins and metric definitions, so a change in dbt can flow into every downstream query that depends on it.\u003C\u002Fp>\u003Cp>That matters because metric drift is one of the quietest ways analytics teams lose trust. If revenue, active users, or retention are defined slightly differently in each dashboard, then every meeting turns into a debate about numbers instead of decisions.\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Fact\u003C\u002Fth>\u003Cth>What the docs say\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Account tiers\u003C\u002Ftd>\u003Ctd>Starter or Enterprise\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Tenant support\u003C\u002Ftd>\u003Ctd>Multi-tenant and Single-tenant\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Last updated\u003C\u002Ftd>\u003Ctd>Jun 25, 2026\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Core engine\u003C\u002Ftd>\u003Ctd>MetricFlow\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>What dbt Semantic Layer actually does\u003C\u002Fh2>\u003Cp>The Semantic Layer moves metric definitions into the dbt project itself. Instead of re-creating the same calculation in Looker, Tableau, or a custom app, teams define the metric on top of existing models and let dbt handle the joins and query logic.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782633768952-3kp4.png\" alt=\"dbt Semantic Layer centralizes metric definitions\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>That design cuts out a familiar source of duplication. The docs describe it as a way to eliminate duplicate coding while giving downstream tools a consistent way to query business metrics.\u003C\u002Fp>\u003Cp>In practice, that means a metric such as revenue can be defined once in dbt and then consumed by multiple applications without each one inventing its own version of the truth.\u003C\u002Fp>\u003Cul>\u003Cli>Metric definitions live in the modeling layer, not in BI-specific logic.\u003C\u002Fli>\u003Cli>Downstream tools query the same metric definition.\u003C\u002Fli>\u003Cli>Updates in dbt refresh wherever the metric is used.\u003C\u002Fli>\u003Cli>MetricFlow handles the joins needed to answer metric queries.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Why teams care about one metric definition\u003C\u002Fh2>\u003Cp>Most analytics stacks do not fail because the warehouse is slow. They fail because five teams use five slightly different definitions for the same business number. Finance wants one version of revenue, growth wants another, and product analytics quietly ships a third.\u003C\u002Fp>\u003Cp>The dbt approach tries to collapse that mess into a single definition owned by the data team. If the definition changes, the new version propagates across every application that invokes it, which is exactly the kind of consistency most organizations want but rarely get.\u003C\u002Fp>\u003Cblockquote>“A semantic layer is the missing piece of the modern data stack.” — Tristan Handy, co-founder and CEO of dbt Labs\u003C\u002Fblockquote>\u003Cp>That quote from \u003Ca href=\"https:\u002F\u002Fwww.dbtlabs.com\u002F\" target=\"_blank\" rel=\"noopener\">dbt Labs\u003C\u002Fa> co-founder and CEO \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ftristanhandy\u002F\" target=\"_blank\" rel=\"noopener\">Tristan Handy\u003C\u002Fa> captures the product strategy pretty well. dbt is betting that the model layer should own business logic, while BI tools should focus on presentation and exploration.\u003C\u002Fp>\u003Cp>The docs also call out secure access control, which matters if a semantic layer is going to feed multiple teams and multiple apps. Centralization only helps if the right people can query the right metrics without exposing more data than they should see.\u003C\u002Fp>\u003Ch2>How dbt packages setup, deployment, and access\u003C\u002Fh2>\u003Cp>The docs break the workflow into four practical chunks: getting started, configuring access, deploying metrics, and consuming them through integrations. That structure is useful because it matches how teams actually adopt the feature, from first setup to production use.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782633771359-76qv.png\" alt=\"dbt Semantic Layer centralizes metric definitions\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>To use the Semantic Layer, you need a dbt Starter or Enterprise account. The docs also support both multi-tenant and single-tenant setups, although single-tenant customers need to contact a representative for enablement.\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fquickstart\" target=\"_blank\" rel=\"noopener\">Quickstart with the Semantic Layer\u003C\u002Fa> covers setup and querying.\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fbuild-metrics\" target=\"_blank\" rel=\"noopener\">Build your metrics\u003C\u002Fa> explains central metric definitions in dbt.\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fadmin\" target=\"_blank\" rel=\"noopener\">Administer the Semantic Layer\u003C\u002Fa> covers credentials and tokens.\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fdeploy\" target=\"_blank\" rel=\"noopener\">Deploy your Semantic Layer\u003C\u002Fa> explains how to materialize metrics.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>There is also a clear split between query-time use and precomputed use. dbt mentions exports, scheduled queries, result caching, and declarative caching, which gives teams a few ways to trade freshness for speed when a metric gets hit repeatedly.\u003C\u002Fp>\u003Cp>That is a practical detail, because semantic layers often fail in the real world when every dashboard query becomes a slow, expensive join fest. dbt is trying to keep the abstraction useful without making the warehouse miserable.\u003C\u002Fp>\u003Ch2>How it compares with the old BI-first model\u003C\u002Fh2>\u003Cp>Traditional BI setups often let each tool define its own metrics. That can work for a while, until the company grows and everyone starts asking why the same KPI differs between dashboards.\u003C\u002Fp>\u003Cp>dbt’s approach moves the source of truth closer to the data models. Here is the real tradeoff in plain numbers and operational terms:\u003C\u002Fp>\u003Cul>\u003Cli>One metric definition in dbt instead of separate logic in multiple BI tools.\u003C\u002Fli>\u003Cli>One refresh path for changes, instead of manual updates in each downstream app.\u003C\u002Fli>\u003Cli>One permission model for the Semantic Layer, instead of scattered access rules.\u003C\u002Fli>\u003Cli>One query interface through APIs and integrations for many consumers.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>The docs also point to integrations and Semantic Layer APIs, which matters because the value only shows up when teams can actually use the metrics in the tools they already have. A semantic layer that nobody queries is just extra architecture.\u003C\u002Fp>\u003Cp>If you want the broader product context, OraCore’s coverage of \u003Ca href=\"\u002Fnews\u002Fdbt-fusion-engine\" target=\"_blank\" rel=\"noopener\">dbt Fusion Engine\u003C\u002Fa> helps explain where dbt is heading with local development and platform workflows.\u003C\u002Fp>\u003Ch2>The real test is adoption, not architecture\u003C\u002Fh2>\u003Cp>dbt Semantic Layer makes a strong case for treating metrics like code: versioned, centralized, and shared. That is a cleaner model than letting every BI tool improvise its own definitions, especially for teams that need consistent numbers across finance, product, and operations.\u003C\u002Fp>\u003Cp>The question now is whether teams will adopt it deeply enough to replace the old habit of rebuilding metrics in dashboards. If they do, the next practical win is faster trust in numbers and fewer meetings spent reconciling definitions.\u003C\u002Fp>\u003Cp>For data teams evaluating the feature, the next step is straightforward: start with one high-stakes metric, define it in dbt, and test whether the same number survives the round trip through every downstream tool. If it does, the Semantic Layer is doing real work.\u003C\u002Fp>","dbt Semantic Layer moves metric definitions into dbt so teams query one source of truth across tools and apps.","docs.getdbt.com","https:\u002F\u002Fdocs.getdbt.com\u002Fdocs\u002Fuse-dbt-semantic-layer\u002Fdbt-sl",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782633768952-3kp4.png","tools","en","1ece26e6-2136-42f5-9b97-0e116cf50623",[17,18,19,20,21],"dbt Semantic Layer","MetricFlow","semantic layer","data metrics","analytics engineering",[23,24,25],"dbt Semantic Layer centralizes metric definitions inside dbt.","MetricFlow handles joins and query logic for downstream consumers.","Starter and Enterprise accounts can use the feature, with multi-tenant and single-tenant support.",0,"2026-06-28T08:02:27.867805+00:00","2026-06-28T08:02:27.859+00:00","8b357a5b-b8ff-45f8-bc55-13f4fc7042af",{"tags":31,"relatedLang":32,"relatedPosts":36},[],{"id":15,"slug":33,"title":34,"language":35},"dbt-semantic-layer-centralizes-metrics-zh","dbt 把指標定義收回來了","zh",[37,43,49,55,61,67],{"id":38,"slug":39,"title":40,"cover_image":41,"image_url":41,"created_at":42,"category":13},"c0e1cb25-3bed-460f-8d23-bae34cec2075","codex-app-april-upgrade-agent-work-units-en","Codex App 4月升级，把 Agent 拆成工作单元","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782660768212-t813.png","2026-06-28T15:32:23.853571+00:00",{"id":44,"slug":45,"title":46,"cover_image":47,"image_url":47,"created_at":48,"category":13},"37e7a077-6718-4c0b-be97-e925dfb4d61a","databricks-external-model-endpoints-governance-en","Databricks should keep external model serving endpoints tightly gover…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782636466333-fduw.png","2026-06-28T08:47:22.599027+00:00",{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"76829ec6-953d-4ae8-8cbd-7d4ebf92ed5f","golangci-lint-faq-ci-policy-en","Golangci-lint’s FAQ turns CI noise into a policy","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782607698288-yn0f.png","2026-06-28T00:47:54.495313+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"a8344911-b020-4892-ba6c-621df2dc11f8","gorm-advanced-query-helpers-guardrails-en","GORM query helpers turn SQL into guardrails","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782606800691-nx1d.png","2026-06-28T00:32:59.159701+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"af69202e-8810-49fc-ba85-dfd18ae1217e","golangci-lint-v2-5-0-revive-checks-en","Golangci-lint v2.5.0 adds 8 revive checks","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782605879327-gt0d.png","2026-06-28T00:17:31.879198+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"5521addb-874b-44fe-a38d-32f4299010d2","open-source-ai-projects-developers-2026-en","7 open-source AI projects developers need in 2026","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782593283378-u4f3.png","2026-06-27T20:47:36.97629+00:00",[74,79,84,89,94,99,104,109,114,119],{"id":75,"slug":76,"title":77,"created_at":78},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":80,"slug":81,"title":82,"created_at":83},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]