Honeydew Semantic Layer enables to create a source of truth for an organization business logic. High Level Architecture 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.