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