Semantic Model¶
Last updated: 2026-04-27 Tags: semantic model, RPD, data model, BI server, logical layer, physical layer, presentation layer, measures, dimensions, hierarchies
π Full Oracle Documentation: Building Semantic Models in OAC Β· SMML Schema Reference
Summary¶
The Semantic Model (historically called the RPD β Repository Definition File) is the heart of Oracle Analytics Cloud's enterprise analytics capability. It provides a business-friendly abstraction over raw database schemas, enabling consistent metric definitions, automatic join resolution, and cross-source federation. OAC offers two tools to build it: the modern Semantic Modeler (browser-based) and the legacy Model Administration Tool (desktop, .rpd file-based).
Three-Layer Architecture¶
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PRESENTATION LAYER (what users see) β
β Subject Areas β Folders β Columns β
β Controls display names, visibility, sort order β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β BUSINESS MODEL & MAPPING LAYER (logical model) β
β Logical tables, joins, measures, calculations β
β Single "logical" view across all physical tablesβ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β PHYSICAL LAYER (raw database objects) β
β Tables, views, stored procs, physical joins β
β One node per connection / database β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Physical Layer¶
- Represents actual database tables and views
- Each physical database node = one connection
- Physical tables map to DB tables or views
- Physical columns map to DB columns with data types
- Physical joins define foreign key relationships
- Can include opaque views (inline SQL as a virtual table)
Business Model & Mapping (BMM) Layer¶
- One or more Logical Tables (dimensions or facts)
- Logical columns can map to multiple physical columns (federation)
- Logical table sources (LTS) define which physical table backs a logical table
- Logical joins (simplified β no ON clause needed, BI Server handles it)
- Measures have aggregation rules: SUM, COUNT, AVG, MIN, MAX, COUNT DISTINCT
- Derived measures: calculated from other logical columns (e.g.,
"Revenue" / "Units")
Presentation Layer¶
- One or more Subject Areas exposed to users
- Each Subject Area β folders β columns
- Can rename, hide, or reorder columns from the BMM layer
- Presentation columns can be marked as hidden (not visible in UI)
Semantic Modeler (Browser-Based)¶
Introduced in OAC 2022. Fully browser-based, no desktop tool needed.
Key Capabilities¶
- Visual table diagram editor
- Integrated expression editor with auto-complete
- Import tables from connections with drag-and-drop
- Direct deploy to OAC (no file upload needed)
- Version history and change tracking
- Workspaces for collaborative development
Navigation¶
Home β Semantic Model (tile) β Open / Create Model
βββ Physical Layer (tables, joins)
βββ Logical Layer (BMM)
βββ Presentation Layer (Subject Areas)
Creating a Semantic Model (Steps)¶
- Home β Create β Semantic Model
- Name the model
- Physical Layer β Add database β Import tables
- Define physical joins
- Logical Layer β Create business model β Map physical tables
- Define measures (aggregation rules)
- Create hierarchies for drill-down
- Presentation Layer β Create Subject Area β Add logical columns
- Deploy β saves and activates for querying
Model Administration Tool (Classic RPD)¶
Legacy desktop tool for .rpd file management. Still supported in OAC.
When to Use¶
- Migrating existing OBIEE/OAS RPDs to OAC
- Advanced features not yet in Semantic Modeler (e.g., initialization blocks, session variables)
- Batch scripting with OBIEE utilities
Upload RPD to OAC¶
β οΈ Warning: Once you start using the browser-based Semantic Modeler for a model, you cannot edit it with the Model Administration Tool (they are different formats internally).
Key Concepts¶
Dimensions vs. Facts¶
| Type | Logical Table Type | Typical Contents |
|---|---|---|
| Dimension | Dimension | Customer, Product, Time, Geography |
| Fact | Fact (measure source) | Revenue, Units, Cost, Transactions |
Hierarchies¶
Enable drill-down in analyses and workbooks.
Level-Based Hierarchy (most common):
Parent-Child Hierarchy: Used for recursive structures (org charts, GL accounts).
Variables¶
| Type | Scope | Purpose |
|---|---|---|
| Repository Variable | Server-wide | Static or dynamic values (e.g., current fiscal year) |
| Session Variable | Per-user session | User context (e.g., NQ_SESSION.USER, NQ_SESSION.GROUP) |
| Presentation Variable | Per-request | Dashboard prompt selections |
| Request Variable | Per-query | Override session variables temporarily |
Initialization Blocks populate Repository and Session variables at login by running a SQL query against a data source.
Aggregate Navigation¶
The BI Server can automatically route queries to pre-aggregated tables (aggregate tables) to improve performance:
- Define aggregate tables in the Physical Layer
- Map them as additional Logical Table Sources in the BMM Layer
- BI Server chooses the most appropriate aggregate level automatically
Fragmentation / Content Filtering¶
Used to partition data across multiple physical sources:
- Filter by time period (e.g., LTS1 = current year, LTS2 = historical)
- Filter by region (e.g., LTS1 = EMEA, LTS2 = AMER)
Expression Language (Logical)¶
Common expressions in logical column definitions:
-- Derived measure
"Fact - Sales"."Revenue" / "Fact - Sales"."Units"
-- Conditional
CASE WHEN "Dim - Customer"."Segment" = 'Premium' THEN 1 ELSE 0 END
-- Time series (within semantic model)
AGO("Fact - Sales"."Revenue", "Dim - Time"."Month", 1)
Physical SQL vs. Logical SQL¶
| Physical SQL | Logical SQL | |
|---|---|---|
| Language | DB-specific (Oracle SQL, T-SQL, etc.) | OAC Logical SQL |
| Generated by | BI Server β sent to DB | Users/developers β sent to BI Server |
| Joins | Explicit | Automatic (BI Server resolves) |
| References | Physical column names | Logical presentation layer names |
Best Practices¶
π‘ Tip: Always define measures in the BMM layer with explicit aggregation rules. Never let them default to "none."
π‘ Tip: Keep the Presentation Layer display names user-friendly β this is what business users see in the Subject Area picker.
β οΈ Warning: Circular logical joins cause infinite query loops. Always check for cycles in the BMM layer.
π‘ Tip: Use opaque views in the Physical Layer to push complex SQL down to the database rather than processing in the BI Server.