如何在ElasticSearch中批量插入? (Pentaho Kettle不工作)

时间:2014-05-06 14:25:32

标签: elasticsearch kettle

我有一个使用Pentaho Kettle(Spoon)实现的ETL过程。一切正常,但我无法将生成的数据插入到我的ElasticSearch远程服务器中。 我尝试使用Kettle的组件“弹性搜索批量插入”,但是Kettle找不到我的弹性搜索节点(因为可以看到here)。 有没有可靠的方法将大量信息添加到我的ES服务器?接受具有水壶或独立脚本/插件/等的解决方案,唯一的限制是ETL过程将在与弹性搜索不同的机器中运行。 Kettle有一个也可以使用的自定义Java脚本元素。

编辑:我发现Pentaho正在使用一个非常古老的弹性搜索版本(0.16.3),我试图找到一种方法来更新它。直到现在都没有运气......

5 个答案:

答案 0 :(得分:2)

elasticsearch是一个RESTful搜索引擎,因此我使用 REST Client水壶步骤。您所要做的就是按照其余标准将插入行插入到远程弹性搜索服务器中。它运作良好。

答案 1 :(得分:1)

我将依赖jar从elasticsearch-0.16.3.jar更改为elasticsearch-1.6.0.jar(它还需要lucene-core-4.10.4.jar),复制了' ElasticSearchBulk' (with some help)作为新插件或修改源代码,因为elasticsearch包的某些位置已更改(删除错误的包导入,然后添加正确的)。最后,它与elasticsearch1.6配合得很好。

答案 2 :(得分:1)

首先,您应该了解您的弹性搜索服务器配置。 在您的Elasticsearch服务器下打开elasticsearch.yml文件并复制IP地址,transport.tcp.port和cluster.name值。

回到你的水壶,打开" ElasticSearch Bulk Insert"任务。 添加" culster.name"在[设置]选项卡中,以及[服务器]选项卡中的IP地址和tcp.port。 然后尝试"测试连接"。它应该工作。

答案 3 :(得分:0)

当前的PDI(6.0.1)版本支持elasticsearch 1.5.4,

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

你可以下载它,我测试它使用2.2

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

答案 4 :(得分:0)

在这种情况下的一个常见错误是将elasticsearch-6.4.2.jar复制到\ data-integration \ lib。这是不必要的并且适得其反。

步骤:

  1. 服务器:localhost 9300
  2. 设置:cluster.name my_cluster_name //来自elasticsearch.yml

  3. PDI 8.2或8.3或9.0

  4. Elasticsearch版本6.4.2