2014-05-06 85 views
2

我有一個ETL過程,我正在使用Pentaho Kettle(勺子)實現。一切工作正常,除了我不能將生成的數據插入到我的ElasticSearch遠程服務器。 我嘗試使用Kettle組件「Elastic Search Bulk Insert」,但Kettle無法找到我的彈性搜索節點(因爲它可以被看作here)。 是否有任何可靠的方法將大量信息添加到我的ES服務器?水壺或獨立腳本/插件等的解決方案是可以接受的,唯一的限制是ETL過程將運行在與Elastic Search不同的機器上。 水壺有一個自定義的Java腳本元素,也可以使用。如何在ElasticSearch中批量插入? (Pentaho Kettle不工作)

編輯:我發現Pentaho使用的是一個非常舊的版本的彈性搜索(0.16.3),我試圖找到一種方法來更新它。沒有運氣,直到現在...

+0

任何運氣與更新jar文件? – Amir

+0

不,我沒有,但我多年前嘗試過...... – JSBach

回答

2

elasticsearch是一個RESTful搜索引擎,所以我使用REST客戶端水壺步驟。您所要做的就是按照其他標準將插入行插入到您的遠程彈性搜索服務器中。它運作良好。

+0

你是怎麼做到的?我應該在哪裏反悔? –

1

我改變從屬罐子從elasticsearch-0.16.3.jarelasticsearch-1.6.0.jar(它也需要lucene-core-4.10.4.jar),複製「ElasticSearchBulk」(with some help)作爲新的插件或修改源代碼,因爲有些elasticsearch包的位置已經改變(除去導入錯誤的包,然後添加正確的)。最後,它與elasticsearch1.6運行良好。

+0

你是怎麼做到的?請分享你做的 –

+0

@Nathan Tuggy如果你可以提供一個教程,我會非常感激! – Amir

+0

@Amir ...編輯?或者罐子調整?我實際上並沒有使用elasticsearch,我只是修正了這篇文章。 (您可能需要提出一個新問題並鏈接到上下文環境,但不要只是要求提供教程;要求解決您嘗試遵循此答案的特定問題。) –

0

首先您應該知道您的彈性搜索服務器配置。 在Elasticsearch服務器下打開elasticsearch.yml文件並複製IP地址,transport.tcp.port和cluster.name值。

回到您的水壺,打開「ElasticSearch Bulk Insert」任務。 在[Settings]選項卡中添加「culster.name」,在[Servers]選項卡中添加IP地址和tcp.port。 然後嘗試「測試連接」。它應該工作。

0

當前PDI(6.0.1)發佈支持elasticsearch 1.5.4,

,如果有人需要最新elasticsearch 2.2工作插件PDI 6. *

U可以下載它,我測試了它的工作與2.2

https://drive.google.com/file/d/0B0hgGtBdLOBMbWtfVVFnTE1uVmM/view?usp=sharing

+0

我可以證實這對我有效。 – Amir

+0

我可以證實這也適用於我。如果有人詳細說明如何構建它,以便我們能夠重現,那將會很好。 – Kwame

+0

其寫在頁面上https://github.com/pentaho/pentaho-kettle – mermerkaya