因工作需要,调研了很多 OLAP 系统,像 Druid、Presto、Kylin、ClickHouse 等,最终选定了 ClickHouse,其优点:快、安装简单、依赖少。
于是开启了踩坑之旅。
网上搜了很多从 MySQL 同步数据到 ClickHouse 的工具,好吧,确实很少,推荐最多的是https://github.com/Altinity/clickhouse-mysql-data-reader,无奈其不支持更新和删除,遂弃之;
找到了阿里开源的 canal,搭建了半天,先用 docker 死活搭建不成功,貌似里面启动了一个 MySQL 服务器,我本机也搭了个,冲突了,服!于是下载安装,可算装上了,一番配置过后,参考http://www.wuzhq.com/2019/12/16/mysql2clickhouse/这篇文章,结果同步报错,貌似语法解析错误什么的,弃之;
又找了个https://github.com/brokercap/Bifrost,一番折腾可算是搭好了,配置完了,同步依然出错,弃之...
然后找到了https://github.com/yymysql/mysql-clickhouse-replication,原理是解析 MySQL binlog 同步,clone 下来一番修补总算是可以用上了。无奈其只支持 python2,代码也比较冗长,介于实在是无工具可用,于是打算对此重新改造。
然后有了:https://github.com/long2ice/mysql2ch。
基于 mysql-clickhouse-replication 修改优化,增加命令行操作,打包上传至 pypi,增加 python3&pypy3 支持。
只需要一行命令:mysql2ch --log-pos-to=file
,你就可以享受从 MySQL 到 ClickHouse 的同步快感。
顺便推荐一个 BI 工具,metabase,配合 ClickHouse,你就可以对你的数据,想怎么玩儿,就怎么玩~
喜欢的可以点个 star~ 👉 https://github.com/long2ice/mysql2ch。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.