Apache Beam Elastic IO 模块是否支持通过 Id 更新现有文档?

问题描述 投票:0回答:1

我找不到任何有关使用 apache beam 进行弹性搜索的文档更新文档。 apache beam 是否支持弹性搜索的更新?

elasticsearch google-cloud-dataflow apache-beam apache-beam-io
1个回答
0
投票

有了

Beam
Java
,你可以使用ElasticsearchIO

写一个

PCollection
ElasticSearch
的例子:

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

重要说明,IO不支持

update
类型操作,
write
方法允许add一个元素在
Elastic
.

如果您必须应用更新操作,您有 3 个解决方案:

  • 使用带有重复项的写入和现有 IO,并在 Beam 的单独进程外,删除重复项并仅保留
    Elastic
    中的最后一个元素。例如,您可以使用
    DAG
    orchestrator 并在
    Dataflow
    job
  • 之后执行服务
  • 使用现有的
    Elastic
    client
    update
    方法,并在
    ParDo
  • 中使用它
  • 在现有客户端的基础上使用更新方法开发自己的IO

此 IO 本身不存在

Beam
Python
.

您可以查看此链接以获取

Beam
中现有IO的列表。

© www.soinside.com 2019 - 2024. All rights reserved.