SAP HANA to Kafka
BladePipe supports data replication from SAP HANA to Kafka. View supported migration, sync, verification, and connector capabilities.
| Function | Description |
|---|---|
Schema Migration | If the specified Topic after mapping does not exist in the Target, BladePipe will automatically create the Topic, allowing setting the number of partitions. |
Full Data Migration | Migrate data by sequentially scanning data in tables and writing it in batches to the message middleware. |
Incremental Data Sync | Sync of common DML like INSERT, UPDATE, DELETE is supported. |
Subscription Modification | Add, delete, or modify the subscribed tables with support for historical data migration. For more information, see Modify Subscription. |
Position Resetting | Reset positions by data ID or timestamp. Allow re-consumption of CDC data in a past period. |
Table Name Mapping | Support the mapping rules, namely, keeping the name the same as that in Source, converting the text to lowercase, converting the text to uppercase. |
Metadata Retrieval | Retrieve the target metadata with filtering conditions or target primary keys set from the source table. |
Advanced Functions
| Function | Description |
|---|---|
Trigger-based Incremental Data Sync | The DataJob automatically creates triggers on tables. These triggers capture INSERT, UPDATE, and DELETE events and write them to the CDC tables. |
Message Format | The following message formats are supported. See Message Format.
|
Table-level Topic | Create Topics corresponding to the tables in the Source, and the table partitions can be obtained automatically. |
DDL Dedicated Topic | Allow specifying a Topic for DDL. If not specified, DDL time is placed in partition 0 of the Topic created from the corresponding table. |
Scheduled Full Data Migration | For more information, see Create Scheduled Full Data DataJob. |
Custom Code | For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code. |
Data Filtering Conditions | Support data filtering using WHERE conditions, with SQL-92 as the SQL language. For more information, see Data Filtering. |
Limits
| Limit | Description |
|---|---|
DDL Change Handling | BladePipe captures data changes in a source SAP HANA instance through triggers. DDL synchronization is not supported. If there are DDL changes, follow the steps in Change Schema in a Source SAP HANA Instance. |
Hana Data Types in Incremental Sync | In the incremental data sync phase with a source Hana instance, it does not allow capturing changes for TEXT, BIN_TEXT, ST_POINT, and ST_GEOMETRY data types by triggers. |
Hana Trigger Recording Data Before Changes | Considering the efficiency of Hana triggers, in the single CDC table mode, only the primary key data before changes is recorded currently. |
Parameters
| Parameter | Description |
|---|---|
sysTriggerDataSchema | The schema name where the trigger writes incremental data. |
sysTriggerDataTable | The table name where the trigger writes incremental data. |
incrPagingCount | The total amount of data queried each time by the trigger during incremental data synchronization. |
incrIdleSleepSecond | The interval between queries for the trigger during idle period of incremental data synchronization (in seconds). |
incrScanIntervalMs | The interval between data queries for the trigger during incremental data synchronization (in milliseconds). |
autoCheckTriggerAndReInstall | Check the trigger status and reinstall it when the DataJob starts. |
triggerDataCleanEnabled | Enable scheduled cleanup of trigger incremental data. |
triggerDataCleanIntervalMin | The cleanup interval for trigger incremental data (in minutes). |
triggerDataRetentionMin | The retention time for trigger incremental data (in minutes). |
dbHeartbeatEnable | Configure whether to enable heartbeat for the source database. |
needTriggerDataJsonEscape | Whether to escape characters (\) in the trigger incremental JSON. |
triggerDataJsonQuotation | Custom quotation marks for trigger incremental JSON. |
triggerParamBathSize | Set the number of columns involved per variable in the trigger template. |
fullBeforeImageEnabled | Enable the trigger to record the complete data before all column changes. |
Tips: To modify the general parameters, see General Parameters and Functions.
Prerequisites
| Prerequisite | Description |
|---|---|
Port Preparation | Allow the migration and sync node (Worker) to connect to the Kafka ports. |
Parameters
| Parameter | Description |
|---|---|
schemaFormat | Message format. For more information, see Message Format. |
batchWriteSize | The maximum data size of a single message. If the size exceeds the limit, the message will be split. |
defaultTopic | Messages that cannot find a corresponding topic are sent to this topic (such as adding a new table) |
ddlTopic | A topic specifically used to receive DDL events. If it is empty, the DDL events will be sent to the 0th partition of the corresponding topic. |
compressionType | Kafka compression.type parameter to set compression algorithm. Support GZIP, SNAPPY, LZ4, ZSTD. |
batchSize | Kafka batch.size parameter. |
acks | Kafka acks parameter. By default, it is all. |
maxRequestBytes | Kafka max.request.size parameter. |
lingerMs | Kafka linger.ms parameter. By default, it is 1. |
envelopSchemaInclude | When schemaFormat is set to DEBEZIUM_ENVELOP_JSON_FOR_MQ, it means whether the message body contains schema information. |
customClientProps | Custom properties passed to the Kafka client in JSON format. The key is the parameter name and the value is the parameter value. This setting takes the highest priority. For example: AWS IAM Access Control |
Tips: To modify the general parameters, see General Parameters and Functions.