0

我为大小接近 500 行的 XML 文件做了以下解决方案:


  1. 使用XSLT 转换将大型 XML 文件转换为具有所需元素文件的较小 XML
  2. 比在 java 代码中使用 SAXON XML 解析器我解析了这些新生成的文件
  3. 与使用 JAXB 的概念相比,我将 XML 解组为 java 对象而不是 SQL SERVER。

但现在我有新的 XML 文件,它们非常大,将近 15000 行或更多行,而且非常非结构化。因此使用上述解决方案获取数据库中的数据将非常低效。我试图找出处理这些大文件的最佳解决方案。我做了一些研究,发现了这个名为“Altova XML spy”的工具,我可以使用它来降低我的非结构化 XML 文件的复杂性。我尝试使用这个工具处理单个大文件,但效果不佳。我还想将这些大文件转储到 hadoop 集群中并使用 Hive/Pig 获取数据。

所以我的问题是任何人都可以提出任何新的解决方案或程序。我可以使用任何工具将大型 XML 文件制作成不太复杂的文件来使用。

希望这么多信息就足够了。让我知道是否还有其他需要。

先感谢您。

4

3 回答 3

1

如果您仍然打算使用 Pig 查询它,那么使用 Pig 来加载它怎么样?

例如org.apache.pig.piggybank.storage.XMLLoader()是一个功能来做到这一点。

但是,如果您认为需要一个集群来处理 15,000 个项目,那您就错了。任何个人计算机都可以管理 15,000 个项目。我同意 Michael Kay 的观点,这是非常少量的数据。

从我对 Hadoop 集群的一点经验来看,如果您的查询比计算机上的 30-40 秒快,那么集群没有用处,因为设置 map-reduce 作业结构大约需要 30 秒。即使是在个人计算机上需要几分钟的查询,集群的复杂性也不值得您花几秒钟的时间。

于 2013-03-01T10:37:50.317 回答
1

如果不更详细地了解问题,很难给出建议。您描述的过程本质上看起来非常低效 - 我看不出为什么需要 JAXP 步骤 - 但也许有一个很好的理由。抱歉,但这不是一个简单的编码问题——它需要一两天的咨询帮助。

于 2013-02-28T23:38:22.257 回答
0

1500行对我来说听起来不是很大。事实上,我会称之为微小的。

对不起,我真的帮不上忙。我不明白为什么处理这种大小的数据应该是一个问题。

于 2013-02-28T16:48:39.387 回答