2015-04-03 119 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代碼應該表現更好。