简述
ClickHouse 是一种风行的列式数据库,对于计算 uv、mv、pv 等聚合类数据相当敌对,所以宽泛应用于各类报表场景。
本文次要介绍如何应用 CloudCanal 疾速构建一条稳固高效运行的 ORACLE 到 ClickHouse 数据同步链路。
示例中 ORACLE 库为 PDB 模式, ClickHouse 为单正本实例。
技术点
ORACLE 源端增量同步技术
CloudCanal 对于 ORACLE 源端增量同步采纳 LogMiner 剖析 redo 日志或物化视图 / 类 trigger 形式进行。
对于前者,咱们采纳了多种优化形式,将 ORACLE 源端增量同步做到精确、稳固、性能几个方面的均衡,这些技术包含:
- 采纳 LogMiner 最规范的形式 (ADD_FILE) 作为默认解析形式,同时辅以 CONTINUOUS_MINE作为补充(有 ORACLE 版本限度)
- 采纳全事件生产模式保障 ORACLE 稳固
- 反对本地存储以缓存超大变更数据,并采纳手动指定序列化 / 反序列化器让数据存取更牢靠
- 采纳更加全面的 redo SQL 解析器晋升解析准确性
- 反对事件合并,批量交付对端写入,大幅晋升数据写入性能
- 反对 DDL 同步(局部链路),局部缩小数据同步链路运维压力
- 反对位点回拉,让数据生产谬误有机会得以补救
- 反对全量数据校验,让数据品质失去更好的监测
- 反对工作编辑,让长周期运行的数据同步工作更平滑地应答同步对象的变动
- 增强的监控指标,让同步状态更加明了
- 放大的数据库权限,让危险进一步放大
围绕 ORACLE 数据库的周边生态,咱们心愿可能做到 GoldenGate 一样弱小甚至超出,相干产品技术一直迭代演进。
ClickHouse 高性能写入
CloudCanal 对于 ClickHouse 高性能写入技术,次要 联合列存的特点 、 常见业务场景流量特点 、 用户应用和了解的便利性 3 方面进行抉择与均衡。
列存绝对行存的特点:
- 列的批量读取效率高,磁盘 IO 绝对小
- 列存数据块因类型类似,压缩效率好,可应用的计算指令和形式更多
常见业务场景流量特点:
- insert 和 update 比例高于 delete, 偏差剖析统计的日志类数据 insert 比例远高于后两者
- 要求高并发的业务,数据读取更新往往只在几个列上
- 偏差经营用户的交互式数据分析更多在最近写入的数据上
用户应用和了解便利性:
- 不保护额定的字段,比方版本、是否删除等
- 性能和实时一致性可抉择,让用户有路可走
- 抉择 ClickHouse 支流表引擎,避免将来版本 deprecated
针对上述 3 个方面的特点,咱们采纳了以下一些技术达成均衡
- insert/update 走 APPEND 形式(批量写入),delete 走 ALTER TABLE,性能好,但须要 OPTIMIZE 或查问带 FINAL
- 完全一致通过自定义代码拆分 update 为 delete 和 insert 达成,但性能升高
- 默认采纳 ReplacingMergeTree 达成数据去重
- 反对并行批量写入(但更简单些)
操作示例
前置条件
- 登入 CloudCanal SaaS 版, 应用参见疾速上手文档
- 筹备一个 ORACLE 数据库,和 ClickHouse 实例(本例别离应用自建 Oracle 19c 和阿里云 ClickHouse 21.8)
- ORACLE 账号权限配置
-
登录 CloudCanal 平台,别离增加
-
ORACLE 采纳 PDB 形式增加
工作创立
- 工作治理 -> 工作创立
- 测试链接 并抉择 源 和 指标 数据库
-
点击下一步
-
抉择 数据同步 ,并勾选 全量数据初始化, 其余选项默认
-
抉择须要迁徙同步的表,指标映射规定可抉择 与源端统一 和转小写
-
抉择须要迁徙同步的列,指标映射规定可抉择 与源端统一 和转小写
-
确认创立工作
-
工作主动做 构造迁徙 、 全量迁徙 、 增量同步
校验数据
-
程序往源端 ORACLE 造数据,I:U:D 比值为 15:83:2
- 工作失常运行一段时间后,进行造数据
-
点击 ORACLE -> ClickHouse 工作 详情 , 更多 > 创立类似工作 ,第二步抉择 数据校验
-
数据校验 OK
常见问题
是否反对分布式版本的 ClickHouse?
临时不反对分布式版本的 ClickHouse,次要工作量在于产品化构造迁徙、增量同步 DDL、数据写入等方面的变动。
如果不要 append 模式而采纳强统一模式写入 ClickHouse 怎么办?
能够采纳自定义代码将 update 拆分为 delete 和 insert,实现实时统一的成果,然而 update 较多时,性能较差。
反对什么版本的 ORACLE?
目前反对 11g,12c,19c, CDB 或 PDB 类型数据库皆可应用 CloudCanal 进行迁徙同步。
总结
本文简略介绍了如何应用 CloudCanal 进行 ORACLE -> ClickHouse 数据迁徙同步。各位读者敌人,如果你感觉还不错,请点赞、评论加转发吧。