Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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集合转换为mySQL数据库_Mysql_Json_Mongodb_Robo3t_Database - Fatal编程技术网

将mongoDB集合转换为mySQL数据库

将mongoDB集合转换为mySQL数据库,mysql,json,mongodb,robo3t,database,Mysql,Json,Mongodb,Robo3t,Database,我是在Spring4MVC+Hibernate中用MongoDB创建我的项目的。现在,我必须用MySQL将其转换为Hibernate。我的问题是MongoDB中有太多的集合,格式为bson和json。如何将该文件转换为MySQL表格式?这可能吗?MongoDB集合中的文档表示项目中某些类(POJO、域对象等)的序列化形式。假设您从MongoDB读取这些数据,将其反序列化为类形式,并在项目中使用,例如向最终用户显示、在计算中使用、从中生成报告等 现在,您更愿意将数据托管在MySQL中,因此您想知道

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

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

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

这里有两个选项:

  • 使用应用程序代码从MongoDB读取数据,将其反序列化到类中,然后使用JDBC或ORM映射层等将数据写入MySQL
  • 用于从MongoDB导出数据(JSON格式),然后编写某种适配器,该适配器能够将此数据映射为MySQL数据模型所需的格式
这些方法的非功能性(尤其是读写方面)将有所不同,但基本上这两种方法非常相似;他们都(1)读MongoDB;(2) 将文档数据映射到关系模型;(3) 将映射数据写入MySQL。这个流程最棘手的方面是第二个方面,因为只有您了解数据和关系模型,所以没有任何工具可以神奇地为您做到这一点。第三方工具如何充分了解您的文档模型和关系模型,以便能够为您执行此转换


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

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

谢谢,所以我必须为此编写代码。正确的?我正在寻找任何应用程序或任何工具,可以转换它。因为如果我必须编写任何代码,那么我必须声明所有内容,如数据类型、主键和所有内容。我更新了答案,以解决第三方工具能够为您执行转换的可能性。您能告诉我在哪个平台上?因为这两个数据库是不同的。