High-Volume Agent SAP ECC on Oracle with NetWeaver Beta
SAP ECC on Oracle is an enterprise resource planning and analytics platform built on top of Oracle database. Fivetran replicates data from your Oracle source database and loads it into your destination using High-Volume Agent connector.
NOTE: You must have an Enterprise or Business Critical plan to use the High-Volume Agent SAP ECC on Oracle with NetWeaver connector.
Supported services
The Fivetran High-Volume Agent connector supports the following Oracle database services:
Supported configurations
Fivetran supports the following Oracle configurations:
Supportability OS | Database versions | Notes |
---|---|---|
Windows | 11.1, 11.2, 12.1, 12.2, 18c, 19c | |
Linux | 11.1, 11.2, 12.1, 12.2, 18c, 19c, Exadata |
Which Oracle instance types we can connect to depends on your database service.
Instance Types | Supported |
---|---|
Generic Oracle | |
Primary instance | check |
Active Data Guard Standby instance | check |
Physical Standby instance | |
Real Application Cluster (RAC) | check |
Multitenant (CDBs/PDBs) | check |
Known limitations
- Limited support for special* or lowercase characters in column and table names.
- No support for special* or lowercase characters in schema names. For example,
lowercase_schema
,lowercase_SCHEMA
, orlOwErCaSeScHeMa
are all unsupported names. - Fivetran's AppConnect does not support replicating LOB (BLOB, CLOB, NCLOB) data that is larger than 30k bytes. In case the LOB contains more than 30k bytes, data is silently truncated.
- Fivetran supports SAP ECC on Oracle with NetWeaver only for HVA version 6.1.0/18 and above.
- DDL change detection for pool and cluster tables is not supported.
* Special characters include (
, &
, @
, *
, $
, |
, %
, ~
, -
, and )
. Underscores are not special characters.
Features
Setup guide
Follow our step-by-step setup guide for specific instructions on how to set up your SAP ECC on Oracle with NetWeaver using the High-Volume Agent connector.
Sync overview
Once connected to your database, the Fivetran connector runs an initial sync, pulling a full dump of selected data from your database and sending it to your destination. After a successful initial sync, the connector runs in an incremental sync mode. In this mode, Fivetran automatically detects new or updated data, such as new tables or data type changes, and persists these changes into your destination. We use log-based capture to extract your database's change data, then process and load these changes at regular intervals, ensuring a consistently updated synchronization between your database and destination.
NOTE: Choosing a 1-minute sync frequency does not guarantee that your sync finishes running within one minute.
Schema information
Fivetran tries to replicate the exact schema and tables from your Oracle source database to your destination according to our standard database update strategies. We create schemas in your destination that map directly to the schemas in your source Oracle database, ensuring that the data in your destination is in a familiar format to work with.
When you connect to Fivetran and specify a source database, you also select a schema prefix. We map the schemas we discover in your source database to your destination and prepend the destination schema name with the prefix you selected.
Fivetran-generated columns
Fivetran adds the following columns to every table in your destination:
_fivetran_deleted
(BOOLEAN) marks rows that were deleted in the source database._fivetran_synced
(UTC TIMESTAMP) indicates the time when Fivetran last successfully synced the row._fivetran_id
(STRING) is a unique ID that Fivetran uses to avoid duplicate rows in tables that do not have a primary key.
We add these columns to give you insight into the state of your data and the progress of your data syncs. For more information about these columns, see our System Columns and Tables documentation.
Type transformations and mapping
As we extract your data, we match Oracle data types to types that Fivetran supports. If we don't support a certain data type, we automatically change that type to the closest supported type or, in some cases, don't load that data at all. Our system automatically skips columns of data types that we don't accept or transform.
The following table illustrates how we transform your Oracle data types into Fivetran supported types:
Oracle Type | Fivetran Type | Fivetran Supported | Notes |
---|---|---|---|
CHAR | STRING | True | |
NCHAR | STRING | True | |
VARCHAR | STRING | True | |
VARCHAR2 | STRING | True | |
NVARCHAR2 | STRING | True | |
NUMBER | One of the following types based on the source value's precision: - Short integers (precision < 5) to SHORT - Integers (precision < 10) to INTEGER - Long integers (precision < 19) to LONG - Integers (precision < default value) to BIGDECIMAL | True | We map floating-point, double-precision floating-point, or big decimal numbers to the BIGDECIMAL data type. If we detect precision or scale larger than your default values, we map that data to the STRING data type. |
FLOAT | BIGDECIMAL | True | |
DOUBLE PRECISION | BIGDECIMAL | True | |
REAL | BIGDECIMAL | True | |
DATE | LOCALDATE | True | We map DATE columns to LOCALDATETIME if the values have non-zero time information. |
TIMESTAMP | LOCALDATETIME | True | |
TIMESTAMP WITH TIME ZONE | INSTANT | True | |
TIMESTAMP WITH LOCAL TIME ZONE | INSTANT | True | |
RAW | BINARY | True | |
BINARY_FLOAT | False | ||
BINARY_DOUBLE | False | ||
INTERVAL YEAR TO MONTH | False | ||
INTERVAL DAY TO SECOND | False | ||
LONG | False | ||
LONG RAW | False | ||
ROWID | False | ||
UROWID | False | ||
BFILE | False | ||
BLOB | BINARY | True | We truncate LOB columns if they exceed your destination's maximum allowed length.* |
CLOB | STRING | True | We truncate LOB columns if they exceed your destination's maximum allowed length.* |
NCLOB | STRING | True | We truncate LOB columns if they exceed your destination's maximum allowed length.* |
* Learn more in our Long Value Truncation documentation.
If we are missing an important type that you need, reach out to support.
In some cases, when loading data into your destination, we may need to convert Fivetran data types into data types that are supported by the destination. For more information, see the individual data destination pages.
Configuring source data
HVA SAP ECC on Oracle with NetWeaver connector does not automatically detect tables to sync. You must add or delete tables explicitly in the dashboard.
SAP-specific table support
The replicated tables include the SAP cluster tables, pool tables, and transparent tables. The data in the cluster and pool tables is unpacked and replicated into the target in its unpacked form. For example, the table RFBLG
from the source location is replicated into tables rows for BSEC
and BSEG
.
Schema changes
NOTE: This connector does not support DDL changes for pool and cluster tables. In such cases, we highly recommend performing a table-level re-sync.
Initial sync
Once connected to your database, the Fivetran connector copies all rows from every table in every schema for which a Fivetran user has SELECT
permissions (except for those you have excluded in your Fivetran dashboard) and sends them to your destination. Additionally, we add Fivetran-generated columns to every table in your destination offering visibility into the state of your data during the syncs.
NOTE: While we import a maximum of four tables at a time, the process is designed to be efficient. As soon as one table import completes, we initiate the import of a new table. This approach ensures that we do not wait for all four tables to complete before starting the next one.
Updating data
Fivetran performs incremental updates of any new or modified data from your source database. We use log-based capture to extract your database's change data directly from the log files.
Tables with a primary key
We merge changes to tables with primary keys into the corresponding tables in your destination:
- An INSERT in the source table generates a new row in the destination with
_fivetran_deleted = FALSE
. - A DELETE in the source table updates the corresponding row in the destination with
_fivetran_deleted = TRUE
. - An UPDATE in the source table updates the data in the corresponding row in the destination.
If we detect that your primary key has changed, we handle DELETEs and UPDATEs differently:
- If you have set
SUPPLEMENTAL LOG DATA (ALL)
on your source table, we update the row with the old primary key value with_fivetran_deleted = TRUE
. We then insert a row with the new primary key value with_fivetran_deleted = FALSE
. - If you have not set
SUPPLEMENTAL LOG DATA (ALL)
on your source table, we do not update the row with the old primary key value because we can't identify it. We insert a row with the new primary key value with_fivetran_deleted = FALSE
.
NOTE: If we detect that your primary key has changed and you have not set
SUPPLEMENTAL LOG DATA (ALL)
on your source table, we will raise a warning telling you to setSUPPLEMENTAL LOG DATA (ALL)
on the table.
Tables without a primary key
For tables without a primary key, we designate our _fivetran_id
column as the primary key. We populate this column with Oracle's ROWID
pseudo column value.
NOTE: For a table without a primary key with row movement enabled, any update operation may incur additional MAR if it causes a row movement. When the row movement occurs, Oracle generates the following three log events, and Fivetran counts them as two MAR:
UPDATE (to an existing row) DELETE (the row from the current partition) INSERT (the row into a new partition)
Deleted rows
We do not delete rows from your destination. When a row is deleted from the source table, we set the _fivetran_deleted
column value of the corresponding row in the destination to TRUE
.
NOTE: For cluster tables, we permanently delete all the deleted rows from the destination, instead of adding the
_fivetran_deleted
column.
Deleted columns
We do not delete columns from your destination. When a column is deleted from the source table, we replace the existing values in the corresponding destination column with NULL
values.
Excluded tables
Fivetran does not sync the following tables:
- Temporary tables
- System-generated supplemental tables (for example,
MLOG$
tables) - System tables (for example, those in the
SYSTEM
tablespace or those owned bySYS
user)