关于数据库:CloudCanal实战五分钟搞定Oracle到StarRocks数据迁移与同步

简述

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 数据迁徙同步。各位读者敌人,如果你感觉还不错,请点赞、评论加转发吧。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理