现在需要mysql几张表实时同步到一个地方,考虑到增量、性能问题,做出以下重要文档。
某几张表实时同步
实时需求开发
一、技术组件调研
1.sqoop方式
无法实时
2.flume方式。
可以参考文章:
https://blog.csdn.net/wzy0623/article/details/73650053
方案优缺点
利用Flume采集关系数据库表数据最大的优点是配置简单,不用编程。相比tungsten-replicator的复杂性,Flume只要在flume.conf文件中配置source、channel及sink的相关属性,已经没什么难度了。而与现在很火的canal比较,虽然不够灵活,但毕竟一行代码也不用写。再有该方案采用普通SQL轮询的方式实现,具有通用性,适用于所有关系库数据源。
这种方案的缺点与其优点一样突出,主要体现在以下几方面。
在源库上执行了查询,具有入侵性。
通过轮询的方式实现增量,只能做到准实时,而且轮询间隔越短,对源库的影响越大。
只能识别新增数据,检测不到删除与更新。
要求源库必须有用于表示增量的字段。
即便有诸多局限,但用Flume抽取关系库数据的方案还是有一定的价值,特别是在要求快速部署、简化编程,又能满足需求的应用场景,对传统的Sqoop方式也不失为一种有效的补充。
3.触发器方式
这个方案在非高并发情况下可行,如果并发较高,可以考虑中间表并且记录版本号,来应对同条记录的多次操作。
https://blog.c