5分钟搞定MySQLPostgreSQLOracle到StarRocks数据迁移同步-CloudCanal实战

5分钟搞定MySQLPostgreSQLOracle到StarRocks数据迁移同步-CloudCanal实战,第1张

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

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

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

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

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

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

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

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

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

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

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

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

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

CloudCanal-免费好用的企业级数据同步工具,欢迎品鉴。

了解更多产品可以查看 官方网站 : http://www.clougence.com

CloudCanal社区 : https://www.askcug.com/

貌似没有直接可用的方法。

不过有个思路:可以开启mysql的binlog,mysql会把所有的 *** 作写进来,你搞个程序解析然后到pg中执行。

具体实现就不好说了,没这么干过,呵呵。

可以现在POSTGRESQL中建一个与MYSQL字段相兼容的表

再用PHPMYADMIN从MYSQL中用CSV导出数据,分隔字段的字符改成逗号,转义字段的字符留空,导出后,在POSTGRESQL中用

copy table from '你刚才的CSV的文件路径' with csv

导入即可

这中方法再处理NULL的时候好像会出问题,到时再做些小改动吧。

这是我目前知道的一种基本可行的方法,有没有其他的不知道了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8541541.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存