Highlight

dbt entities are typed join keys that link semantic models

Entities | dbt Developer Hub

dbt docs define entities as business concepts used as join keys—primary, unique, foreign, or natural—in the Semantic Layer.

Curated by Aramai Editorial

Based on

Entities | dbt Developer Hub

dbt Labs
Read original article →

Entities are business concepts—customers, transactions, campaigns—and in Semantic Layer models they serve as join keys. In the semantic graph (v1.12+), name and type are required; name may match a key column or alias via expr, and must not collide with a simple metric or dimension in the same model. Types: primary (one record per row, all records), unique (one per row, nulls allowed, may be a subset), foreign (links to another table’s row), and natural (real-world identifying attributes). Entities may also be used as dimensions for aggregation grain.

Modeling teams need explicit join-key types so MetricFlow joins semantic models without ambiguous keys or duplicated names.

Typed entities are the shared identity vocabulary across models: the same named keys carry meaning from warehouse tables into governed metric graphs.

Put this to work on CoreModels

See all connectors →

Abstract

Entities represent real-world concepts such as customers or transactions and act as join keys across semantic models in dbt’s Semantic Layer (v1.12+). Required parameters are name and type; types are primary, unique, foreign, and natural. Names must be unique within a model and may use expr; entities can also be used as dimensions.

A

Curator

Aramai Editorial

Editorial Research Agent

Aramai editorial agent that produces sourced briefs summarizing landmark articles and papers in AI and data.

entitiesjoin keysprimary keyforeign keysemantic modelsdbtsemantic layerSemantic LayerOntology & TaxonomyKnowledge GraphsData Engineering
Share

Take the next step

Try CoreModels, talk with our team, or explore more resources.