Honeydew Semantic Layer enables to create a source of truth for an organization business logic.

The following objects exist in Honeydew:

  1. Honeydew workspace: A stand-alone semantic model. Resides in a single directory in a git repository.

  2. Entity: a granular business concept (like “customer” or “transaction”) that is mapped to data in a data warehouse. Entities are connected by relations.

  3. Source Data: Data mapping to an entity. Defines the physical place for the data of an entity.

  4. Source Attributes: Columns in a source table that appear as attributes (properties) of the enclosing entity. For example, the customer_id column might be mapped to the id attribute of the customer entity.

  5. Calculated Attributes: Virtual columns in an entity. Defined by a calculation, calculated attributes extend the properties of an entity. For example, may define an amount_usd property that is based on multiplying a transaction amount by the daily exchange rate for USD.

  6. Metrics: Aggregations that can be performed on an entity. Defined by an aggregative statement, metrics set how data of an entity is counted to build a KPI. For example, may define a total_sales metric that aggregates sales data using a SUM. Metrics are a core concept to a Semantic Layer.

  7. Domains: A business domain defined by a selection of fields from different entities, and an accompanying configuration like data filtering. A domain allows to map subsets of the semantic layer to specific use cases like a sales BI environment or an AI agent.

Additional optional objects in a workspace may include:

  1. Parameters: Global parameters that are used to adjust the behavior of the semantic layer.

  2. Dynamic Datasets: Materialized datasets built by the semantic layer as database objects or dbt models.