Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将数据从MongoDB迁移到SQL Server?_Sql_Sql Server_Database_Mongodb_Data Migration - Fatal编程技术网

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

如何将数据从MongoDB迁移到SQL Server?,sql,sql-server,database,mongodb,data-migration,Sql,Sql Server,Database,Mongodb,Data Migration,我四处搜索,发现有很多方法可以将数据从sql server传输/同步到mongodb 我还知道Mongodb包含集合而不是表,并且数据的存储方式不同 我想知道是否可以将数据从mongodb移动到sql server。如果是,那么我应该如何使用以及使用哪些工具/主题?当然有可能,但您需要找到一种方法,将MongoDB之类的文档数据库的灵活性强制应用到SQL Server之类的RDBMS中 这意味着您需要定义如何处理缺少的字段(是db列中的NULL还是默认值?)以及其他通常不适合关系数据库的内容 也

我四处搜索,发现有很多方法可以将数据从sql server传输/同步到mongodb

我还知道Mongodb包含集合而不是表,并且数据的存储方式不同


我想知道是否可以将数据从mongodb移动到sql server。如果是,那么我应该如何使用以及使用哪些工具/主题?

当然有可能,但您需要找到一种方法,将MongoDB之类的文档数据库的灵活性强制应用到SQL Server之类的RDBMS中

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


也就是说,您可以使用能够连接到两个数据库的ETL工具,如果您想留在MicroSoft世界,SSI可以是一个例子(您可以检查一下这一点来了解情况),或者您可以选择一个开放源代码工具,比如它有一个到MongoDB(当然还有SQL Server)的连接器.

MongoDB提供了一个名为的工具,可以导出csv文件。这些csv文件可以很容易地导入MySQL。祝你好运

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

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

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

如果您没有在SQLServer上出售,我建议您考虑PASGRESs,因为有一个广泛使用的开源工具,它被开发出来是为了同步PergRes数据库和MangGDB数据库。它主要用于报告目的(将数据从MongoDB中取出并放入RDBMS中,这样就可以在上面分层分析或报告工具)

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

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


祝你好运

JSON文档中的嵌套层有多深?你的数据是平的吗?您的数据实际上是JSON还是存储在GridFS中的二进制+元数据?您希望运行哪种查询?来自不支持MongoDB的BI工具的结构化主键检索、联接和查询?所有这些都将帮助人们回答这个问题。我认为它一次只能输出一个收藏。是否可以使用一个命令将所有集合导出为csv?我导出了带有字段的mongodb集合,但使用ssis将数据传输到Sql server需要进行大量调整。如果成功,我将更新。SQL Server支持非关系数据已有几十年了。它并不总是最好的选择,但您可以轻松地将数据放入JSON列(实际上是
nVarChar(max)
),如果使用较旧的版本,则可以使用C#扩展添加JSON理解支持。