【发布时间】:2018-01-25 13:05:57
【问题描述】:
我的项目是在春季 4 MVC + Hibernate 中使用 MongoDB 创建的。现在,我必须将它转换为带有 MySQL 的 Hibernate。我的问题是我在 MongoDB 中有太多 bson 和 json 格式的集合。如何将该文件转换为 MySQL 表格式?这可能吗?
【问题讨论】:
标签: mysql json mongodb robo3t database
我的项目是在春季 4 MVC + Hibernate 中使用 MongoDB 创建的。现在,我必须将它转换为带有 MySQL 的 Hibernate。我的问题是我在 MongoDB 中有太多 bson 和 json 格式的集合。如何将该文件转换为 MySQL 表格式?这可能吗?
【问题讨论】:
标签: mysql json mongodb robo3t database
MongoDB 集合中的文档代表项目中某些类(POJO、域对象等)的序列化形式。大概,您从 MongoDB 读取这些数据,将其反序列化为类形式并在您的项目中使用它,例如将其显示给最终用户,在计算中使用它,从中生成报告等。
现在,您希望在 MySQL 中托管该数据,因此您想知道如何将数据从 MongoDB 迁移到 MySQL,但由于持久性格式完全不同,您想知道如何做到这一点。
这里有两个选项:
这些方法之间的非功能性(尤其是读取和写入方面)会有所不同,但从根本上讲,这两种方法非常相似;他们都(1)从MongoDB读取; (2) 将文档数据映射到关系模型; (3) 将映射的数据写入MySQL。此流程最棘手的方面是“否”。 2 并且由于只有您了解您的数据和您的关系模型,因此没有任何工具可以神奇地为您做到这一点。第三方工具如何充分了解您的文档模型和关系模型以便能够为您执行此转换?
您可以研究 MongoDB JDBC 驱动程序或使用 Apache Drill 之类的工具来促进对 Mongo DB 的 JDBC 查询。由于这些可能返回java.sql.ResultSet,因此您将处理更适合写入 MySQL 的结果格式,但这很可能仍然与您的目标关系模型不匹配,因此您仍然需要某种形式的转换代码。
【讨论】:
Mongodb 是非关系型数据库,而 MySQL 是关系型。关键区别在于非关系数据库包含可以包含层次结构的文档(JSON 对象),而关系数据库期望对象被规范化并分解为表格。因此,不可能简单地将 MongoDB 中的 bson 数据转换为 MySQL 能够理解的数据。您需要编写一些代码,从 MongoDB 读取数据并将其写入 MySQL。
【讨论】: