The semantic layer helps Buster understand your data structure, relationships, and business logic.

What is a Semantic Layer?

A semantic layer acts as a translation layer between your raw data and Buster’s AI. It defines:

  • Business entities (users, orders, products)
  • Dimensions (attributes used for grouping, filtering, or segmenting data like dates, categories, statuses, or IDs)
  • Measures (quantifiable data)
  • Metrics (calculations)
  • Relationships between models

By centralizing these definitions, the semantic layer allows Buster to generate accurate SQL, understand business metrics consistently, and provide reliable insights from your data, rather than relying on potentially inconsistent logic defined elsewhere.

Why Use a Semantic Layer?

Centralized Business Logic

Define business logic and metrics once in a versioned, testable modeling layer (‘shifting left’), ensuring consistent reuse across all analyses.

Data Relationships

Map connections between tables so Buster can navigate your data model.

Context & Meaning

Add descriptions and metadata to help Buster understand what your data represents.

Data Governance

Control which data is accessible and how it can be used.

Semantic Layer Components

Buster’s semantic layer is defined using YAML files that describe:

  1. Models: Business entities that typically map to database tables
  2. Dimensions: Attributes used for grouping, filtering, or segmenting data (like dates, categories, statuses, or IDs)
  3. Measures: Quantitative fields that can be aggregated
  4. Metrics: Calculations based on measures and dimensions
  5. Filters: Reusable, named boolean conditions for common query constraints
  6. Relationships (Entities): Connections between different models

Getting Started

To build your semantic layer:

  1. Generate models from dbt catalog (optional)
  2. Define your models
  3. Add dimensions and measures
  4. Create metrics
  5. Define filters
  6. Establish relationships
  7. View complete examples