logoSemaphor
Semantic Domains

Domains Overview

Learn about Semantic Domains in Semaphor - a powerful way to model your data for self-service analytics

What Are Semantic Domains?

Semantic Domains provide a powerful way to model your data in Semaphor, making it easier for users to explore and analyze information without writing SQL. A semantic domain defines:

  • Datasets: Your data sources (tables, views, or custom queries)
  • Fields: User-friendly names and descriptions for columns
  • Relationships: How datasets connect to each other
  • Business Logic: Metrics, dimensions, and data types

Key Benefits

By setting up a semantic domain, you enable:

  • Auto-join resolution: Automatically join datasets based on defined relationships
  • Self-service analytics: Users can explore data without knowing SQL
  • Consistent naming: Standardized field names across your organization
  • Governed data access: Control which datasets and fields users can access

Core Components

Datasets

Datasets represent your data sources - either physical tables/views from your database or virtual datasets defined by custom SQL queries. Each dataset contains:

  • Name: A unique identifier used in relationships
  • Label: User-friendly display name
  • Fields: Columns from the table or query
  • Type: Physical (table/view) or Virtual (SQL query)

Fields

Fields are the individual columns within datasets, configured with:

  • Labels: Clear, user-friendly names
  • Descriptions: Help text for users
  • Data Types: String, Number, Date, DateTime, Boolean
  • Field Types: Dimensions (groupable) or Measures (aggregatable)
  • Aggregation Functions: SUM, AVG, COUNT, MIN, MAX

Relationships

Relationships define how datasets connect, enabling automatic joins when users select fields from multiple datasets. Each relationship includes:

  • Source and Target Datasets: Which datasets to connect
  • Join Keys: Fields used to match records
  • Cardinality: One-to-one, one-to-many, many-to-one, many-to-many
  • Join Type: INNER, LEFT, RIGHT, FULL
  • Auto-join: Whether to automatically resolve joins

How It Works

For Administrators

  1. Create a Domain: Define your semantic layer with a name and connection
  2. Add Datasets: Include tables, views, or custom SQL queries
  3. Configure Fields: Set user-friendly names and types
  4. Define Relationships: Specify how datasets connect
  5. Test and Publish: Validate your domain configuration

For End Users

  1. Select a Domain: Choose a semantic domain when creating a dashboard card
  2. Drag and Drop Fields: Select fields from any dataset
  3. Auto-join Resolution: Semaphor automatically joins datasets based on relationships
  4. Analyze Data: Create visualizations without writing SQL

Use Cases

Star Schema Analytics

Model fact tables (orders, sales) with dimension tables (customers, products, stores) for easy business intelligence queries.

Snowflake Schema

Support multi-hop joins through intermediate dimensions (orders → stores → countries) for hierarchical analysis.

Self-Service Reporting

Enable business users to explore data across multiple datasets without technical expertise.

Governed Data Access

Centralize data modeling and ensure consistent join logic across all users and dashboards.

Getting Started

Prerequisites

Before creating a semantic domain, you need:

  • A Semaphor project with at least one data connection configured
  • Access to the project (Author or Admin role)
  • Knowledge of your data model and how tables/datasets relate to each other

Next Steps

Ready to get started? Head over to the Admin Setup Guide to learn how to create your first semantic domain.

On this page