简述
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类型 |
---|---|
CHAR | VARCHAR |
NCHAR | VARCHAR |
VARCHAR2 | VARCHAR |
NVARCHAR | VARCHAR |
NVARCHAR2 | VARCHAR |
LONG | STRING |
NUMBER_BIGINT | BIGINT |
NUMBER_DECIMAL | DECIMAL |
FLOAT | FLOAT |
BINARY_FLOAT | DECIMAL |
BINARY_DOUBLE | DECIMAL |
CLOB | STRING |
NCLOB | STRING |
DATA | DATETIME |
TIMESTAMP | DATETIME |
TIMESTAMP_WITH_TIME_ZONE | DATETIME |
TIMESTAMP_WITH_LOCAL_TIME_ZONE | DATETIME |
INTERVAL_YEAR_TO_MONTH | DATETIME |
INTERVAL_DAY_TO_SECOND | DATETIME |
ROWID | STRING |
PLSQL_BOOLEAN | BOOLEAN |
XMLTYPE | STRING |
HTTPURITYPE | STRING |
操作示例
筹备CloudCanal
- 装置好CloudCanal
-
筹备好源端和指标端数据库及对应数据
Oracle源端前置筹备
CloudCanal在做Oracle作为源端的数据迁徙同步时,须要做一些前置筹备。具体能够参考 ORACLE LogMiner同步筹备。
增加数据源
- 登录CloudCanal平台
- 数据源治理->增加数据源
-
创立源端数据源:抉择自建数据源,抉择Oracle,并填写相干数据库信息,点击新增数据源确定创立Oracle数据源。
- logminerUser:ORACLE源端增量工作应用redo解析(logminer)形式时应用的账号,须要CDB类型用户
- logminerPasswd:ORACLE源端增量工作应用redo解析(logminer)形式时应用的账号密码
- logminerConnectType:ORACLE源端增量工作应用redo解析(logminer)形式时应用的连贯形式,目前反对ORACLE_SID或ORACLE_SERVICE模式
- logminerSidOrService:ORACLE源端增量工作应用redo解析(logminer)形式时应用的连贯标识符,和logminerConnectType参数配合应用,ORACLE_SID连贯形式,则填写sid,ORACLE_SERVICE连贯形式,则填写service name
- 创立目标端数据源:抉择自建数据源,抉择StarRocks,并填写相干数据库信息,点击新增数据源确定创立StarRocks数据源
- Client地址:StarRocks提供的MySQLClient服务端口,CloudCanal次要用其查问库表的元数据信息,对应StarRocks的QueryPort,默认端口为9030
- Http地址:Http地址次要用于接管streamload的http申请。此处能够填写StarRocks BE节点的端口,默认为8030;如需负载平衡也反对间接填写FE的地址和端口,StarRocks的FE会主动解决stream load的http申请
- 查看数据源是否创立胜利
工作创立
- 工作治理->创立工作
- 抉择集群
- 源端抉择刚增加的Oracle数据源,指标端抉择StarRocks数据源,别离点击测试连贯按钮以测试数据库连通性和获取schema级别元信息,显示连贯胜利后,设置数据库映射关系
- StarRocks的构造迁徙反对用户自定义分桶数等自定义建表信息
- 点击下一步
- 抉择增量同步,并且勾选全量初始化
- 点击下一步
- 抉择订阅的表
- 点击下一步
- 配置列映射
- 点击下一步
- 点击创立工作
- 工作创立胜利并启动后,会主动执行构造迁徙、全量迁徙、增量同步
总结
本文简略介绍了如何应用CloudCanal进行Oracle->StarRocks 数据迁徙同步。各位读者敌人,如果你感觉还不错,请点赞、评论加转发吧。
发表回复