gpt4 book ai didi

mysql - 将大量数据从 XML 文件转换为数据库

转载 作者:行者123 更新时间:2023-11-29 07:22:01 28 4
gpt4 key购买 nike

有一个子系统可以为每个评估请求生成 XML 数据文件。此 XML 文件可能包含大约 1000 个字段的数据。每个月至少生成 10000 个 XML 数据文件。这些文件在文件服务器上生成,并使用文件系统文件夹进行结构化。请参阅下面快照中的示例:

enter image description here

XML 的结构从一个文件到另一个文件可能不同,因为数据输入规范会随着时间而改变。

不是所有的字段都需要到数据库,只有某些字段,至少有200个左右的字段需要到数据库,在某个表中。例如,XML 包含联系详细信息和可比较详细信息的数据。因此,对于编号为 123 的评估请求,我们将在一个联系人表中插入一条联系人信息记录,并在可比较表中插入一条可比较信息记录。

问题:有没有办法从 MySQL 或 SQL Server 连接以直接通过文件系统读取 XML 文件?是否有一些中间子系统或连接器使这个过程成为可能。那么,在访问XML文件后,是否可以将其转换为表格格式,并使用普通查询来提取字段及其值?

目前,我们正在用 ASP.NET 和 Java 开发程序来访问文件系统,查询 XML 数据文件(使用文件系统 API),一次处理一个文件,将 XML 数据文件转换为 XML 文档,使用XPath获取字段和值,并根据一定的映射连接到数据库(决定XML元素将保存在哪里,即在哪个数据库/表/列中)并生成插入SQL并执行它以插入指定表中的记录。

enter image description here

我只是想知道是否有更简单的方法?

最佳答案

使用 Saxon,您可以在单个 XSLT 脚本中执行此操作:

(a) 使用 collection() 函数,您可以访问目录中的所有 XML 文件并对每个文件应用相同的处理

(b) 使用 Saxon 的 sql:insert 扩展,您可以将新行写入关系数据库。

虽然性能可能不会有太大差异(取决于您的 Java 代码有多好),但这肯定会比您执行此操作的方式少很多编码。

如果您投资于 Saxon-EE,您可能会获得性能优势,因为 collection() 函数是自动多线程的,因此它将利用多个内核。

[免责声明:Saxon由我公司开发]

关于mysql - 将大量数据从 XML 文件转换为数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55819878/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com