SAP HANA Cloud Data Intelligence Skill
This skill provides comprehensive guidance for developing with SAP Data Intelligence Cloud, including pipeline creation, operator development, data integration, and machine learning scenarios.
Table of Contents
When to Use This Skill
Use this skill when:
- Creating or modifying data processing graphs/pipelines
- Developing custom operators (Gen1 or Gen2)
- Integrating ABAP-based SAP systems (S/4HANA, BW)
- Building replication flows for data movement
- Developing ML scenarios with ML Scenario Manager
- Working with JupyterLab in Data Intelligence
- Using Data Transformation Language (DTL) functions
- Configuring subengines (Python, Node.js, C++)
- Working with structured data operators
Core Concepts
Graphs (Pipelines)
Graphs are networks of operators connected via typed input/output ports for data transfer.
Two Generations:
- Gen1 Operators: Legacy operators, broad compatibility
- Gen2 Operators: Enhanced error recovery, state management, snapshots
Critical Rule: Graphs cannot mix Gen1 and Gen2 operators - choose one generation per graph.
Gen2 Advantages:
- Automatic error recovery with snapshots
- State management with periodic checkpoints
- Native multiplexing (one-to-many, many-to-one)
- Improved Python3 operator
Operators
Building blocks that process data within graphs. Each operator has:
- Ports: Typed input/output connections for data flow
- Configuration: Parameters that control behavior
- Runtime: Engine that executes the operator
Operator Categories:
- Messaging (Kafka, MQTT, NATS)
- Storage (Files, HDFS, S3, Azure, GCS)
- Database (HANA, SAP BW, SQL)
- Script (Python, JavaScript, R, Go)
- Data Processing (Transform, Anonymize, Validate)
- Machine Learning (TensorFlow, PyTorch, HANA ML)
- Integration (OData, REST, SAP CPI)
- Workflow (Pipeline, Data Workflow)
Subengines
Subengines enable operators to run on different runtimes within the same graph.
Supported Subengines:
- ABAP: For ABAP Pipeline Engine operators
- Python 3.9: For Python-based operators
- Node.js: For JavaScript-based operators
- C++: For high-performance native operators
Key Benefit: Connected operators on the same subengine run in a single OS process for optimal performance.
Trade-off: Cross-engine communication requires serialization/deserialization overhead.
Quick Start Patterns
Basic Graph Creation
1. Open SAP Data Intelligence Modeler
2. Create new graph
3. Add operators from repository
4. Connect operator ports (matching types)
5. Configure operator parameters
6. Validate graph
7. Execute and monitor
Replication Flow Pattern
1. Create replication flow in Modeler
2. Configure source connection (ABAP, HANA, etc.)
3. Configure target (HANA Cloud, S3, Kafka, etc.)
4. Add tasks with source objects
5. Define filters and mappings
6. Validate flow
7. Deploy to tenant repository
8. Run and monitor
Delivery Guarantees:
- Default: At-least-once (may have duplicates)
- With UPSERT to databases: Exactly-once
- For cloud storage: Use "Suppress Duplicates" option
ML Scenario Pattern
1. Open ML Scenario Manager from launchpad
2. Create new scenario
3. Add datasets (register data sources)
4. Create Jupyter notebooks for experiments
5. Build training pipelines
6. Track metrics with Metrics Explorer
7. Version scenario for reproducibility
8. Deploy model pipeline
Common Tasks
ABAP System Integration
For integrating ABAP-based SAP systems:
- Prerequisites: Configure Cloud Connector for on-premise systems
- Connection Setup: Create ABAP connection in Connection Management
- Metadata Access: Use Metadata Explorer for object discovery
- Data Sources: CDS Views, ODP (Operational Data Provisioning), Tables
Reference: See references/abap-integration.md for detailed setup.
Structured Data Processing
Use structured data operators for SQL-like transformations:
- Data Transform: Visual SQL editor for complex transformations
- Aggregation Node: GROUP BY with aggregation functions
- Join Node: INNER, LEFT, RIGHT, FULL joins
- Projection Node: Column selection and renaming
- Union Node: Combine multiple datasets
- Case Node: Conditional logic
Reference: See references/structured-data-operators.md for configuration.
Data Transformation Language
DTL provides SQL-like functions for data processing:
Function Categories:
- String: CONCAT, SUBSTRING, UPPER, LOWER, TRIM, REPLACE
- Numeric: ABS, CEIL, FLOOR, ROUND, MOD, POWER
- Date/Time: ADD_DAYS, MONTHS_BETWEEN, EXTRACT, CURRENT_UTCTIMESTAMP
- Conversion: TO_DATE, TO_STRING, TO_INTEGER, TO_DECIMAL
- Miscellaneous: CASE, COALESCE, IFNULL, NULLIF
Reference: See references/dtl-functions.md for complete reference.
Best Practices
Graph Design
- Choose Generation Early: Decide Gen1 vs Gen2 before building
- Minimize Cross-Engine Communication: Group operators by subengine
- Use Appropriate Port Types: Match data types for efficient transfer
- Enable Snapshots: For Gen2 graphs, enable auto-recovery
- Validate Before Execution: Always validate graphs
Operator Development
- Start with Built-in Operators: Use predefined operators first
- Extend When Needed: Create custom operators for specific needs
- Use Script Operators: For quick prototyping with Python/JS
- Version Your Operators: Track changes with operator versions
- Document Configuration: Describe all parameters
Replication Flows
- Plan Target Schema: Understand target structure requirements
- Use Filters: Reduce data volume with source filters
- Handle Duplicates: Configure for exactly-once when possible
- Monitor Execution: Track progress and errors
- Clean Up Artifacts: Remove source artifacts after completion
ML Scenarios
- Version Early: Create versions before major changes
- Track All Metrics: Use SDK for comprehensive tracking
- Use Notebooks for Exploration: JupyterLab for experimentation
- Productionize with Pipelines: Convert notebooks to pipelines
- Export/Import for Migration: Use ZIP export for transfers
Error Handling
Common Graph Errors
| Error |
Cause |
Solution |
| Port type mismatch |
Incompatible data types |
Use converter operator or matching types |
| Gen1/Gen2 mixing |
Combined operator generations |
Use single generation per graph |
| Resource exhaustion |
Insufficient memory/CPU |
Adjust resource requirements |
| Connection failure |
Network or credentials |
Verify connection settings |
| Validation errors |
Invalid configuration |
Review error messages, fix config |
Recovery Strategies
Gen2 Graphs:
- Enable automatic recovery in graph settings
- Configure snapshot intervals
- Monitor recovery status
Gen1 Graphs:
- Implement manual error handling in operators
- Use try-catch in script operators
- Configure retry logic
Reference Files
For detailed information, see:
references/operators-reference.md - Complete operator catalog (266 operators)
references/abap-integration.md - ABAP/S4HANA/BW integration with SAP Notes
references/structured-data-operators.md - Structured data processing
references/dtl-functions.md - Data Transformation Language (79 functions)
references/ml-scenario-manager.md - ML Scenario Manager, SDK, artifacts
references/subengines.md - Python, Node.js, C++ subengine development
references/graphs-pipelines.md - Graph execution, snapshots, recovery
references/replication-flows.md - Replication flows, cloud storage, Kafka
references/data-workflow.md - Data workflow operators, orchestration
references/security-cdc.md - Security, data protection, CDC methods
references/additional-features.md - Monitoring, cloud storage services, scenario templates, data types, Git terminal
references/modeling-advanced.md - Graph snippets, SAP cloud apps, configuration types, 141 graph templates
Templates
Starter templates are available in templates/:
templates/basic-graph.json - Simple data processing graph
templates/replication-flow.json - Data replication pattern
templates/ml-training-pipeline.json - ML training workflow
Documentation Links
Primary Sources:
Section-Specific:
Bundled Resources
Reference Documentation
references/abap-integration.md - ABAP system integration guide
references/ml-scenario-manager.md - Machine Learning scenario manager
references/replication-flows.md - Data replication flow configuration
references/operators-reference.md - Complete operators reference
references/dtl-functions.md - Data Transformation Language functions
references/modeling-advanced.md - Advanced modeling techniques
references/structured-data-operators.md - Structured data operators guide
Documentation Links
Version Information
- Skill Version: 1.0.0
- Last Updated: 2025-11-27
- Documentation Source: SAP-docs/sap-hana-cloud-data-intelligence (GitHub)
1---2name: sap-hana-cloud-data-intelligence3description: Develops data processing pipelines, integrations, and machine learning scenarios in SAP Data Intelligence Cloud. Use when building graphs/pipelines with operators, integrating ABAP/S4HANA systems, creating replication flows, developing ML scenarios with JupyterLab, or using Data Transformation Language functions. Covers Gen1/Gen2 operators, subengines (Python, Node.js, C++), structured data operators, and repository objects.4license: GPL-3.05---6
7# SAP HANA Cloud Data Intelligence Skill
8
9This skill provides comprehensive guidance for developing with SAP Data Intelligence Cloud, including pipeline creation, operator development, data integration, and machine learning scenarios.
10
11## Table of Contents
12- [When to Use This Skill](#when-to-use-this-skill)
13- [Core Concepts](#core-concepts)
14- [Quick Start Patterns](#quick-start-patterns)
15- [Common Tasks](#common-tasks)
16- [Bundled Resources](#bundled-resources)
17
18## When to Use This Skill
19
20Use this skill when:
21
22- Creating or modifying data processing graphs/pipelines
23- Developing custom operators (Gen1 or Gen2)
24- Integrating ABAP-based SAP systems (S/4HANA, BW)
25- Building replication flows for data movement
26- Developing ML scenarios with ML Scenario Manager
27- Working with JupyterLab in Data Intelligence
28- Using Data Transformation Language (DTL) functions
29- Configuring subengines (Python, Node.js, C++)
30- Working with structured data operators
31
32## Core Concepts
33
34### Graphs (Pipelines)
35
36Graphs are networks of operators connected via typed input/output ports for data transfer.
37
38**Two Generations:**
39- **Gen1 Operators**: Legacy operators, broad compatibility
40- **Gen2 Operators**: Enhanced error recovery, state management, snapshots
41
42**Critical Rule**: Graphs cannot mix Gen1 and Gen2 operators - choose one generation per graph.
43
44**Gen2 Advantages:**
45- Automatic error recovery with snapshots
46- State management with periodic checkpoints
47- Native multiplexing (one-to-many, many-to-one)
48- Improved Python3 operator
49
50### Operators
51
52Building blocks that process data within graphs. Each operator has:
53- **Ports**: Typed input/output connections for data flow
54- **Configuration**: Parameters that control behavior
55- **Runtime**: Engine that executes the operator
56
57**Operator Categories:**
581. Messaging (Kafka, MQTT, NATS)
592. Storage (Files, HDFS, S3, Azure, GCS)
603. Database (HANA, SAP BW, SQL)
614. Script (Python, JavaScript, R, Go)
625. Data Processing (Transform, Anonymize, Validate)
636. Machine Learning (TensorFlow, PyTorch, HANA ML)
647. Integration (OData, REST, SAP CPI)
658. Workflow (Pipeline, Data Workflow)
66
67### Subengines
68
69Subengines enable operators to run on different runtimes within the same graph.
70
71**Supported Subengines:**
72- **ABAP**: For ABAP Pipeline Engine operators
73- **Python 3.9**: For Python-based operators
74- **Node.js**: For JavaScript-based operators
75- **C++**: For high-performance native operators
76
77**Key Benefit**: Connected operators on the same subengine run in a single OS process for optimal performance.
78
79**Trade-off**: Cross-engine communication requires serialization/deserialization overhead.
80
81## Quick Start Patterns
82
83### Basic Graph Creation
84
85```
861. Open SAP Data Intelligence Modeler
872. Create new graph
883. Add operators from repository
894. Connect operator ports (matching types)
905. Configure operator parameters
916. Validate graph
927. Execute and monitor
93```
94
95### Replication Flow Pattern
96
97```
981. Create replication flow in Modeler
992. Configure source connection (ABAP, HANA, etc.)
1003. Configure target (HANA Cloud, S3, Kafka, etc.)
1014. Add tasks with source objects
1025. Define filters and mappings
1036. Validate flow
1047. Deploy to tenant repository
1058. Run and monitor
106```
107
108**Delivery Guarantees:**
109- Default: At-least-once (may have duplicates)
110- With UPSERT to databases: Exactly-once
111- For cloud storage: Use "Suppress Duplicates" option
112
113### ML Scenario Pattern
114
115```
1161. Open ML Scenario Manager from launchpad
1172. Create new scenario
1183. Add datasets (register data sources)
1194. Create Jupyter notebooks for experiments
1205. Build training pipelines
1216. Track metrics with Metrics Explorer
1227. Version scenario for reproducibility
1238. Deploy model pipeline
124```
125
126## Common Tasks
127
128### ABAP System Integration
129
130For integrating ABAP-based SAP systems:
131
1321. **Prerequisites**: Configure Cloud Connector for on-premise systems
1332. **Connection Setup**: Create ABAP connection in Connection Management
1343. **Metadata Access**: Use Metadata Explorer for object discovery
1354. **Data Sources**: CDS Views, ODP (Operational Data Provisioning), Tables
136
137**Reference**: See `references/abap-integration.md` for detailed setup.
138
139### Structured Data Processing
140
141Use structured data operators for SQL-like transformations:
142
143- **Data Transform**: Visual SQL editor for complex transformations
144- **Aggregation Node**: GROUP BY with aggregation functions
145- **Join Node**: INNER, LEFT, RIGHT, FULL joins
146- **Projection Node**: Column selection and renaming
147- **Union Node**: Combine multiple datasets
148- **Case Node**: Conditional logic
149
150**Reference**: See `references/structured-data-operators.md` for configuration.
151
152### Data Transformation Language
153
154DTL provides SQL-like functions for data processing:
155
156**Function Categories:**
157- String: CONCAT, SUBSTRING, UPPER, LOWER, TRIM, REPLACE
158- Numeric: ABS, CEIL, FLOOR, ROUND, MOD, POWER
159- Date/Time: ADD_DAYS, MONTHS_BETWEEN, EXTRACT, CURRENT_UTCTIMESTAMP
160- Conversion: TO_DATE, TO_STRING, TO_INTEGER, TO_DECIMAL
161- Miscellaneous: CASE, COALESCE, IFNULL, NULLIF
162
163**Reference**: See `references/dtl-functions.md` for complete reference.
164
165## Best Practices
166
167### Graph Design
168
1691. **Choose Generation Early**: Decide Gen1 vs Gen2 before building
1702. **Minimize Cross-Engine Communication**: Group operators by subengine
1713. **Use Appropriate Port Types**: Match data types for efficient transfer
1724. **Enable Snapshots**: For Gen2 graphs, enable auto-recovery
1735. **Validate Before Execution**: Always validate graphs
174
175### Operator Development
176
1771. **Start with Built-in Operators**: Use predefined operators first
1782. **Extend When Needed**: Create custom operators for specific needs
1793. **Use Script Operators**: For quick prototyping with Python/JS
1804. **Version Your Operators**: Track changes with operator versions
1815. **Document Configuration**: Describe all parameters
182
183### Replication Flows
184
1851. **Plan Target Schema**: Understand target structure requirements
1862. **Use Filters**: Reduce data volume with source filters
1873. **Handle Duplicates**: Configure for exactly-once when possible
1884. **Monitor Execution**: Track progress and errors
1895. **Clean Up Artifacts**: Remove source artifacts after completion
190
191### ML Scenarios
192
1931. **Version Early**: Create versions before major changes
1942. **Track All Metrics**: Use SDK for comprehensive tracking
1953. **Use Notebooks for Exploration**: JupyterLab for experimentation
1964. **Productionize with Pipelines**: Convert notebooks to pipelines
1975. **Export/Import for Migration**: Use ZIP export for transfers
198
199## Error Handling
200
201### Common Graph Errors
202
203| Error | Cause | Solution |
204|-------|-------|----------|
205| Port type mismatch | Incompatible data types | Use converter operator or matching types |
206| Gen1/Gen2 mixing | Combined operator generations | Use single generation per graph |
207| Resource exhaustion | Insufficient memory/CPU | Adjust resource requirements |
208| Connection failure | Network or credentials | Verify connection settings |
209| Validation errors | Invalid configuration | Review error messages, fix config |
210
211### Recovery Strategies
212
213**Gen2 Graphs:**
214- Enable automatic recovery in graph settings
215- Configure snapshot intervals
216- Monitor recovery status
217
218**Gen1 Graphs:**
219- Implement manual error handling in operators
220- Use try-catch in script operators
221- Configure retry logic
222
223## Reference Files
224
225For detailed information, see:
226
227- `references/operators-reference.md` - Complete operator catalog (266 operators)
228- `references/abap-integration.md` - ABAP/S4HANA/BW integration with SAP Notes
229- `references/structured-data-operators.md` - Structured data processing
230- `references/dtl-functions.md` - Data Transformation Language (79 functions)
231- `references/ml-scenario-manager.md` - ML Scenario Manager, SDK, artifacts
232- `references/subengines.md` - Python, Node.js, C++ subengine development
233- `references/graphs-pipelines.md` - Graph execution, snapshots, recovery
234- `references/replication-flows.md` - Replication flows, cloud storage, Kafka
235- `references/data-workflow.md` - Data workflow operators, orchestration
236- `references/security-cdc.md` - Security, data protection, CDC methods
237- `references/additional-features.md` - Monitoring, cloud storage services, scenario templates, data types, Git terminal
238- `references/modeling-advanced.md` - Graph snippets, SAP cloud apps, configuration types, 141 graph templates
239
240## Templates
241
242Starter templates are available in `templates/`:
243
244- `templates/basic-graph.json` - Simple data processing graph
245- `templates/replication-flow.json` - Data replication pattern
246- `templates/ml-training-pipeline.json` - ML training workflow
247
248## Documentation Links
249
250**Primary Sources:**
251- GitHub Docs: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs)
252- SAP Help Portal: [https://help.sap.com/docs/SAP_DATA_INTELLIGENCE](https://help.sap.com/docs/SAP_DATA_INTELLIGENCE)
253- SAP Developer Center: [https://developers.sap.com/topics/data-intelligence.html](https://developers.sap.com/topics/data-intelligence.html)
254
255**Section-Specific:**
256- Modeling Guide: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/modelingguide](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/modelingguide)
257## Bundled Resources
258
259### Reference Documentation
260- `references/abap-integration.md` - ABAP system integration guide
261- `references/ml-scenario-manager.md` - Machine Learning scenario manager
262- `references/replication-flows.md` - Data replication flow configuration
263- `references/operators-reference.md` - Complete operators reference
264- `references/dtl-functions.md` - Data Transformation Language functions
265- `references/modeling-advanced.md` - Advanced modeling techniques
266- `references/structured-data-operators.md` - Structured data operators guide
267
268### Documentation Links
269- ABAP Integration: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration)
270- Machine Learning: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/machinelearning](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/machinelearning)
271- Function Reference: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference)
272- Repository Objects: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/repositoryobjects](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/repositoryobjects)
273
274## Version Information
275
276- **Skill Version**: 1.0.0
277- **Last Updated**: 2025-11-27
278- **Documentation Source**: SAP-docs/sap-hana-cloud-data-intelligence (GitHub)