如何将数据从 MongoDB 迁移到 SQL-Server?

How to migrate data from MongoDB to SQL-Server?

我四处搜索,发现有一些方法可以将 transfer/sync 数据从 sql-server 发送到 mongodb。

我也知道 Mongodb 包含集合而不是 table 并且数据存储方式不同。

我想知道是否可以将数据从 mongodb 移动到 sql-server。如果是,那么我应该如何使用 tools/topics?

当然有可能,但您需要找到一种方法,将 MongoDB 之类的文档数据库的灵活性强加到 SQL 服务器之类的 RDBMS 中。

这意味着你需要定义你想要如何处理缺失的字段(它是数据库列中的 NULL 吗?还是默认值?)和其他通常不适合关系数据库的东西.

说的是,你可以使用能够连接到两个数据库的 ETL 工具,如果你想留在 MicroSoft 世界,SSIS 可以是一个例子(你可以检查这个 Importing MongoDB Data Using SSIS 2012 to have an idea) or you can go for an open source tool like Talend Big Data Integration 它有一个连接器MongoDB(当然还有 SQL 服务器)。

MongoDB 提供了一个名为 mongoexport 的工具,它能够导出 csv 文件。这些 csv 文件可以轻松导入 MySQL。祝你好运!

无法直接将数据从 MongoDB 移动到 SQL 服务器。因为 MongoDB 数据是非关系数据,所以任何此类移动都必须涉及在 SQL 服务器中定义目标关系数据模型,然后开发可以获取 MongoDB 中的数据并对其进行转换的转换进入目标数据模型。

大多数 ETL 工具(例如 Kettle 或 Talend)都可以帮助您完成此过程,或者如果您是一个贪吃的惩罚者,您可以只编写大量代码。

请记住,如果您需要在线进行此转换过程,或多次应用此过程,则可能需要针对存储在 MongoDB 中的数据结构或类型的任何微小变化对其进行调整.例如,如果开发人员向集合内的文档添加新字段,您的 ETL 过程将需要重新考虑(可能是新数据模型、新转换过程等)。

如果你不喜欢 SQL 服务器,我建议你考虑 Postgres,因为有一个广泛使用的开源工具 MoSQL 是专门为此目的开发的将 Postgres 数据库与 MongoDB 数据库同步。它主要用于报告目的(将数据从 MongoDB 中提取到 RDBMS 中,以便可以在顶部分层分析或报告工具)。

MoSQL 被广泛采用并得到很好的支持,对于严重扭曲的数据,您始终可以选择使用 Postgres JSON 数据类型,任何分析或报告工具,但至少允许您直接查询 Postgres 中的数据。另外,现在我个人的偏见已经显现出来,Postgres 是 100% 开源的,而 SQL Server 是 100% 闭源的。 :-)

最后,如果您 只是 从 MongoDB 中提取数据以简化分析或报告,您应该考虑 SlamData,一个开源项目我去年开始使用 ANSI SQL 在 MongoDB 上执行,使用 100% 数据库内执行(它基本上是 SQL-to-MongoDB API编译器)。大多数使用该项目的人似乎都将其用于分析或报告用例。优点是它按原样处理数据,因此您不必执行 ETL,当然它始终是最新的,因为它直接在 MongoDB 上运行。缺点是目前还没有人为它构建ODBC / JDBC驱动程序,所以你不能直接将BI工具连接到SlamData。

祝你好运!