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
- Create a Domain: Define your semantic layer with a name and connection
- Add Datasets: Include tables, views, or custom SQL queries
- Configure Fields: Set user-friendly names and types
- Define Relationships: Specify how datasets connect
- Test and Publish: Validate your domain configuration
For End Users
- Select a Domain: Choose a semantic domain when creating a dashboard card
- Drag and Drop Fields: Select fields from any dataset
- Auto-join Resolution: Semaphor automatically joins datasets based on relationships
- 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
Admin Setup
Learn how to create and configure semantic domains as an administrator
User Guide
Discover how to use semantic domains to build dashboards and explore data
Troubleshooting
Find solutions to common issues with semantic domains
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.