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