2015-04-03 118 views
2

目前,我正在使用scrapy将大型XML文件从ftp服务器解析为elasticsearch。它的作品,但似乎相当重的解决方案,它也使用了大量的内存。高效地将XML导入Elasticsearch

我想知道如果我为ES改写插件更好。我知道logstash可以做到这一点,但我不能做内联语言检测等。

答:如果我为ES写一个实际的插件,我认为它必须在Java中才能提取数据。这种方法有什么优势吗?或者我可以编写一个单独的Python脚本来推入数据。是否有任何明确的理由选择一个方法比其他(假设我不知道Java或Python)

这归结为:

  • 请问内存管理是一个实际的ES插件
  • 更好
  • Java比起Python来说更适合处理XML吗?

任何帮助和建议,将不胜感激,因为我开始这段旅程。

詹姆斯

回答

2

转换XML到JSON是相当关于XML了解实际的数据,因为它可以不那么容易转变成JSON,通常需要额外的逻辑问题。出于这个原因,没有防错的XML> JSON转换器。

如果您决定使用python来做到这一点,看看eTree,lxmlxmltodict。 JSON支持原生地位于python的stdlib中。

如果您决定尝试从ES端运气,请查看elasticsearch-xml。如果XML一致,它可能适合您的需求。

谈论python vs java解析性能 - 如果性能是您的关键,那么您可以利用一些已经在低级别进行了优化的库,但通常来说,良好的java代码应该表现更好。