mysql - 从mysql到mongo db的数据调度问题
问题描述
我们正在开发一个 SAAS 系统,我们最初使用 MySQL 作为 DB,但随着数据的增长,我们的数据列表变得更慢,因此我们使用 Mongo DB 来存储我们需要显示的准备好的 JSON(所有加入MySQL)有一段时间效果很好
我们在 java 中编写了一个调度程序,它每 2 分钟运行一次,并将修改后的记录从 MySQL 更新到 mongo
最初,它运行良好,但随着时间的推移和数据及其速率的增加,它失败了很多次,所以我们决定找到可以从 MySQL 二进制日志中读取的任何替代方法,我们可以根据需要合并 MySQL 表并存储在蒙哥数据库
Table 1
Col11
Col12
Col13
Col14
Col15
表 2 Col21 Col22 Col23 Col24 Col25
蒙戈系列
Col11
Col12
Col13
Col14
Col15
Col21
Col22
Col23
Col24
Col25
解决方案
一种选择可能是Kafka Connect,用于将数据从 MySQL 移动到 Kafka,然后从 Kafka 移动到 MongoDB。
第 1 步:JDBCSourceConnector
用于将数据从 MySQL 移动到 Kafka
Kafka Connect JDBC 源连接器允许您将任何具有 JDBC 驱动程序的关系数据库中的数据导入 Apache Kafka® 主题。
第 2 步:使用MongoDB 连接器将数据从 Kafka 移动到 MongoDB
轻松地将来自 Kafka 主题的事件映射和持久化到 MongoDB 集合。将您的 Kakfa 主题中的事件直接提取到 MongoDB 集合中,将数据公开给您的服务,以实现高效的查询、扩充和分析。
请注意,MongoDB 连接器可以用作源连接器或接收器连接器。在您的情况下,您需要接收器连接器,用于将数据从 Kafka 主题移动到 MongoDB 中的目标表。
推荐阅读
- .htaccess - 将不带通配符的子文件夹重定向到主 URL
- php - 操作 Drupal 8 currentUser 角色数组
- laravel - Laravel:如何制作一个独立的功能?
- ffmpeg - 由于 32 位支持,无法将 libopenh264-2.0.0-android.so 用于我的 android 应用程序
- php - 如何根据用户引用加载脚本
- ios - 使 UIBezierPath 可选择并更改其颜色
- javascript - 字符串操作jsx
- spring-boot - Docker:运行 docker logs 时如何打印 jvm 内存信息
- c# - 通过断言状态码返回单元测试 .net 项目
- docker - 如何从另一个 docker 容器中调用位于 docker 容器上的 ansible playbook