[英]How to migrate data from MongoDB to SQL-Server? [closed]
我四处搜索,发现有多种方法可以将数据从 sql-server 传输/同步到 mongodb。
我也知道 Mongodb 包含集合而不是表,并且数据的存储方式不同。
我想知道是否可以将数据从 mongodb 移动到 sql-server。 如果是,那么我应该如何使用以及使用哪些工具/主题?
当然这是可能的,但是您需要找到一种方法来将像 MongoDB 这样的文档数据库的灵活性强加到像 SQL Server 这样的 RDBMS 中。
这意味着您需要定义您希望如何处理缺失的字段(它是 db 列中的 NULL 还是默认值?)以及其他通常不适合关系数据库的内容。
说做,您可以使用能够连接到两个数据库的 ETL 工具,如果您想留在 MicroSoft 世界中,SSIS 可以是一个示例(您可以查看使用 SSIS 2012 导入 MongoDB 数据以获得一个想法),或者您可以去对于像Talend Big Data Integration这样的开源工具,它有一个连接到 MongoDB(当然还有 SQL Server)的连接器。
无法直接将数据从 MongoDB 移动到 SQL Server。 由于 MongoDB 数据是非关系型数据,因此任何此类移动都必须涉及在 SQL Server 中定义目标关系数据模型,然后开发可以将 MongoDB 中的数据转换为目标数据模型的转换。
大多数 ETL 工具(例如 Kettle 或 Talend)可以帮助您完成此过程,或者如果您喜欢惩罚,则只需编写大量代码即可。
请记住,如果您需要将此转换过程联机或多次应用,则可能需要针对 MongoDB 中存储的数据结构或类型的任何细微更改对其进行调整。 例如,如果开发人员向集合内的文档添加新字段,您的 ETL 过程将需要重新思考(可能是新的数据模型、新的转换过程等)。
如果你不是在 SQL Server 上出售,我建议你考虑 Postgres,因为有一个广泛使用的开源工具叫做MoSQL ,它是专门为同步 Postgres 数据库和 MongoDB 数据库而开发的。 它主要用于报告目的(从 MongoDB 中获取数据并进入 RDBMS,以便可以在顶部分层分析或报告工具)。
MoSQL 被广泛采用并且得到了很好的支持,对于严重扭曲的数据,您始终可以选择使用 Postgres JSON 数据类型,该数据类型不受任何分析或报告工具的支持,但至少允许您直接查询邮政。 此外,现在我个人的偏见已经显现出来,Postgres 是 100% 开源,而 SQL Server 是 100% 闭源。 :-)
最后,如果您只是从 MongoDB 中提取数据以简化分析或报告,您应该考虑SlamData ,这是我去年启动的一个开源项目,它可以使用 100% 数据库内执行在 MongoDB 上执行 ANSI SQL(它基本上是一个 SQL-to-MongoDB API 编译器)。 大多数使用该项目的人似乎将其用于分析或报告用例。 优点是它可以按原样处理数据,因此您不必执行 ETL,当然它始终是最新的,因为它直接在 MongoDB 上运行。 一个缺点是目前还没有人为它构建一个 ODBC/JDBC 驱动程序,所以你不能直接将 BI 工具连接到 SlamData。
祝你好运!
MongoDB 提供了一个名为mongoexport的工具,它能够导出 csv 文件。 这些 csv 文件可以轻松导入 MySQL。 祝你好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.