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

31次阅读

共计 2263 个字符,预计需要花费 6 分钟才能阅读完成。

简述

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

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

正文完
 0