如何将存储在XML文件中的数据转换为关系数据库(MySQL)?

E.Z*_*.Z. 7 xml mysql sql data-conversion relational-database

我有一些XML文件包含研究项目的数据,我需要运行一些统计数据.数据量接近100GB.

结构不是那么复杂(可能映射到关系模型中的10个表),并且鉴于问题的性质,这些数据永远不会再次更新,我只需要在易于运行查询的地方提供它上.

我已经阅读过有关XML数据库的信息,以及在其上运行XPATH风格查询的可能性,但我从未使用它们,而且我对它不太满意.将数据放在关系数据库中将是我的首选.

所以,我正在寻找一种方法将存储在XML中的数据转换为关系数据库(想想一个类似于生成的大的.sql文件mysqldump,但其他任何东西都会这样做).最终目标是能够运行SQL查询来处理数据.

经过一些研究,我几乎确信我必须自己写.但我觉得这是一个常见的问题,因此应该有一个已经做到这一点的工具.

那么,您是否知道将XML数据转换为关系数据库的任何工具?

PS1:

我的想法是这样的(它可以以不同的方式工作,但只是为了确保你得到我的观点):

  1. 分析数据结构(基于XML本身,或在XSD上)
  2. 基于该结构构建关系数据库(表,键)
  3. 生成SQL语句以创建数据库
  4. 生成SQL语句以创建数据填充

PS2:

我在SO中看过一些 帖子,但我仍然无法找到解决方案.微软的" Xml批量加载 "工具似乎在这方面做了一些事情,但我没有MS SQL Server.

Mar*_*nor 5

数据库并不是搜索数据的唯一方式。我强烈推荐Apache Solr

将原始数据保存为 XML 并使用 Solr 索引进行搜索


mvp*_*mvp 1

XML::Twig如果您对 Perl 感到满意,我在处理非常大的 XML 文件的模块方面运气很好。

DBI基本上,您所需要做的就是设置一些 twig 处理程序并使用/将数据导入 MySQL DBD::mysql

xmltwig.org上有一个很好的例子。