776 lines
18 KiB
Markdown
776 lines
18 KiB
Markdown
# Graphical and SQL Views Reference
|
|
|
|
**Source**: [https://github.com/SAP-docs/sap-datasphere/tree/main/docs/Acquiring-Preparing-Modeling-Data](https://github.com/SAP-docs/sap-datasphere/tree/main/docs/Acquiring-Preparing-Modeling-Data)
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
1. [Graphical Views](#graphical-views)
|
|
2. [SQL Views](#sql-views)
|
|
3. [Entity-Relationship Models](#entity-relationship-models)
|
|
4. [Intelligent Lookups](#intelligent-lookups)
|
|
5. [View Operations](#view-operations)
|
|
6. [Input Parameters](#input-parameters)
|
|
7. [Data Access Controls](#data-access-controls-in-views)
|
|
8. [Persistence](#persistence)
|
|
9. [Validation and Performance](#validation-and-performance)
|
|
10. [SQL Reference](#sql-reference)
|
|
|
|
---
|
|
|
|
## Graphical Views
|
|
|
|
Create views visually using drag-and-drop operations.
|
|
|
|
### Prerequisites
|
|
|
|
**Required Scoped Role Privileges**:
|
|
| Privilege | Access | Description |
|
|
|-----------|--------|-------------|
|
|
| Data Warehouse General | `-R------` | System access |
|
|
| Data Warehouse Data Builder | `CRUD----` | Create/edit/delete views |
|
|
| Space Files | `CRUD----` | Manage space objects |
|
|
|
|
The **DW Modeler** role template includes these privileges.
|
|
|
|
### Creating a Graphical View
|
|
|
|
1. Data Builder > New Graphical View
|
|
2. Add source from repository or connection
|
|
3. Add transformation nodes
|
|
4. Configure output columns
|
|
5. Save and deploy
|
|
|
|
### Output Node Properties
|
|
|
|
**Required Properties**:
|
|
- Business Name (display name)
|
|
- Technical Name (immutable after saving)
|
|
- Package assignment (immutable after selection)
|
|
|
|
**Semantic Usage Options**:
|
|
| Type | Purpose | Use Case |
|
|
|------|---------|----------|
|
|
| Fact | Transactional data with measures | Sales, orders |
|
|
| Dimension | Master data for categorization | Products, customers |
|
|
| Hierarchy | Hierarchical structure | Org chart, geography |
|
|
| Text | Language-dependent labels | Translations |
|
|
| Relational Dataset | Generic relational data | Any data |
|
|
| Analytical Dataset | Analytics-ready (deprecated) | Legacy models |
|
|
| Hierarchy with Directory | Multiple parent-child hierarchies | Complex org structures |
|
|
|
|
**Dimension Type**: Standard or Fiscal Time (requires fiscal calendar configuration)
|
|
|
|
**Exposure for Consumption**:
|
|
- Enable OData, ODBC, JDBC access
|
|
- Required for external BI tools
|
|
- **Note**: DW Viewer role users can only preview if this is enabled
|
|
|
|
**Analytical Mode Option**:
|
|
- Optimized for analytical queries
|
|
- Automatic aggregation behavior
|
|
- Sends `USE_OLAP_PLAN` hint to SAP HANA
|
|
|
|
**Data Preview Restrictions (DW Viewer Role)**:
|
|
- Cannot preview data if *Expose for Consumption* is disabled
|
|
- Can only preview data in the output node (not intermediate nodes)
|
|
|
|
### Editor Toolbar Tools
|
|
|
|
| Tool | Purpose |
|
|
|------|---------|
|
|
| Save/Save As | Design-time repository persistence |
|
|
| Deploy | Runtime environment activation |
|
|
| Share | Cross-space distribution |
|
|
| Preview Data | Node output visualization |
|
|
| Undo/Redo | Change reversal/restoration |
|
|
| Export | CSN/JSON file export |
|
|
| Impact & Lineage | Dependency graph visualization |
|
|
| Generate OData Request | OData API access preparation |
|
|
| Runtime Metrics | Performance analysis with Explain Plan generation |
|
|
| Generate Semantics | AI-assisted semantic type identification |
|
|
| Versions | Version history access |
|
|
| Details | Properties panel toggle |
|
|
|
|
### Key Constraint
|
|
|
|
**Operator Limitation**: You can only create ONE of each operator type (Filter, Projection, Calculated Columns, Aggregation) per source or join.
|
|
|
|
### Adding Sources
|
|
|
|
**Source Types**:
|
|
- Local tables
|
|
- Remote tables
|
|
- Views
|
|
- Shared entities
|
|
|
|
**Source Browser**:
|
|
- Browse connections
|
|
- Search objects
|
|
- Preview data
|
|
|
|
### Join Operations
|
|
|
|
**Creating Joins**:
|
|
1. Drag second source onto canvas
|
|
2. Connect to existing source
|
|
3. Select join type
|
|
4. Configure join conditions
|
|
|
|
**Join Types**:
|
|
| Type | Result |
|
|
|------|--------|
|
|
| Inner | Matching rows only |
|
|
| Left Outer | All left + matching right |
|
|
| Right Outer | All right + matching left |
|
|
| Full Outer | All rows from both |
|
|
| Cross | Cartesian product |
|
|
|
|
**Join Conditions**:
|
|
```
|
|
Table1.customer_id = Table2.customer_id
|
|
Table1.year = Table2.fiscal_year AND Table1.month = Table2.period
|
|
```
|
|
|
|
### Union Operations
|
|
|
|
**Creating Unions**:
|
|
1. Add second source
|
|
2. Select union operation
|
|
3. Map columns between sources
|
|
|
|
**Union Types**:
|
|
- Union All: Include duplicates
|
|
- Union: Remove duplicates
|
|
|
|
### Filter Operations
|
|
|
|
**Filter Types**:
|
|
- Simple filter (column = value)
|
|
- Range filter (column BETWEEN x AND y)
|
|
- List filter (column IN (a, b, c))
|
|
- Pattern filter (column LIKE '%pattern%')
|
|
|
|
**Filter Syntax**:
|
|
```sql
|
|
status = 'Active'
|
|
amount >= 1000 AND amount <= 10000
|
|
region IN ('US', 'EU', 'APAC')
|
|
customer_name LIKE 'A%'
|
|
created_date IS NOT NULL
|
|
```
|
|
|
|
### Aggregation Operations
|
|
|
|
**Group By**:
|
|
1. Add aggregation node
|
|
2. Select grouping columns
|
|
3. Configure aggregate functions
|
|
|
|
**Aggregate Functions**:
|
|
| Function | Description |
|
|
|----------|-------------|
|
|
| SUM | Total of values |
|
|
| AVG | Average value |
|
|
| MIN | Minimum value |
|
|
| MAX | Maximum value |
|
|
| COUNT | Row count |
|
|
| COUNT DISTINCT | Unique count |
|
|
|
|
### Column Operations
|
|
|
|
**Reorder Columns**:
|
|
- Drag columns in output panel
|
|
- Set column order
|
|
|
|
**Rename Columns**:
|
|
- Click column name
|
|
- Enter new business name
|
|
|
|
**Exclude Columns**:
|
|
- Uncheck columns in output panel
|
|
- Hidden from downstream
|
|
|
|
### Calculated Columns
|
|
|
|
**Creating Calculated Columns**:
|
|
1. Add calculated column
|
|
2. Enter expression
|
|
3. Set data type
|
|
4. Name column
|
|
|
|
**Expression Types**:
|
|
- Arithmetic: `price * quantity`
|
|
- String: `CONCAT(first_name, ' ', last_name)`
|
|
- Conditional: `CASE WHEN status = 'A' THEN 'Active' ELSE 'Inactive' END`
|
|
- Date: `YEAR(order_date)`
|
|
|
|
### Conversion Columns
|
|
|
|
**Currency Conversion**:
|
|
1. Add currency conversion column
|
|
2. Select source amount column
|
|
3. Select source currency column
|
|
4. Configure target currency
|
|
5. Set exchange rate type
|
|
|
|
**Unit Conversion**:
|
|
1. Add unit conversion column
|
|
2. Select source quantity column
|
|
3. Select source unit column
|
|
4. Configure target unit
|
|
|
|
**Geo Coordinates**:
|
|
1. Add geo coordinates column
|
|
2. Select latitude/longitude columns
|
|
3. Configure coordinate system
|
|
|
|
### Replacing Sources
|
|
|
|
**Replace Source**:
|
|
1. Select source node
|
|
2. Choose "Replace"
|
|
3. Select new source
|
|
4. Remap columns
|
|
|
|
**Process Source Changes**:
|
|
- Detect schema changes
|
|
- Update mappings
|
|
- Handle removed columns
|
|
|
|
---
|
|
|
|
## SQL Views
|
|
|
|
Create views using SQL or SQLScript.
|
|
|
|
### Creating an SQL View
|
|
|
|
1. Data Builder > New SQL View
|
|
2. Write SQL statement
|
|
3. Validate syntax
|
|
4. Save and deploy
|
|
|
|
### Language Options
|
|
|
|
| Language | Capabilities | Use Case |
|
|
|----------|--------------|----------|
|
|
| SQL (Standard Query) | SELECT with JOIN, UNION operators | Standard views |
|
|
| SQLScript (Table Function) | IF, loops, complex structures | Advanced logic |
|
|
|
|
### Critical Syntax Requirements
|
|
|
|
**Double Quotes Mandatory**: Use double quotes for all table, column, and alias references in SELECT statements.
|
|
```sql
|
|
-- Correct
|
|
SELECT "customer_id", "customer_name" AS "name" FROM "customers"
|
|
|
|
-- Incorrect - will fail
|
|
SELECT customer_id, customer_name AS name FROM customers
|
|
```
|
|
|
|
**LIMIT vs TOP**: Use LIMIT keyword (TOP is not supported)
|
|
```sql
|
|
-- Correct
|
|
SELECT * FROM orders LIMIT 100
|
|
|
|
-- Incorrect
|
|
SELECT TOP 100 * FROM orders
|
|
```
|
|
|
|
**Format Button**: Available for SQL only (not SQLScript)
|
|
|
|
### Data Preview Constraints
|
|
|
|
- Data preview unavailable when any source is cross-space shared with input parameters
|
|
- Wide tables may truncate results to prevent memory issues
|
|
|
|
### Basic SQL View
|
|
|
|
```sql
|
|
SELECT
|
|
customer_id,
|
|
customer_name,
|
|
region,
|
|
country
|
|
FROM customers
|
|
WHERE active = 'Y'
|
|
```
|
|
|
|
### SQL View with Joins
|
|
|
|
```sql
|
|
SELECT
|
|
o.order_id,
|
|
o.order_date,
|
|
c.customer_name,
|
|
p.product_name,
|
|
ol.quantity,
|
|
ol.unit_price
|
|
FROM orders o
|
|
INNER JOIN customers c ON o.customer_id = c.customer_id
|
|
INNER JOIN order_lines ol ON o.order_id = ol.order_id
|
|
INNER JOIN products p ON ol.product_id = p.product_id
|
|
```
|
|
|
|
### SQL View with Aggregation
|
|
|
|
```sql
|
|
SELECT
|
|
customer_id,
|
|
YEAR(order_date) AS order_year,
|
|
COUNT(*) AS order_count,
|
|
SUM(order_amount) AS total_amount,
|
|
AVG(order_amount) AS avg_amount
|
|
FROM orders
|
|
GROUP BY customer_id, YEAR(order_date)
|
|
```
|
|
|
|
### SQLScript Views
|
|
|
|
**Table Variables**:
|
|
```sql
|
|
DO BEGIN
|
|
lt_customers = SELECT * FROM customers WHERE region = 'US';
|
|
lt_orders = SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM :lt_customers);
|
|
|
|
SELECT * FROM :lt_orders;
|
|
END;
|
|
```
|
|
|
|
**Control Flow**:
|
|
```sql
|
|
DO BEGIN
|
|
DECLARE lv_year INTEGER := YEAR(CURRENT_DATE);
|
|
|
|
IF :lv_year > 2024 THEN
|
|
SELECT * FROM orders WHERE order_year = :lv_year;
|
|
ELSE
|
|
SELECT * FROM archive_orders WHERE order_year = :lv_year;
|
|
END IF;
|
|
END;
|
|
```
|
|
|
|
### Input Parameters in SQL Views
|
|
|
|
**Parameter Definition**:
|
|
```sql
|
|
-- Input parameter: IP_REGION (String)
|
|
SELECT *
|
|
FROM customers
|
|
WHERE region = :IP_REGION
|
|
```
|
|
|
|
**Multiple Parameters**:
|
|
```sql
|
|
-- IP_START_DATE (Date), IP_END_DATE (Date), IP_REGION (String)
|
|
SELECT *
|
|
FROM orders
|
|
WHERE order_date BETWEEN :IP_START_DATE AND :IP_END_DATE
|
|
AND region = :IP_REGION
|
|
```
|
|
|
|
---
|
|
|
|
## Entity-Relationship Models
|
|
|
|
Visual data modeling with entities and associations.
|
|
|
|
### Creating an E-R Model
|
|
|
|
1. Data Builder > New E-R Model
|
|
2. Add entities (tables/views)
|
|
3. Create associations
|
|
4. Save and deploy
|
|
|
|
### Adding Entities
|
|
|
|
**Create Table**:
|
|
- Define columns
|
|
- Set primary key
|
|
- Configure properties
|
|
|
|
**Create View**:
|
|
- Define SELECT statement
|
|
- Configure output
|
|
|
|
**Add Existing**:
|
|
- Drag from repository
|
|
- Reference existing objects
|
|
|
|
### Creating Associations
|
|
|
|
1. Select source entity
|
|
2. Draw line to target entity
|
|
3. Configure join columns
|
|
4. Set cardinality
|
|
|
|
**Association Properties**:
|
|
| Property | Options |
|
|
|----------|---------|
|
|
| Cardinality | 1:1, 1:n, n:1, n:m |
|
|
| Join Type | Inner, Left Outer |
|
|
| Semantic | Reference, Composition |
|
|
|
|
### Adding Related Entities
|
|
|
|
**Discover Related**:
|
|
- Analyze existing associations
|
|
- Suggest related entities
|
|
- Auto-create associations
|
|
|
|
---
|
|
|
|
## Intelligent Lookups
|
|
|
|
Match and enrich data using fuzzy logic when traditional joins fail due to data quality issues.
|
|
|
|
**Purpose**: Merge data from two entities even when problems joining them exist (unreliable foreign keys, inconsistent naming, data quality issues).
|
|
|
|
### Technical Architecture
|
|
|
|
**Component Structure**:
|
|
1. Input entity with mandatory pairing column
|
|
2. Lookup entity with designated return columns
|
|
3. Rule node (exact or fuzzy matching)
|
|
4. Output view configuration
|
|
|
|
### Pairing Column Requirements
|
|
|
|
The pairing column identifies individual records:
|
|
- Typically ID fields or unique identifiers
|
|
- Can be a calculated column concatenating multiple values
|
|
- Falls back to key column if primary identifier unavailable
|
|
|
|
### Creating an Intelligent Lookup
|
|
|
|
1. Data Builder > New Intelligent Lookup
|
|
2. Add input entity
|
|
3. Add lookup entity
|
|
4. **Define pairing column**
|
|
5. Configure match rules
|
|
6. Define output
|
|
|
|
### Match Rule Types
|
|
|
|
**Exact Match**:
|
|
```yaml
|
|
rule: exact_customer_id
|
|
input_column: customer_id
|
|
lookup_column: customer_key
|
|
match_type: exact
|
|
```
|
|
|
|
**Fuzzy Match**:
|
|
```yaml
|
|
rule: fuzzy_company_name
|
|
input_column: company_name
|
|
lookup_column: organization_name
|
|
match_type: fuzzy
|
|
threshold: 0.8
|
|
```
|
|
|
|
### Fuzzy Match Configuration
|
|
|
|
| Parameter | Description | Default |
|
|
|-----------|-------------|---------|
|
|
| Threshold | Match score (0-1) | 0.8 |
|
|
| Algorithm | Matching algorithm | Levenshtein |
|
|
| Case Sensitive | Match case | No |
|
|
|
|
### Result Categories
|
|
|
|
Results are color-coded with percentages on rule symbols:
|
|
|
|
| Category | Color | Description | Actions |
|
|
|----------|-------|-------------|---------|
|
|
| Matched | Green | Records matched against lookup data | Can reject |
|
|
| Review | Green | Fuzzy matches between review/matched thresholds | Approve or reject |
|
|
| Multiple | Yellow | Records matching 2+ lookup records | Select candidate |
|
|
| Unmatched | Red | No matching lookup record found | Manual match |
|
|
| Unprocessed | Grey | New records not processed since last run | Run lookup |
|
|
|
|
### Processing Results
|
|
|
|
**Matched Results**:
|
|
- Single match: Auto-assign
|
|
- Multiple matches: Review/select candidates
|
|
- No match: Manual assignment
|
|
|
|
**Unmatched Results**:
|
|
- Create new lookup records
|
|
- Manual matching
|
|
- Skip records
|
|
|
|
### Rule Management
|
|
|
|
**Modification Handling**:
|
|
- Modifying rules prompts deletion of subsequent results
|
|
- User-confirmed matches can be preserved or deleted
|
|
|
|
**Adding Rules**:
|
|
- **Add Rule for Multiple Matches**: Applies AND logic to narrow down candidates
|
|
- **Add Rule for Unmatched Records**: Targets unmatched category for re-processing
|
|
|
|
**Important**: Redeployment required after rule modification before re-execution
|
|
|
|
### Multi-Rule Lookups
|
|
|
|
Combine multiple rules:
|
|
1. Exact match on ID
|
|
2. Fuzzy match on name
|
|
3. Location-based match
|
|
|
|
**Example: Address Enrichment**
|
|
```yaml
|
|
rules:
|
|
- exact: postal_code
|
|
- fuzzy: street_name (0.85)
|
|
- fuzzy: city_name (0.9)
|
|
```
|
|
|
|
---
|
|
|
|
## View Operations
|
|
|
|
### Saving and Deploying
|
|
|
|
**Save**: Store definition
|
|
**Deploy**: Activate for use
|
|
|
|
**Deployment Validation**:
|
|
- Syntax check
|
|
- Dependency check
|
|
- Semantic validation
|
|
|
|
### Object Dependencies
|
|
|
|
**View Dependencies**:
|
|
```
|
|
View A (deployed)
|
|
└── View B (requires A)
|
|
└── View C (requires B)
|
|
```
|
|
|
|
**Impact Analysis**:
|
|
- Find dependent objects
|
|
- Assess change impact
|
|
- Plan modifications
|
|
|
|
### Lineage Analysis
|
|
|
|
**Column Lineage**:
|
|
- Track column origins
|
|
- Understand transformations
|
|
- Document data flow
|
|
|
|
**Impact Lineage**:
|
|
- Identify downstream impact
|
|
- Plan changes safely
|
|
|
|
### Version Management
|
|
|
|
**Version History**:
|
|
- View all versions
|
|
- Compare versions
|
|
- Restore previous version
|
|
|
|
---
|
|
|
|
## Input Parameters
|
|
|
|
Runtime parameters for dynamic filtering.
|
|
|
|
### Creating Input Parameters
|
|
|
|
1. Open view properties
|
|
2. Add input parameter
|
|
3. Configure type and default
|
|
4. Use in filter/expression
|
|
|
|
### Parameter Types
|
|
|
|
| Type | Use Case | Example |
|
|
|------|----------|---------|
|
|
| String | Text filtering | Region code |
|
|
| Integer | Numeric filtering | Year |
|
|
| Date | Date filtering | Start date |
|
|
| Timestamp | DateTime filtering | As-of timestamp |
|
|
|
|
### Parameter Usage
|
|
|
|
**In Filters**:
|
|
```sql
|
|
WHERE region = :IP_REGION
|
|
```
|
|
|
|
**In Expressions**:
|
|
```sql
|
|
CASE WHEN year = :IP_YEAR THEN 'Current' ELSE 'Historical' END
|
|
```
|
|
|
|
**Default Values**:
|
|
```yaml
|
|
parameter: IP_YEAR
|
|
type: Integer
|
|
default: YEAR(CURRENT_DATE)
|
|
```
|
|
|
|
---
|
|
|
|
## Data Access Controls in Views
|
|
|
|
Apply row-level security to views.
|
|
|
|
### Applying Data Access Control
|
|
|
|
1. Open view properties
|
|
2. Select "Data Access Control"
|
|
3. Choose DAC object
|
|
4. Map columns
|
|
5. Deploy
|
|
|
|
### DAC Integration
|
|
|
|
**Criteria Mapping**:
|
|
```yaml
|
|
view_column: region
|
|
dac_criteria: user_region
|
|
```
|
|
|
|
**Multiple Criteria**:
|
|
```yaml
|
|
mappings:
|
|
- region: user_region
|
|
- company_code: user_company
|
|
```
|
|
|
|
---
|
|
|
|
## Persistence
|
|
|
|
Store view results for improved performance.
|
|
|
|
### Enabling Persistence
|
|
|
|
1. Open view properties
|
|
2. Enable persistence
|
|
3. Configure refresh schedule
|
|
4. Deploy
|
|
|
|
### Persistence Options
|
|
|
|
| Option | Description |
|
|
|--------|-------------|
|
|
| Scheduled | Refresh at intervals |
|
|
| On-Demand | Manual refresh |
|
|
| Delta | Incremental refresh |
|
|
|
|
### Partitioning Persisted Views
|
|
|
|
**Partition by Date**:
|
|
```yaml
|
|
partition_column: order_date
|
|
partition_type: range
|
|
partition_function: monthly
|
|
```
|
|
|
|
---
|
|
|
|
## Validation and Performance
|
|
|
|
### Validating View Data
|
|
|
|
**Data Preview**:
|
|
- View sample data
|
|
- Check row counts
|
|
- Verify calculations
|
|
|
|
**Validation Rules**:
|
|
- Data type checks
|
|
- Null checks
|
|
- Business rules
|
|
|
|
### Analyzing View Performance
|
|
|
|
**Performance Analysis**:
|
|
- Execution time
|
|
- Row counts
|
|
- Resource usage
|
|
|
|
**Optimization Tips**:
|
|
- Filter early
|
|
- Minimize joins
|
|
- Use appropriate indexes
|
|
- Consider persistence
|
|
|
|
---
|
|
|
|
## SQL Reference
|
|
|
|
### Common SQL Functions
|
|
|
|
**String Functions**:
|
|
| Function | Example |
|
|
|----------|---------|
|
|
| CONCAT | CONCAT(a, b) |
|
|
| SUBSTRING | SUBSTRING(s, 1, 5) |
|
|
| UPPER/LOWER | UPPER(name) |
|
|
| TRIM | TRIM(text) |
|
|
| LENGTH | LENGTH(string) |
|
|
| REPLACE | REPLACE(s, 'old', 'new') |
|
|
|
|
**Numeric Functions**:
|
|
| Function | Example |
|
|
|----------|---------|
|
|
| ROUND | ROUND(num, 2) |
|
|
| FLOOR/CEIL | FLOOR(num) |
|
|
| ABS | ABS(value) |
|
|
| MOD | MOD(a, b) |
|
|
| POWER | POWER(base, exp) |
|
|
|
|
**Date Functions**:
|
|
| Function | Example |
|
|
|----------|---------|
|
|
| YEAR | YEAR(date) |
|
|
| MONTH | MONTH(date) |
|
|
| DAY | DAY(date) |
|
|
| ADD_DAYS | ADD_DAYS(date, 7) |
|
|
| DATEDIFF | DATEDIFF(d1, d2) |
|
|
| CURRENT_DATE | CURRENT_DATE |
|
|
|
|
**Conversion Functions**:
|
|
| Function | Example |
|
|
|----------|---------|
|
|
| CAST | CAST(num AS VARCHAR) |
|
|
| TO_DATE | TO_DATE(str, 'YYYY-MM-DD') |
|
|
| TO_DECIMAL | TO_DECIMAL(str, 10, 2) |
|
|
|
|
### Window Functions
|
|
|
|
```sql
|
|
-- Row number
|
|
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date)
|
|
|
|
-- Running total
|
|
SUM(amount) OVER (PARTITION BY customer_id ORDER BY order_date)
|
|
|
|
-- Rank
|
|
RANK() OVER (PARTITION BY region ORDER BY sales DESC)
|
|
```
|
|
|
|
---
|
|
|
|
## Documentation Links
|
|
|
|
- **Graphical Views**: [https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/27efb47](https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/27efb47)
|
|
- **SQL Views**: [https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/81920e4](https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/81920e4)
|
|
- **E-R Models**: [https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/a91c042](https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/a91c042)
|
|
- **Intelligent Lookups**: [https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/8f29f80](https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/8f29f80)
|
|
- **SQL Reference**: [https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/6a37cc5](https://help.sap.com/docs/SAP_DATASPHERE/c8a54ee704e94e15926551293243fd1d/6a37cc5)
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-11-22
|