是否可以将数据从MongoDB迁移到SQL-Server?

Mia*_*mad 9 sql database sql-server mongodb mongodb-query

我四处搜索,发现有办法将数据从sql-server传输/同步到mongodb.我也知道Mongodb包含集合而不是表,并且数据的存储方式不同.我想知道是否可以将数据从mongodb移动到sql-server?如果是,那么我应该研究哪些工具/主题.

muc*_*cio 10

当然这是可能的,但是你需要找到一种方法来强制像MongoDB这样的文档数据库的灵活性进入像SQL Server这样的RDBMS.

这意味着您需要定义如何处理缺少的字段(在db列中是NULL还是默认值?)以及其他通常不适合关系数据库的东西.

说,你可以使用一个能够连接到两个数据库的ETL工具,如果你想留在MicroSoft世界(你可以查看使用SSIS 2012导入MongoDB数据以获得想法),SSIS可以是一个例子,或者你可以去对于像Talend Big Data Integration这样的开源工具,它具有MongoDB(当然还有SQL Server)的连接器.


Joh*_*oes 6

无法直接将数据从MongoDB移动到SQL Server.由于MongoDB数据是非关系型的,因此任何此类移动都必须涉及在SQL Server中定义目标关系数据模型,然后开发可以获取MongoDB中的数据并将其转换为目标数据模型的转换.

大多数ETL工具,如Kettle或Talend都可以帮助你完成这个过程,或者如果你是一个贪婪的惩罚,你可以写下大量的代码.

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

如果您没有在SQL Server上销售,我建议您考虑使用Postgres,因为有一个广泛使用的开源工具MoSQL,它是为了将Postgres数据库与MongoDB数据库同步而明确开发的.它主要用于报告目的(从MongoDB和RDBMS中获取数据,因此可以将分析或报告工具分层).

MoSQL广泛采用并得到很好的支持,对于严重折磨的数据,您始终可以选择使用Postgres JSON数据类型,任何分析或报告工具都不支持这种类型,但至少可以让您直接查询数据Postgres的.此外,现在我个人的偏见正在显现,Postgres是100%开源,而SQL Server是100%封闭源.:-)

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

祝好运!