elasticsearch Apache Beam Elastic IO模块是否支持按ID更新现有文档?

lsmepo6l  于 2023-03-01  发布在  ElasticSearch
关注(0)|答案(1)|浏览(129)

我找不到任何关于使用apache beam进行ElasticSearch的文档更新的文档。apache beam支持ElasticSearch的更新吗?

u0njafvf

u0njafvf1#

对于BeamJava,您可以使用ElasticsearchIO
PCollection写入ElasticSearch的示例:

pipeline
    .apply(...)
    .apply(ElasticsearchIO.write().withConnectionConfiguration(
       ElasticsearchIO.ConnectionConfiguration.create("http://host:9200", "my-index", "my-type")
    )

重要说明,IO不支持update类型操作,write方法允许在Elastic添加元素。
如果必须应用更新操作,则有3种解决方案:

  • 使用具有重复项的写入和现有IO,并在Beam的单独流程输出中删除重复项,仅保留Elastic中的最后一个元素。例如,您可以使用DAG协调器并在Dataflow作业之后执行服务
  • 将现有Elasticclientupdate方法一起使用,并在ParDo中使用
  • 使用update方法基于现有客户端开发您自己的IO

BeamPython本机不存在此IO。
您可以选中此link以获得Beam中现有IO的列表。

相关问题