如何在不停机的情况下执行从RDBMS到Mongo的实时迁移?

时间:2020-05-27 14:40:34

标签: mongodb etl database-migration rdbms

我正在使用仅支持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. 迁移而不关闭服务器(软件)

2 个答案:

答案 0 :(得分:1)

我们的MongoDB顾问之一约翰·佩奇(John Page)为此挑战编写了一个ETL工具,称为MongoSyphon

Talend还提供了ETL工具,可将数据从RDMBS的数据复制到MongoDB,但我并没有用它。

答案 1 :(得分:0)

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