有效地将XML纳入Elasticsearch

时间:2015-04-03 14:05:44

标签: java python xml elasticsearch

目前我正在使用scrapy将ftp服务器中的大型XML文件解析为elasticsearch。它有效,但似乎是一个非常重的解决方案,它也使用了大量的内存。

我想知道我是否更喜欢为ES编写插件。我知道logstash可以做到这一点,但我不能用内联语言检测等。

A)如果我为ES编写一个实际的插件,我认为必须使用Java来提取数据。这种方法有什么优势,或者我可以编写一个单独的Python脚本来代替推送数据。有没有明确的理由选择一种方法而不是另一种方法(假设我不懂Java或Python)

这归结为:

  • 使用实际的ES插件,内存管理会更好吗
  • Java比Python更适合处理XML吗?

1 个答案:

答案 0 :(得分:2)

将XML转换为JSON对于理解XML中的实际数据是一个相当大的问题,因为转换为JSON并不是那么容易,通常需要额外的逻辑。出于这个原因,没有防错的XML> JSON翻译器。

如果您决定使用python执行此操作,请查看eTreelxmlxmltodict。 JSON支持本身就是python的stdlib。

如果您决定尝试ES方面的运气,请查看elasticsearch-xml。在一致的XML情况下,它可能符合您的需求。

谈论python vs java解析性能 - 如果性能对你来说很关键,你可以利用一些已经在低级优化的库,但一般来说,优秀的java代码应该是表现更好。