SAP OData Private Preview
OData (Open Data Protocol) is a standardized protocol developed by Microsoft and widely adopted by SAP for secure, scalable, and efficient data exchange across SAP systems and various other platforms, applications, or devices through HTTP. The OData protocol enables seamless integration, allowing you to use SAP data within broader ecosystems.
The Fivetran SAP OData connector integrates your SAP system as a data source with a focus on read operations. It extracts data from the SAP OData API and loads it into your destination, providing streamlined access to SAP ERP data, including:
- Core Data Services (CDS) views - Modern analytical views that provide direct access to SAP business data
- Business Warehouse (BW) extractors - Traditional data extraction objects exposed through the SAP Operational Data Provisioning (ODP) API
- Key business processes data - Critical operational data representing your organization's core workflows
The connector leverages SAP's standardized OData services for efficient data retrieval, making it easier to analyze and manipulate ERP data across diverse applications and systems.
Features
Feature Name | Supported | Notes |
---|---|---|
Capture deletes | check | |
History mode | ||
Custom data | check | |
Data blocking | check | |
Column hashing | check | |
Re-sync | check | |
API configurable | check | API configuration |
Priority-first sync | ||
Fivetran data models | check | |
Private networking | check | |
Authorization via API | check |
Setup guide
Follow our step-by-step SAP OData setup guide to connect SAP OData to your destination using the Fivetran connector.
Sync overview
Fivetran leverages the SAP OData API to extract data from your SAP environment. This RESTful interface provides standardized access to your SAP OData resources, including both Core Data Services (CDS) views and traditional BW extractors that have been exposed. To ensure a successful sync, all extraction objects (CDS views and BW extractors) must be correctly published to the SAP OData API and enhanced with the required SAP annotations in their definitions:
@Analytics.dataExtraction.enabled: true
- Enables data extraction. You can wrap an extractor (for example, based on a table or extractor logic) into a CDS view and annotate it for extraction.@Analytics.dataExtraction.delta.changeDataCapture.automatic: true
- Enables automatic delta data extraction, which tracks changes (inserts, deletions, updates) for incremental data loads. This reduces the need for full data extractions during reporting or re-sync operations.
Fivetran leverages specific SAP artifacts and delta tracking mechanisms to optimize data synchronization:
- SAP artifacts (for example,
FactsOf
orEntityOf
) define the relationships between entities within an object. These artifacts enable comprehensive and context-aware data extraction. - DeltaLinks track incremental changes since the last sync, optimizing resource usage and ensuring only updated records are captured in each sync cycle.
Fivetran replicates the two entities into a single table in your destination, combining the artifact and delta entities to provide a comprehensive view of your SAP data. We also retrieve metadata fields to track the data extraction process (ODQ-prefixed columns). These fields are essential for incremental data extraction but are not added to the destination.
For more information, see the SAP Analytics Annotations documentation.
Not all BW extractors are directly compatible with the OData API. In many cases, intermediate staging, such as CDS or ABAP, is required. Delta handling for BW extractors can be complex. While Fivetran uses the OData API to access data, the underlying implementation depends on how each extractor is designed and configured.
Fivetran supports loading only change data from the SAP OData API, minimizing the load on your SAP system while providing efficient access to your business data.
SAP OData metadata mapping
The SAP OData API, based on the OData protocol, uses a set of conventions for building and consuming RESTful APIs. The API is structured around the concept of services, entities, properties, and keys, which map to the following elements in your destination:
Service
corresponds to a schemaEntity
corresponds to a tableProperty
corresponds to a columnKey
corresponds to the primary key (PK)
Sync limitation
Each OData service can be assigned to only one SAP user at a time. This limitation is due to SAP's delta management framework, which allows only one subscriber per service. If you need to sync data from the same service to multiple destinations, create a separate OData service for each destination.
SAP artifact naming conventions
We support extraction only from SAP artifacts that follow specific naming conventions. For successful integration, ensure your extraction objects follow these specific prefix conventions:
Prefix | Purpose | Description |
---|---|---|
FactsOf<ODP name> | Fact data | Entity set for a fact ODP containing measurable business data |
AttrOf<ODP name> | Attributes | Entity set for an ODP containing descriptive attributes |
TimeDepAOf<ODP name> | Time-dependent attributes | Entity set for an ODP containing attributes that change over time |
TextsOf<ODP name> | Text data | Entity set for an ODP containing text descriptions and labels |
EntityOf<ODP name> | Generic entities | Entity set for an ODP without specific semantic classification |
Only SAP artifacts that strictly follow these naming conventions will be discoverable and extractable through our connector. This standardization ensures proper metadata handling, optimized extraction performance, and seamless integration with downstream systems.
When creating or modifying SAP objects intended for extraction, coordinate with your SAP development team to follow these naming patterns. Non-compliant artifacts will not be exposed for extraction.
Type transformation mapping
Fivetran maps SAP OData data types (EDM) to Fivetran-supported types. Our system attempts to infer the types of any columns with data types that are not recognized.
The following table illustrates how Fivetran transform your SAP data types (based on the OData primitive types) into Fivetran-supported types:
Edm Primitive Type | Fivetran Type | Fivetran Supported |
---|---|---|
Edm.Binary | BINARY | True |
Edm.Boolean | BOOLEAN | True |
Edm.Byte | BINARY | True |
Edm.DateTime | LOCALDATETIME* | True |
Edm.Decimal | BIGDECIMAL** | True |
Edm.Double | DOUBLE | True |
Edm.Guid | STRING | True |
Edm.Int16 | SHORT | True |
Edm.Int32 | INTEGER | True |
Edm.Int64 | LONG | True |
Edm.SByte | BINARY | True |
Edm.Single | FLOAT | True |
Edm.String | STRING | True |
Edm.Time | STRING | True |
Edm.DateTimeOffset | INSTANT | True |
*The LOCALDATETIME type is used to represent date and time values using the Gregorian calendar. In case of dates before 1582-10-15, there may be discrepancies in the representation of dates due to the switch from the Julian to the Gregorian calendar.
When you have invalid values in SAP for the chosen Edm type in OData, Fivetran will not be able to load the data due to an error about SAP Note 1797736. For additional details about data types, see the OData documentation.
**The BIGDECIMAL type uses the provided precision and scale values from the SAP source. Depending on the mapping, both precision and scaling can be 0, even though there can be valid non-zero BigDecimal data in that column. In such cases, we default the precision to 38 and scale to 8.
Schema information
Fivetran replicates the selected OData services and their underlying entities from your SAP source to your destination. Each service corresponds to a schema, each entity maps to a table, and each property becomes a column.
Fivetran retrieves and combines data from both the primary artefact entities and their associated DeltaLinksOf
entities into a single destination.
Fivetran generated columns
Fivetran adds one extra system column, _fivetran_synced
, to each destination table to provide insight into sync progress and timing:
Column | Type | Description |
---|---|---|
_fivetran_synced | INSTANT | (UTC TIMESTAMP) Indicates the time when Fivetran last successfully synced the row |
Deleting data
- Fivetran tracks deleted records for all tables.
- Tables have a
_fivetran_deleted
column in the destination. After each re-import, we mark any row that no longer exists in the source table as deleted in the destination.