我使用MongoDB在Spring 4 MVC + Hibernate中创建了我的项目。现在,我必须将它转换为带有MySQL的Hibernate。我的问题是我在MongoDB中有太多的集合,bson和json的格式。如何将该文件转换为MySQL表格式?那可能吗?
答案 0 :(得分:2)
MongoDB集合中的文档表示项目中某些类(POJO,域对象等)的序列化形式。据推测,您从MongoDB中读取此数据将其反序列化为其类形式并在您的项目中使用它,例如将其显示给最终用户,在计算中使用它,从中生成报告等。
现在,您更愿意在MySQL中托管这些数据,因此您想知道如何将数据从MongoDB迁移到MySQL,但由于持久性格式完全不同,您不知道如何做到这一点。
以下是两个选项:
非功能(特别是读写方面)在这些方法之间会有所不同,但基本上两种方法都非常相似;他们都(1)从MongoDB读取; (2)将文档数据映射到关系模型; (3)将映射的数据写入MySQL。这个流程中最棘手的方面是否定的。 2,因为只有你了解你的数据和你的关系模型,没有任何工具可以为你神奇地做到这一点。第三方工具如何充分了解您的文档模型和关系模型,以便能够为您执行此转换?
您可以调查MongoDB JDBC驱动程序或使用Apache Drill之类的东西来促进对Mongo DB的JDBC查询。由于这些可能会返回java.sql.ResultSet
,因此您将处理更适合写入MySQL的结果格式,但这可能仍然与您的目标关系模型不匹配,因此您仍需要某种形式的转换代码。
答案 1 :(得分:2)
Mongodb是一个非关系数据库,而MySQL是关系型的。关键区别在于非关系数据库包含可以包含层次结构的文档(JSON对象),其中关系数据库期望对象被规范化,并分解为表。因此,不可能简单地将MongoDB中的bson数据转换为MySQL将理解的内容。您需要编写一些代码来读取MongoDB中的数据并将其写入MySQL。