Semantic layers compared (as of 2026-10-07)
Why it matters for AI
A semantic layer maps business terms (revenue, active customer) to governed SQL/measure definitions. For text-to-SQL and data agents this replaces “guess the join over raw tables” with “pick a named metric”, which vendors present as a main lever for accuracy and consistency, with the same definitions serving BI and agents. Vendors say this repeatedly (e.g. Snowflake: semantic views “improve AI accuracy by combining LLM reasoning with rule-based definitions”; dbt docs: answers use “governed metrics instead of guessing at raw tables”). No independent accuracy benchmark was verified for this note. Companion: data-readiness-for-enterprise-ai, ontology (the concept layer above metrics).
Comparison
| Layer | Where it lives | Open / licence | Definition format | AI hooks (status per source) |
|---|---|---|---|---|
| dbt Semantic Layer / MetricFlow (dbt) | dbt platform APIs; MetricFlow engine | MetricFlow Apache 2.0 (repo; v0.213.0, 2026-09-10, GitHub API); Semantic Layer on Starter, Enterprise, Enterprise+ plans (dbt docs) | YAML in the dbt project | dbt MCP server (documented, no GA/beta label; repo Apache-2.0); text_to_sql tool only in the remote MCP server and consumes dbt Copilot actions |
| Snowflake semantic views (snowflake-ai-data-cloud) | Schema-level objects inside Snowflake | Proprietary, Snowflake only | SQL DDL, Semantic Studio, AI wizard | Used by Cortex Analyst REST API and Cortex Agents; shareable via Marketplace; documented as production feature (docs fetched 2026-10-07) |
| Databricks metric views (databricks-data-intelligence-platform, databricks-unity-catalog) | Unity Catalog objects | Proprietary, Databricks only | YAML, validated; star/snowflake joins; materialisation with query rewrite | Genie, dashboards, alerts, external BI (Power BI, Tableau, Sigma); agent metadata (synonyms, display names); docs updated 2026-09-11 |
| Cube (cube-semantic-layer) | Headless service in front of warehouse | Core: Apache 2.0 backend, MIT client | YAML/JS data model | MCP server, text-to-SQL, chat and dashboard agents (vendor site) |
| AtScale (atscale) | Virtualised layer between BI and warehouse | Commercial; SML open modelling language | SML | MCP server (vendor site) |
| Power BI semantic models (power-bi) | Power BI/Fabric service | Proprietary | DAX, TMDL | Copilot and Fabric data agents; Fabric IQ ontology can be generated from semantic models (docs, 2026-09-29) |
| LookML (looker) | Looker | Proprietary language | LookML in Git | Conversational Analytics grounded in LookML; managed MCP server (status per the vault notes, not rechecked); see looker-mcp-server |
| Fabric IQ ontology (microsoft-onelake-and-fabric-data-platform) | Fabric workload | Proprietary; imports RDF/OWL | Entities, relationships, rules, metrics (DAX measures carried over) | Ontology (preview) grounds data and operations agents; graph model optional |
Interchange
Apache Ossie (formerly Open Semantic Interchange, OSI; Apache incubating project; start date of incubation not verified) is the attempt to make these portable; reference converters exist for dbt, GoodData, Polaris and Salesforce, and the Snowflake/Databricks/Microsoft layers are not yet listed as converters in the repo (Microsoft support is an unverified lead).
Choosing (opinion)
- Single-platform estate: use the native layer (Snowflake semantic views, Databricks metric views, Power BI/Fabric) because the agents (Cortex, Genie, Fabric data agents) read it directly.
- Multi-platform or BI-tool-neutral: dbt Semantic Layer, Cube or AtScale; pick dbt if transformation is already there.
- Business-concept reasoning across systems: add an ontology layer (knowledge-graph-and-ontology-platforms).
- Whatever you choose, keeping definitions in code and exporting to Ossie may limit lock-in (opinion).
Sources (fetched 2026-10-07)
- https://docs.snowflake.com/en/user-guide/views-semantic/overview
- https://docs.databricks.com/aws/en/metric-views/
- https://learn.microsoft.com/en-us/fabric/iq/overview
- https://docs.getdbt.com/docs/use-dbt-semantic-layer/dbt-sl ; https://github.com/dbt-labs/metricflow
- https://cube.dev ; https://github.com/cube-js/cube ; https://www.atscale.com/blog
- https://github.com/apache/ossie (README: formerly OSI; converters for dbt, GoodData, Polaris, Salesforce; no Snowflake/Databricks/Microsoft mention) ; https://docs.getdbt.com/docs/dbt-ai/about-mcp ; https://www.atscale.com/ (SML open, MCP) ; https://cube.dev (MCP server, Analytics Chat, Dashboard Agent); Cube licences from the repo README (Apache 2.0 backend, MIT client)
- Vault notes for Looker and Power BI (which cite their own sources).
Open items
- Claims re-checked 2026-10-07 against primary pages: dbt, Snowflake, Databricks, Fabric IQ, Cube, AtScale, Ossie README. Not re-checked: LookML/Looker row (relies on vault notes), the dbt Wizard feature (removed from the table as unverified), Ossie incubation start date, Cube MCP/agent GA status (homepage only).
- agy-search returned no output (timeouts); verified by WebFetch/curl only.
- Independent text-to-SQL accuracy comparisons across these layers: none verified.
- Snowflake/Databricks participation in Ossie converters; Microsoft’s 2026-09-30 announcement: unverified.
- LookML docs page itself not read (redirected); Looker facts come from looker.