【问题标题】:How to perform live migration from RDBMS to Mongo without downtime?如何在不停机的情况下执行从 RDBMS 到 Mongodb 的实时迁移?
【发布时间】:2020-09-14 15:42:21
【问题描述】:

我正在使用仅支持 RDBMS 的软件。但我需要将数据存储在 MongoDB 中。由于我没有该软件的源代码,因此无法对其进行修改以支持 MongoDB。所以我需要一个实时迁移工具(最好是开源的),它可以在没有软件停机的情况下将数据从 RDBMS 迁移到 MongoDB。 RDBMS 中的更新/删除操作也应该反映 MongoDB 中的实时性。

使用Sctiptella ETL 使用如下迁移脚本将数据从任何 RDBMS(通过提供 JDBC URL)迁移到 Mongo。

    <connection id="in" url="jdbc:hsqldb:db/blogs" user="sa" password="" />
    <connection id="out" url="mongodb://localhost/test" />

    <query connection-id="in">
        SELECT * FROM USERS
        <script connection-id="out">
            {
                operation: 'db.collection.save',
                collection: 'users',
                data: {
                    user_id: '?user_id',
                    name: '?name'
                }
            }
        </script>
    </query>

但这些操作不是实时执行的。需要手动运行脚本进行迁移。

建议是否有任何工具可以:

  1. 将 RDBMS 上所做的实时更改反映到 MongoDB
  2. 在不关闭服务器的情况下迁移(软件)

【问题讨论】:

    标签: mongodb etl database-migration rdbms


    【解决方案1】:

    我们的一位 MongoDB 顾问 John Page 为这个挑战编写了一个名为 MongoSyphon 的 ETL 工具。

    Talend 还做了一个 ETL 工具来将数据从 RDMBS 复制到 MongoDB,但我没有使用那个工具。

    【讨论】:

      【解决方案2】:

      有多个用于迁移的开源工具。您也可以使用 Talend,它非常简单舒适。但是您希望将实时更改反映到您的目标中,这与任何迁移工具都无关。如果要在目标数据库中反映数据,则需要执行少量 ETL 操作。

      【讨论】:

        猜你喜欢
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        • 2017-08-29
        • 1970-01-01
        • 2017-05-09
        • 2015-10-20
        • 2013-06-15
        • 1970-01-01
        相关资源
        最近更新 更多