Oracle to ClickHouse
BladePipe supports data replication from Oracle to ClickHouse. View supported migration, sync, verification, and connector capabilities.
| Function | Description |
|---|---|
Schema Migration | If the target schema does not exist, BladePipe will automatically generate and execute CREATE statements based on the source metadata and the mapping rule. |
Full Data Migration | Migrate data by sequentially scanning data in tables and writing it in batches to the target database. |
Incremental Data Sync | Sync of common DML like INSERT, UPDATE, DELETE is supported. |
Data Verification | Verify all existing data. Scheduled DataTasks are 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 the position by timestamp or Scn to consume Oracle Redo Log in a past period again. |
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, truncating the name by "_digit" suffix. |
DDL Sync |
|
Metadata Retrieval | Retrieve the target metadata with filtering conditions from the source table. |
Advanced Functions
| Function | Description |
|---|---|
Automatic Dictionary Creation | When using offline dictionaries to parse Oracle Redo files, the dictionary is automatically created during DataJob creation. |
Write in Append Mode | INSERT and UPDATE statements are written in batches in append mode, and DELETE statements are executed individually through ALTER statements. |
Scheduled Table Optimization | By setting the parameter autoOptimizeThresholdSec, the tables are optimized regularly. |
Custom Code | For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code. |
Setting Target Primary Key | Change the primary key to another field to facilitate data aggregation and other operations. |
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 |
|---|---|
Incremental Data Sync Performance | Due to LogMiner performance limits and BladePipe's lack of parallel analysis, the performance benchmark is set at 3000 records per second. |
Data Types | Do not support BLOB and derived types. |
Special Operation | Too many DELETE operations (>50 records/second) significantly affect data synchronization performance. |
Target Table Engine | Only the following table engines and corresponding source table types are supported:
|
Prerequisites
| Prerequisite | Description |
|---|---|
Permissions for Account | |
Incremental Data Sync Preparation | |
Port Preparation | Allow the migration and sync node (Worker) to connect to the Oracle port (e.g., 1521). |
Parameters
| Parameter | Description |
|---|---|
fullFetchSize | Fetch size for scaning full data. |
eventStoreSize | Cache size for parsed incremental events. |
logminerUser | User name for connection to Oracle to execute LogMiner SQL. |
logminerPasswd | Password for connection to Oracle to execute LogMiner SQL. |
logminerConnectType | Way to connect to Oracle (PDB) to execute LogMiner SQL, including ORACLE_SID and ORACLE_SERVICE options. |
logminerSidOrService | SID or service name for connection to Oracle (PDB) to execute LogMiner SQL. |
parseRedoSqlParallel | Number of threads for parallel parsing of LogMiner data. |
parseRedoSqlBufferSize | Size of the circular buffer for parsing LogMiner data. |
redoFetchSize | Number of rows of LogMiner analyzed data to fetch each time. |
redoOfferTransMaxSize | Maximum number of unconsumed but committed transactions in cache. |
oraMiningSessionPauseSec | Interval between LogMiner sessions, in seconds. |
maxEventCountPerTxInMem | Maximum number of events per transaction in memory. |
logMiningScnStep | Analysis range specified when Oracle LogMiner analyzes redo logs. |
abandonUnCommitTxTimeoutSec | Automatically abandon transactions that have not been committed for longer than the specified timeout. |
restartTxWithDataTimeoutSec | Automatically restart DataJobs for transactions with data changes that have not been committed for longer than the specified timeout. |
oraUseOnlineDic | Whether to use online logs; false means using offline logs, which may put more stress on Oracle. |
oraReleaseIntervalSec | Interval for recreating connection for analysis to release Oracle server resources. |
oraMiningSessionPauseSec | Interval between execution of LogMiner commands for analysis. |
fallBackScnStep | Distance to keep from the latest Redo log data; 0 means to keep right behind the latest Redo log data. |
sqlCaseConversionEnabled | Whether to enable DDL case conversion (according to the default case rules of the current database). |
Tips: To modify the general parameters, see General Parameters and Functions.
Prerequisites
| Prerequisite | Description |
|---|---|
Permissions for Account | SELECT, INSERT and common DDL permissions. |
Port Preparation | Allow the migration and sync node (Worker) to connect to the ClickHouse port (e.g., 8123). |
Parameters
| Parameter | Description |
|---|---|
multiReplica | Whether there are multiple replicas in a cluster. |
clusterName | Cluster name. When multiReplica is true, the ON CLUSTER clusterName clause is automatically added to DDL/DML. |
ckTableEngine | The following table engines are currently supported:
|
autoOptimizeThresholdSec | Interval of scheduled table optimization (optimize table final). If the value <=0, it means the feature is disabled. |
enableTimeRangeClamping | Whether to enable time range clamping. Forces date and time values to be constrained within the valid ClickHouse JDBC range. Values outside this range will be clamped to the minimum or maximum values. Disabled by default (false). Ranges after clamping(UTC):
|
Tips: To modify the general parameters, see General Parameters and Functions.