Semantic Insights
Query structured data models using business-friendly metrics and dimensions without writing SQL.
Best for:
- Business metric reporting
- KPI dashboards
- Cross-functional analytics
- Model-based queries
Example use cases:
- "What's our monthly recurring revenue by region?"
- "Show customer acquisition cost by marketing channel"
- "Track product adoption metrics over time"
Understanding the Semantic Layer
The semantic layer provides a business-friendly abstraction over your raw data:
- Metrics: Pre-defined calculations (revenue, conversion rate, DAU)
- Dimensions: Attributes to slice data by (region, plan type, channel)
- Time dimensions: Date/time groupings (day, week, month, quarter)
- Relationships: How tables connect (users → orders → products)
Creating Semantic Insights
Reference semantic models to build queries without SQL:
// Example: Query semantic model via API{"semantic_definition": {"model": "sales","metrics": ["revenue", "order_count", "avg_order_value"],"dimensions": ["product_category", "customer_segment"],"time_dimension": "order_date","granularity": "month"},"filters": {"order_date": { "gte": "2025-01-01" },"customer_segment": ["enterprise", "mid-market"]}}
Semantic Model Structure
Semantic models define reusable business logic:
# Example semantic model definitiontable: salesschema: analyticsdescription: Sales and revenue metricsmeasures:- as: revenuetype: sumsql: amount- as: order_counttype: count_distinctsql: order_id- as: avg_order_valuetype: averagesql: amountdimensions:- as: product_categorytype: stringcolumn: category- as: customer_segmenttype: stringcolumn: segment- as: order_datetype: datetimecolumn: created_at
Benefits of Semantic Layer
- Consistency: Everyone uses the same metric definitions
- Accessibility: No SQL knowledge required
- Governance: Centralized business logic
- Reusability: Define once, use everywhere
- Type safety: Validated metrics and dimensions
Querying Semantic Models
Behind the scenes, semantic queries automatically generate optimized SQL based on your metric and dimension selections. The semantic layer handles joins, aggregations, and time groupings, so you can focus on selecting the metrics and dimensions you need without writing SQL. The generated queries are optimized for performance and leverage indexes and caching automatically.
For more complex queries that require custom logic, consider using SQL insights instead.