【问题标题】:convert mongoDB Collection to mySQL Database将 mongoDB 集合转换为 mySQL 数据库
【发布时间】:2018-01-25 13:05:57
【问题描述】:

我的项目是在春季 4 MVC + Hibernate 中使用 MongoDB 创建的。现在,我必须将它转换为带有 MySQL 的 Hibernate。我的问题是我在 MongoDB 中有太多 bson 和 json 格式的集合。如何将该文件转换为 MySQL 表格式?这可能吗?

【问题讨论】:

    标签: mysql json mongodb robo3t database


    【解决方案1】:

    MongoDB 集合中的文档代表项目中某些类(POJO、域对象等)的序列化形式。大概,您从 MongoDB 读取这些数据,将其反序列化为类形式并在您的项目中使用它,例如将其显示给最终用户,在计算中使用它,从中生成报告等。

    现在,您希望在 MySQL 中托管该数据,因此您想知道如何将数据从 MongoDB 迁移到 MySQL,但由于持久性格式完全不同,您想知道如何做到这一点。

    这里有两个选项:

    • 使用您的应用程序代码从 MongoDB 读取数据,将其反序列化到您的类中,然后使用 JDBC 或 ORM 映射层等将该数据写入 MySQL。
    • 使用mongoexport 从 MongoDB 中导出数据(JSON 格式),然后编写某种适配器,该适配器能够将此数据映射为 MySQL 数据模型所需的格式。

    这些方法之间的非功能性(尤其是读取和写入方面)会有所不同,但从根本上讲,这两种方法非常相似;他们都(1)从MongoDB读取; (2) 将文档数据映射到关系模型; (3) 将映射的数据写入MySQL。此流程最棘手的方面是“否”。 2 并且由于只有您了解您的数据和您的关系模型,因此没有任何工具可以神奇地为您做到这一点。第三方工具如何充分了解您的文档模型和关系模型以便能够为您执行此转换?

    您可以研究 MongoDB JDBC 驱动程序或使用 Apache Drill 之类的工具来促进对 Mongo DB 的 JDBC 查询。由于这些可能返回java.sql.ResultSet,因此您将处理更适合写入 MySQL 的结果格式,但这很可能仍然与您的目标关系模型不匹配,因此您仍然需要某种形式的转换代码。

    【讨论】:

    • 谢谢,所以我必须为此编写代码。正确的?我正在寻找可以转换它的任何应用程序或任何工具。因为如果我必须编写任何代码,那么我必须声明所有的东西,比如数据类型、主键和所有东西。
    • 我已经更新了答案,以解决第三方工具能够为您执行转换的可能性。
    【解决方案2】:

    Mongodb 是非关系型数据库,而 MySQL 是关系型。关键区别在于非关系数据库包含可以包含层次结构的文档(JSON 对象),而关系数据库期望对象被规范化并分解为表格。因此,不可能简单地将 MongoDB 中的 bson 数据转换为 MySQL 能够理解的数据。您需要编写一些代码,从 MongoDB 读取数据并将其写入 MySQL。

    【讨论】:

    • 你能告诉我在哪个平台上吗?因为两个数据库不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多