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. The connector extracts data from the SAP OData API and loads it into your destination, providing streamlined access to SAP ERP data, such as Core Data Services (CDS) views and BW (Business Warehouse) extractors exposed on the SAP ODP API, which reflect key business processes. The connector leverages the SAP 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 the extraction of data. 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 artefacts and delta tracking mechanisms to optimize data synchronization:
- SAP artefacts (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 artefact 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.
NOTE: For more information, see the SAP Analytics Annotations documentation. IMPORTANT: 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.
We support extraction only from SAP artifacts that follow specific naming conventions. For successful integration, ensure your extraction objects follow these specific prefix conventions:
FactsOf<ODP name>
: Entity set for a fact ODPAttrOf<ODP name>
: Entity set for an ODP for attributesTimeDepAOf<ODP name>
: Entity set for an ODP for time-dependent attributesTextsOf<ODP name>
: Entity set for an ODP for textsEntityOf<ODP name>
: Entity set for an ODP without semantics
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 recognize.
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 |
NOTE: *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. Warning: 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.
NOTE: **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 every destination table to give you insight into the progress and changes of your connector:
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.