apache / apache/polaris

Add OSI (Open Semantic Interchange) Support in Polaris

Open
#4,522 1 comment 4 reactions 1 assignee Claimed by @flyrain View on GitHub
enhancement stale
Dominant language
Java
Stars
2.1k
Forks
522
Avg merge
1d 22h
Merged PRs (30d)
137

Description

### Is your feature request related to a problem? Please describe.

Polaris already governs physical table metadata via the Iceberg/Polaris REST Catalog API. The semantic layer above those tables is currently scattered across dbt projects, Cube definitions, BI-tool-specific YAML, and vendor-owned semantic views. Each consumer (BI dashboard, LLM agent, notebook) re-derives definitions like "monthly recurring revenue" from incomplete inputs. By hosting OSI models in Polaris, we can support following use cases:
1. AI agent grounding. An LLM agent answering "what were our top three metrics by region last quarter?" loads the relevant OSI models, reads ai_context for descriptions and synonyms, walks dataset.source to find the underlying tables, and constructs an accurate query. Polaris is the system of record for "what metrics exist and what do they mean."
2. BI catalog browsing. A BI tool lists all semantic models under a namespace via the Polaris API, populates its metric grid from the returned identifiers and ai_context, and lets users drag metrics onto dashboards. The same definitions feed dashboards in tools that don't share a backend.
3. Multi-engine metric consistency. A data team defines monthly_recurring_revenue once as an OSI metric in Polaris. Spark, Trino, and others clients each read the same definition (with their respective SQL dialect picked from expression.dialects[]) and produce identical numbers. Without this, each engine's BI layer re-derives the metric independently and the numbers drift.

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.