【问题标题】:Best way to periodically mirroring data from SQL to NoSQL?定期将数据从 SQL 镜像到 NoSQL 的最佳方法?
【发布时间】:2020-03-21 15:45:10
【问题描述】:

我想在每次指定表发生更改时将更新的数据从 MySQL/postgreSQL 导出到 mongodb,或者,如果不可能,则每 X 秒/分钟将整个表转储到 NoSQL。我能做些什么来实现这一目标?我用谷歌搜索,发现只有付费的企业级解决方案,而这些对于我的业余项目来说是遥不可及的。

【问题讨论】:

  • 您可以使用数据库触发器(ON 插入、更新和删除)来用更改填充第二个(审计)表。您可以扫描此表,在 mongodb 中执行相应的更新并将它们标记为已完成或从第二个审计表中删除它们。

标签: mysql sql mongodb postgresql nosql


【解决方案1】:

要在线复制到目标数据库,您可以使用:

  • 同时获取两个数据库中的数据流
  • 读取事务日志并将数据推送到下一个数据库的企业解决方案
  • 定期检查更改日期 > X
  • 定期导出表
  • 使用触发器将更改的记录写入某个表并轮询该表以选择更改
  • 使用数据流服务中的触发器将更改的数据推送到下一个数据库中
  • 许多其他方法

取决于您想要使用的时间量和数据可能具有的滞后性,这取决于哪种解决方案适合您的需求。

如果数据量变大或数量或交易增加,一些适合业余项目的解决方案不再适用。

【讨论】:

    【解决方案2】:

    SymmetricDS 提供开源数据库复制选项,支持将 RDMS 数据库(MySQL、Postgres)复制到 MongoDB。

    这是在 SymmetricDS 中设置 Mongo 目标节点的具体文档。

    http://www.symmetricds.org/doc/3.11/html/user-guide.html#_mongodb

    还有一个关于设置 Mongo 的博客更详细。

    https://www.jumpmind.com/blog/mongodb-synchronization

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 2020-12-09
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多