(资料图)

简述

CloudCanal当前最新版本已经支持源端Oracle、SqlServer等主流传统数据库作为源端迁移同步数据到StarRocks来构建实时数仓。本文简要介绍如何快速构建一条Oracle->StarRocks数据链路。

技术要点

基于StreamLoad的导入方式

CloudCanal 采用了 StreamLoad 的方式进行导入,源端的消息会转成字节流,最后会以批量发送的形式通过 HTTP 协议发往 StarRocks。CloudCanal 默认采用 json 格式来进行StreamLoad导入,如果用户内容特殊字符较少,也可以开启 csv 格式导入,分隔符可以通过参数 columnSeparator 和 lineSeparator 设置。基于 StreamLoad 的写入方式,实际写入对端的操作均为 INSERT,CloudCanal 同步时会自动将 UPDATE / DELETE 转成 INSERT 语句,并修改 __op 值,StarRocks会自动进行数据合并。

支持常用DDL实时同步

Oracle -> StarRocks 支持新增列、删除列DDL。DDL实时同步到对端时会自动转换成StarRocks兼容的语法,数据类型也会根据映射关系进行自动转换。

编辑订阅功能

CloudCanal 提供了便利的修改订阅能力。对于一个已经创建好的正在运行的增量同步任务,如果由于业务需求有新增表需要订阅,可以在原有任务的基础上新增需要订阅的表,生成子任务,自动完成全量、增量迁移同步,在完成后会子任务会自动与原有的任务合并。

数据类型映射

CloudCanal结构迁移和数据迁移同步时会自动进行数据类型映射。类型映射见下表:

Oracle类型StarRocks类型
CHARVARCHAR
NCHARVARCHAR
VARCHAR2VARCHAR
NVARCHARVARCHAR
NVARCHAR2VARCHAR
LONGSTRING
NUMBER_BIGINTBIGINT
NUMBER_DECIMALDECIMAL
FLOATFLOAT
BINARY_FLOATDECIMAL
BINARY_DOUBLEDECIMAL
CLOBSTRING
NCLOBSTRING
DATADATETIME
TIMESTAMPDATETIME
TIMESTAMP_WITH_TIME_ZONEDATETIME
TIMESTAMP_WITH_LOCAL_TIME_ZONEDATETIME
INTERVAL_YEAR_TO_MONTHDATETIME
INTERVAL_DAY_TO_SECONDDATETIME
ROWIDSTRING
PLSQL_BOOLEANBOOLEAN
XMLTYPESTRING
HTTPURITYPESTRING

操作示例

准备CloudCanal

Oracle源端前置准备

CloudCanal在做Oracle作为源端的数据迁移同步时,需要做一些前置准备。具体可以参考 ORACLE LogMiner同步准备。

添加数据源

任务创建

总结

本文简单介绍了如何使用CloudCanal进行Oracle->StarRocks 数据迁移同步。各位读者朋友,如果你觉得还不错,请点赞、评论加转发吧。

推荐内容