一尘不染

有效地将XML引入Elasticsearch

elasticsearch

目前,我正在使用scrapy将来自ftp服务器的大型XML文件解析为elasticsearch。它可以工作,但似乎是一个沉重的解决方案,它也占用大量内存。

我想知道我是否最好为ES编写插件。我知道logstash可以做到,但是我不能这样做。

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

这归结为:

  • 使用实际的ES插件是否可以更好地进行内存管理
  • Java是否比Python更适合处理XML?

阅读 940

收藏
2020-06-22

共1个答案

一尘不染

将XML转换为JSON是理解XML实际数据的问题,因为将其转换为JSON并非那么容易,并且通常需要其他逻辑。因此,没有防错XML> JSON转换器。

如果你决定使用Python这样做,看一看eTreelxmlxmltodict。JSON支持本身在pythonstdlib中。

如果您决定从ES方面尝试一些运气,请参阅elasticsearch- xml。如果XML保持一致,它可能会满足您的需求。

谈论性能pythonjava性能进行解析-
如果性能对您来说很关键,则可以利用一些已经在底层进行了优化的库,但是通常,良好的Java代码应具有更好的性能。

2020-06-22