12

我们有一个来自遗留系统的写入密集型表(在 AWS RDS MySQL 上),我们希望将该表中的每个写入事件(插入或更新)流式传输到 kinesis。这个想法是创建一个管道来预热缓存和更新搜索引擎。

目前,我们使用基本的轮询架构(基本上使用 SQL)来做到这一点,但理想的情况是使用推送架构直接从事务日志中读取事件。

有人试过吗?有什么推荐的架构吗?

4

2 回答 2

14

我已经在 Oracle 中与一些客户合作过。似乎LinkedIn也使用了很多将数据从数据库流式传输到其他地方的技术。他们创建了一个名为 Databus 的平台,以一种不可知的方式实现这一目标 - https://github.com/linkedin/databus/wiki/Databus-for-MySQL

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

如果您想深入了解 LinkedIn 方法的细节,这里有一篇非常不错(而且内容广泛)的博客文章 - https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer -应该知道实时数据统一

最后但同样重要的是,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,您可以在生成数据时持续收集数据,并及时对有关您的业务和运营的关键信息做出反应。

希望这可以帮助。

于 2016-10-28T10:20:52.740 回答
1

aws DMS 服务提供从 SQL db 到 kinesis 的数据迁移。

于 2019-11-04T00:13:51.220 回答