问题
我们有一个类似 XML(它有一些需要过滤的非 unicode)数据,
<row><div>1234</div><dept>ABCD</dept></row>
<row><div>5678</div><dept>EFGH</dept></row>
为了便于理解,仅提及 2 个列标签。实际上它每个都有 20 多个列标签
XML 数据作为记录直接插入到 Oracle 模式表中,如下所示:
div_c qdept
1234 ABCD
5678 EFGH
更多信息
- XML 文件超过 9 Gig,可在 FTP 中使用。
- 数据库表列名称可能与 XML 列标记名称不同。
- 可能必须添加/定义一些规则来过滤掉行。
问题
解析这个巨大的 XML 并找出该记录是否存在于数据库表中的合适方法是什么?有没有可用的开源工具?
我在尝试什么
- 使用带有无效字符过滤器 (FilterReader) 的默认实现 (XMLInputFactory) 编写了 StAX 解析器
- 计划将 XML 拆分为块
- 让并发线程处理每个块
- 每个线程都会生成一个查询来检查数据库中是否存在(我知道这很荒谬)
- 创建一个连接池并由每个线程执行这些查询
我知道这确实是我正在做的最糟糕的事情,而且需要数年时间才能完成,我真的需要一些建议,比如是否使用任何 ORM 以简化检查并加快 XML 解析。
像这样的一些建议真的对我有帮助。