我有一个巨大的复杂xml文件,从中生成xsd / database-tables。由于它是一个巨大的文件,我在Hadoop场景中查看它。 我已经检查了许多处理XML的方法(在hadoop中),如:
<CustomerReport>
<Customer>
<CustomerName>DKIJzuUG</CustomerName>
<CustomerStatus>active</CustomerStatus>
<age>70</age>
<gender>female</gender>
<AquistionChannel>uBeApXji</AquistionChannel>
<State>MZlNWI</State>
<HouseholdIncome>0506</HouseholdIncome>
<Revenue>54961</Revenue>
<PurchaceOrders>
<PurchaceOrder>
<PurchaceOrderName>qkiHEH</PurchaceOrderName>
<purchasedOn>02-01-2014</purchasedOn>
<amount>899</amount>
</PurchaceOrder>
</PurchaceOrders>
......
</Customer>
</CustomerReport>
在上面列出的所有上述方法中 - 标签的硬编码&#34;客户报告,客户,客户名称......&#34;有必要的。但在我们的例子中,标签不应该手动给出。
由于xml中存在嵌套标记,我们可能必须在db中创建多个表并且还具有依赖关系。我们不知道如何处理嵌套结构和动态设计数据库。
答案 0 :(得分:0)
Oracle表适配器非常擅长拆分大型XML文件: options
其他类似的解决方案使用字符串匹配或正则表达式来提取拆分的XML元素。这种技术容易出错,并且可能导致无意中跳过文档中的数据。 Oracle的解决方案使用扫描和流分析器的组合来识别分裂元素。因此,它很快并且处理更大类的用例。
下载在这里: http://docs.oracle.com/bigdata/bda49/BDCUG/oxh_hive.htm#BDCUG694
(Hadoop的XQuery的一部分)