5分钟搞定MySQL/PostgreSQL/Oracle到StarRocks数据迁移同步-CloudCanal实战

简述

CloudCanal 2.1.0.x 版本开始支持 StarRocks 作为对端的数据迁移同步能力

本文通过 MySQL->StarRocks 的数据迁移同步案例简要介绍这个源端的能力。链路特点:

  • 结构迁移、全量迁移、增量同步(数据)、数据校验俱全
  • 流程全自动化

使用须知

  • 支持的StarRocks版本为: 1.18.x、1.19.x、2.0.x
  • 支持的源端数据源类型为: Oracle/PostgreSQL/Greenplum/MySQL,本文主要以 MySQL 源端为例说明使用方法。
  • 校验任务只支持主键模型的 StarRocks 表,源端表需要有主键

技术点

基于 StreamLoad 的导入方式

StarRocks 提供了多种导入方式。CloudCanal 采用了 StreamLoad 的方式进行导入,源端的消息会转成字节流,通过 HTTP 协议发往 StarRocks。

相比直接通过 SQL 写入的方式,StreamLoad 方式会有更好的性能,写入的数据直接经 FE 转发给 BE 处理。如果直接采用 SQL 写入,在 FE 侧,会有额外的 SQL 解析开销。

tips: CloudCanal默认采用 \u0001、\u0003作为 StreamLoad 导入的列分隔符和行分隔符。

丰富的配置

CloudCanal 提供了 StreamLoad 可配置的丰富参数,包括:

  • connectionTimeoutSec 参数
    • 表示导入请求的超时时间(单位:秒)
  • loadExecMemLimitMb 参数
    • 表示导入内存限制
  • timezone 参数
    • 默认东八区,指定导入所使用的时区
    • 该参数会影响所有导入涉及的和时区有关的函数结果。

可配置的写入停顿控制

过快的写入会导致 StarRocks 来不及 compaction,从而产生异常。CloudCanal 提供了两个任务参数,支持在一批数据写入后自动停顿一段时间,避免这种问题。参数为:

  • fullBatchWaitTimeMs 参数
    • 全量批之间写入停顿间隔,单位毫秒,默认 10ms
  • increBatchWaitTimeMs 参数
    • 增量批之间写入停顿间隔,单位毫秒,默认 100ms

CloudCanal 任务详情页,点击 参数修改,即可调整

e6865230-17ad-461c-b1bf-c4001cd30e10-image.png
691f1b73-d67d-4b31-ad6d-d123d7443fed-image.png

主键模型

StarRocks 作为实时数仓,采用主键模型或者聚合模型较多。CloudCanal默认采用主键模型,能够实时同步源端的 INSERT/UPDATE/DELETE

tips: 表结构对于实时数仓实际读写性能影响非常大,CloudCanal 默认提供的结构迁移能力并没有提供诸如分区分桶等设置,用户如需使用,可按照需求提前创建好表结构,再通过 CloudCanal 进行数据迁移同步。

UPDATE/DELETE 操作的处理

基于 StreamLoad 的写入方式,实际写入对端的操作均为 INSERT。CloudCanal 同步时会自动将 UPDATE/DELETE 转成INSERT语句,并修改 __ops 值,StarRocks 会自动进行compaction。

转义支持

StarRocks 不支持 \n 等特殊符号写入,CloudCanal 任务通过参数设置(enableEscape参数) 开启自动转义。

操作示例

  • CloudCanal 社区版部署,参见 社区版安装文档
  • 准备好源端和目标端数据库以及对应的测试数据

添加数据源

  • 登录 CloudCanal 平台

  • 数据源管理->新增数据源

  • 选择自建数据库中StarRocks


    f374af27-fee3-4697-887d-9f3fb9533015-image.png
  • Client地址: 为StarRocks提供给MySQL Client的服务端口,CloudCanal主要用其查询库表的元数据信息

  • Http地址: Http地址主要用于接收stream load的http请求

任务创建

  • 任务管理->任务创建

  • 选择 目标 数据库

  • 点击 下一步


    e292dbc4-b704-4dc0-b9ee-42f0d36b490e-image.png
  • 选择 增量同步,并且启用 全量数据初始化

  • 不勾选 DDL 同步(暂不支持)

  • 点击下一步


    cb223937-cfcb-4348-82d7-ad712e58fa28-image.png
  • 选择订阅的表,结构迁移自动创建的表为主键模型的表,因此暂不支持无主键表

  • 点击下一步


    9ef5e6ff-55d2-4c60-8d06-5ea1ec7aa3a0-image.png
  • 配置列映射

  • 点击下一步


    4257f866-73ff-4be8-bfa3-856a9a1378cc-image.png
  • 创建任务


    1c3d5908-0a28-46e5-93d7-62bb2fec1957-image.png
  • 查看任务状态。任务创建后,会自动完成结构迁移、全量、增量阶段。


    c5104d1a-fa40-46f2-af20-278fad1c8f76-image.png

任务性能调优(option)

对于高流量的场景,建议使用 4G 及以上的任务规格配置,并且对相关参数进行调优,调优建立在任务无 GC 问题、对端 StarRocks 没有 compaction 瓶颈的情况下。

  • 任务详情->功能列表->参数设置
    37ea6a32-6195-4ba6-9536-a84b36808732-image.png
  • 全量迁移参数调整


    b101094f-914b-401b-8b02-dcff2f9c4ec2-image.png
  • 增量同步参数调整


    c2f8457f-b49e-428f-9120-b875e7b87fc3-image.png

总结

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

常见FAQ

默认任务参数配置下,如果导入数据过于频繁可能会任务异常,这时候可以调节上文提到的fullBatchWaitTimeMs和increBatchWaitTimeMs参数或者调整StarRocks的Server侧的合并策略。下图为StarRocks官方提供的常见问题FAQ

77b7f260-455d-4a9d-a684-dbc0863e6365-image.png

更多精彩

CloudCanal-免费好用的企业级数据同步工具,欢迎品鉴。
了解更多产品可以查看官方网站http://www.clougence.com
CloudCanal社区https://www.askcug.com/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容