有效地将XML引入Elasticsearch
目前,我正在使用scrapy将来自ftp服务器的大型XML文件解析为elasticsearch。它可以工作,但似乎是一个沉重的解决方案,它也占用大量内存。
我想知道我是否最好为ES编写插件。我知道logstash可以做到,但是我不能这样做。
A)如果我为ES编写了一个实际的插件,我认为必须使用Java才能插入数据。这种方法有什么优势吗?或者我可以编写一个单独的Python脚本来推送数据。是否有明确的理由选择一种方法而不是另一种方法(假设我不懂Java或Python)
这归结为:
- 使用实际的ES插件是否可以更好地进行内存管理
- Java是否比Python更适合处理XML?
回答:
将XML转换为JSON是理解XML实际数据的问题,因为将其转换为JSON并非那么容易,并且通常需要其他逻辑。因此,没有防错XML> JSON转换器。
如果你决定使用Python这样做,看一看eTree
,lxml
和xmltodict
。JSON支持本身在python
stdlib中。
如果您决定从ES方面尝试一些运气,请参阅elasticsearch-
xml。如果XML保持一致,它可能会满足您的需求。
谈论性能python
与java
性能进行解析-
如果性能对您来说很关键,则可以利用一些已经在底层进行了优化的库,但是通常,良好的Java代码应具有更好的性能。
以上是 有效地将XML引入Elasticsearch 的全部内容, 来源链接: utcz.com/qa/431270.html