我到处搜索,发现有一些方法可以将数据从sql-server传输/同步到mongodb。
我还知道Mongodb包含的是集合而不是表,而且数据的存储方式也不同。
我想知道是否有可能将数据从mongodb移动到sql-server。如果是,那么我应该如何使用工具/主题?
发布于 2015-05-01 20:22:42
当然,这是可能的,但您需要找到一种方法,将像MongoDB这样的文档数据库的灵活性强制到像SQL Server这样的关系型数据库中。
这意味着您需要定义如何处理丢失的字段(它在db列中是否为NULL?还是默认值?)以及其他通常不适合关系数据库的东西。
如果你想留在MicroSoft的世界里(你可以查看这个Importing MongoDB Data Using SSIS 2012 ),或者你可以选择像Talend Big Data Integration这样的开源工具,它有一个连接到MongoDB (当然还有SQL Server)的连接器。
发布于 2015-05-02 04:38:04
无法直接将数据从MongoDB移动到SQL Server。由于MongoDB数据是非关系型的,因此任何此类移动都必须涉及到在SQL Server中定义目标关系数据模型,然后开发可以将MongoDB中的数据转换为目标数据模型的转换。
大多数ETL工具,如Kettle或Talend,都可以帮助你完成这个过程,或者如果你是一个贪婪的惩罚者,你可以只编写大量的代码。
请记住,如果需要将此转换过程联机或多次应用,则可能需要针对存储在MongoDB中的数据的结构或类型的任何细微更改对其进行调整。例如,如果开发人员将新字段添加到集合内的文档中,您的ETL流程将需要重新考虑(可能是新的数据模型、新的转换流程等)。
如果您不喜欢SQL Server,我建议您考虑Postgres,因为有一个广泛使用的开源工具,称为MoSQL,它是专门为将Postgres数据库与MongoDB数据库同步而开发的。它主要用于报告目的(从MongoDB中获取数据并将其放入关系型数据库中,这样就可以在上面添加分析或报告工具)。
MoSQL得到了广泛的采用并得到了很好的支持,对于严重扭曲的数据,您始终可以选择使用Postgres JSON数据类型,这是任何分析或报告工具都不支持的,但至少允许您直接在Postgres中查询数据。此外,现在我个人的偏见正在显现出来,Postgres是100%开源的,而SQL Server是100%封闭源代码的。:-)
最后,如果您只是为了简化分析或报告而从MongoDB中提取数据,那么您应该考虑SlamData,这是我去年启动的一个开源项目,它可以使用100%的数据库内执行在MongoDB上执行ANSI SQL (它基本上是一个SQL- to -MongoDB API编译器)。大多数使用该项目的人似乎将其用于分析或报告用例。优点是它可以直接处理数据,所以不需要执行ETL,当然,它总是最新的,因为它直接在MongoDB上运行。缺点是还没有人为它构建ODBC / JDBC驱动程序,所以您不能直接将BI工具连接到SlamData。
祝好运!
发布于 2015-05-01 20:35:53
MongoDB提供了一个名为mongoexport的工具,它能够导出csv文件。这些csv文件可以轻松导入到MySQL中。祝好运!
https://stackoverflow.com/questions/29986360
复制相似问题