将数据从MySQL二进制日志流式传输到Kinesis

12
我们有一个写入密集型的表格(在AWS RDS MySQL上),来自遗留系统,我们希望将该表中的每个写入事件(插入或更新)流式传输到Kinesis。想法是创建一个管道来预热缓存并更新搜索引擎。
目前,我们使用一种基本的轮询架构来做到这一点,基本上使用SQL,但理想情况下应该具有推送架构,直接从事务日志中读取事件。
有人试过吗?有任何建议的架构吗?

嘿,你能够实现这个了吗? - Akshat Goel
暂时还没有。我们预计很快会回到这个问题上。 - David Lojudice Sb.
3个回答

16

我之前在Oracle中已经与一些客户一起使用了这种技术。似乎LinkedIn也大量使用了从数据库流式传输数据的技术。他们创建了一个名为Databus的平台来以一种不可知的方式实现这一点 - https://github.com/linkedin/databus/wiki/Databus-for-MySQL.

Github中有一个公共项目,遵循LinkedIn原则,已经将Mysql的binlog流式传输到Kinesis Streams - https://github.com/cmerrick/plainview

如果您想深入了解LinkedIn的方法,可以阅读这篇非常好(并且详尽)的博客文章 - https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying.

最后但并非最不重要的是,Yelp也在用Kafka做同样的事情 - https://engineeringblog.yelp.com/2016/08/streaming-mysql-tables-in-real-time-to-kafka.html

为了简洁起见,不涉及Kinesis Streams的基础知识,如果将Kinesis Streams引入其中,我认为它应该能够正常工作。事实上,它就是为此而构建的 - 您的数据库事务日志是一系列事件的流。借用Amazon Web Services公共文档的一段摘录:Amazon Kinesis Streams允许进行实时数据处理。使用Amazon Kinesis Streams,您可以在生成数据时持续收集数据,并迅速对有关业务和操作的重要信息做出反应。

希望这有所帮助。


1

AWS DMS服务提供了从SQL数据库到Kinesis的数据迁移。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接