Skip to main content

dbt Semantic Layer FAQs

The dbt Semantic Layer is a dbt Cloud offering that allows users to centrally define their metrics within their dbt project using MetricFlow.

The dbt Semantic Layer offers:

  • Dynamic SQL generation to compute metrics
  • APIs to query metrics and dimensions
  • First-class integrations to query those centralized metrics in downstream tools

The dbt Semantic Layer is powered by MetricFlow, which is a source-available component.

Overview of the dbt Semantic Layer

 What are the main benefits of using the dbt Semantic Layer?
 What's the main difference between the dbt Semantic Layer and dbt Metrics?
 Is there a dbt Semantic Layer discussion hub?
 How does the dbt Semantic Layer fit with different modeling approaches (Medallion, Data Vault, Dimensional modeling)?
 How is the dbt Semantic Layer priced?


 What data platforms are supported by the dbt Semantic Layer?
 Do I need to be on a specific version of dbt to use dbt Semantic Layer?
 Does dbt Semantic Layer require a specific dbt Cloud plan?
 Is there a way to leverage dbt Semantic Layer capabilities in dbt Core?
 Is there a solution or licensing path for an organization that doesn't use dbt for pipelining, but might like to implement the dbt Semantic Layer?

How does the dbt Semantic Layer work?

 Why is the dbt Semantic Layer better than using tables or dbt models to calculate metrics?
 Do I materialize anything when I define a semantic model?
 Is the dbt Semantic Layer a physical copy of your data stored on your data warehouse?
 How does the Semantic Layer handle data?
 Does our agreement, the Terms of Service (ToS) for dbt Cloud, apply to the Semantic Layer?
 Where is MetricFlow hosted? How do queries pass through MetricFlow and dbt Cloud and back to the end user?
 How do I configure the dbt Semantic Layer?
 How does caching work in the dbt Semantic Layer?
 Does the dbt Semantic Layer expect all models to be in normalized format?
 How are queries optimized to not scan more data than they should?
 What are the latency considerations of using the dbt Semantic Layer?
 What if different teams have different definitions?

Build metrics and semantic models

 Can I define my own aggregations?
 How are joins identified in the semantic model?
 What is the benefit of “expr” used in semantic models and metric configurations?
 Do you support semi-additive metrics?
 Can I use an entity as a dimension?

Available integrations

 What integrations are supported today?
 How can I benefit from using the dbt Semantic Layer if my visualization tool is not currently supported?
 Why should I use exports as opposed to defining a view within my data platform?
 Can metric descriptions be viewed from third-party tools?

Permissions and access

 How do fine-grained access controls work with the dbt Semantic Layer?


 Which ‘staging layer’ should the dbt Semantic Layer talk to? Raw, staging, or marts?
 Should semantic layer credentials mirror those for production environments? Or should they be different?
 How does the dbt Semantic Layer support a dbt Mesh architecture design?
 How do I migrate from the legacy Semantic Layer?