BladePipe 1.9.0: New data pipelines, faster Oracle writes, and improved stability.
跳到主要内容

Oracle 到 ClickHouse

选择对端数据库:

数据链路

基本功能

功能说明
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.
For more information, see Create Verification and Correction DataJob.

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
  • ALTER TABLE ADD, MODIFY, DROP COLUMN
    - TRUNCATE TABLE
Metadata Retrieval

Retrieve the target metadata with filtering conditions from the source table.

高级功能

功能说明
自动建字典

如果使用离线字典解析 Oracle Redo, 则在创建任务时自动创建字典

追加模式写入

INSERT 和 UPDATE 以追加模式批量写入, DELETE 单独通过 ALTER 方式执行

定时优化表

通过设置 autoOptimizeThresholdSec 参数,定时优化表

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.

限制和注意点

限制项说明
增量同步性能

因 Logminer 有性能上限,且 CloudCanal 未采用并行分析,所以以 3000 条变更/秒 为性能基准

数据类型

不支持 BLOB 及衍生类型

特殊操作

DELETE 操作过多(>50 条/秒)将大幅影响数据同步性能

目标端表引擎

仅支持以下表引擎以及对应的源端表类型:

  • MergeTree(无主键表)
  • ReplacingMergeTree(有主键表)
  • ReplicatedMergeTree(无主键表)
  • ReplicatedReplacingMergeTree(有主键表)

使用示例

标题详情
Oracle 数据迁移同步优化与思考

文档:Oracle 数据迁移同步优化与思考

Oracle 数据迁移同步优化(三)

文档:Oracle 数据迁移同步优化(三)

Oracle to ClickHouse Data Migration and Synchronization

See Synchronize Data from Oracle to ClickHouse


源端数据源

前置条件

条件说明
账号权限

文档:Oracle 需要的权限

增量同步准备

文档:Oracle Logminer 准备

网络准备

迁移同步节点(sidecar)可连接 ORACLE 标准交互接口(如 1521)

任务参数

参数名称说明
fullFetchSize

全量扫描数据设置的 fetch size

eventStoreSize

缓存解析完毕的增量事件缓存大小

logminerUser

执行 Logminer SQL 的 Oracle 连接用户

logminerPasswd

执行 Logminer SQL 的 Oracle 连接密码

logminerConnectType

执行 Logminer SQL 的 Oracle 连接类型(PDB),包括 ORACLE_SID, ORACLE_SERVICE 两种可选

logminerSidOrService

执行 Logminer SQL 的 Oracle 连接串 SID 或服务名(PDB)

parseRedoSqlParallel

解析 Logminer 数据的并发度

parseRedoSqlBufferSize

解析 Logminer 数据的环形队列大小

redoFetchSize

单次获取 Logminer 分析数据条数

redoOfferTransMaxSize

未消费但已提交事务最大缓存数量

oraMiningSessionPauseSec

使用 Logminer 挖掘日志间隙停顿时间,单位为秒

maxEventCountPerTxInMem

内存中每个事务的最大事件数

logMiningScnStep

Oracle Logminer 分析 redo log 时指定的分析范围大小

abandonUnCommitTxTimeoutSec

不带数据变更的事务未提交超过设置的值,则自动放弃该事务

restartTxWithDataTimeoutSec

带数据变更的事务未提交超过设置的值,则自动重启任务

oraUseOnlineDic

是否使用在线日志,false 使用离线日志对 Oracle 压力较大

oraReleaseIntervalSec

重建分析链接的间隔,以释放 Oracle 服务端资源

fallBackScnStep

和 Redo log 最新数据保持的距离,0 表示紧跟

sqlCaseConversionEnabled

是否打开 DDL 大小写转换(根据当前数据库默认大小写规则)

Tips: 通用参数配置请参考 通用参数及功能


目标端数据源

前置条件

条件说明
账号权限

具备 SELECT, INSERT, 常见 DDL 权限

网络准备

迁移同步节点(sidecar)可连接 ClickHouse 标准交互接口(如 8123)

任务参数

参数名称说明
multiReplica

是否为多副本集群

clusterName

集群名称,当 multiReplica 为 true, 则自动在 DDL/DML 中加入 ON CLUSTER clusterName 子句

ckTableEngine

当前支持以下表引擎:

  • MergeTree
  • ReplacingMergeTree
  • ReplicatedMergeTree
  • ReplicatedReplacingMergeTree
autoOptimizeThresholdSec

定时优化表(optimize table final)间隔,<=0 则关闭此功能

enableTimeRangeClamping

是否启用时间范围裁剪,强制将时间和日期值收束到 ClickHouse JDBC 的合法区间内,超出的数值将被截断至最小值或最大值。默认关闭(false)。

收束后范围(UTC):

  • Date:[1970-01-01, 2149-06-06]
  • Date32:[1925-01-01, 2283-11-11]
  • Timestamp:[1970-01-01 00:00:00, 2106-02-07 14:28:15]
  • Timestamp64:[1925-01-01 08:00:00.000, 2283-11-12 07:59:59.000]

Tips: 通用参数配置请参考 通用参数及功能