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

标签 mysql amazon-web-services amazon-kinesis aws-rds

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

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

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

最佳答案

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

Github 中有一个公共(public)项目,遵循 LinkedIn 原则,已经将 binlog 从 Mysql 流式传输到 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 公共(public)文档的摘录:Amazon Kinesis Streams 允许实时数据处理。借助 Amazon Kinesis Streams,您可以在生成数据时持续收集数据,并及时对有关您的业务和运营的关键信息使用react。

希望这会有所帮助。

关于mysql - 将数据从 MySQL 二进制日志流式传输到 Kinesis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39007703/

相关文章:

java - 将 AWS 签名 header 添加到所有放心请求中

amazon-web-services - CloudFormation 中的 AWS::CloudFront::OriginRequestPolicy 资源

hadoop - 通过 aws EMR 在 Kinesis 流上运行 hadoop pig 脚本

amazon-web-services - AWS Firehose 换行符

php - 逐行读取文件的更快方法?

mysql - 连接时 SQL 未知列

php - 将时间字符串存储到 Laravel 中的 TIME 列

mysql - Entity Framework 5 : Cascade Delete One to Many

json - 在 API 网关请求验证中设置默认值

hadoop - 如何使用 Spark Streaming 确保事件的有序处理?