官方文档-丰富你的数据(Enrich)

2021-12-10  本文已影响0人  caster

对应7.16官方文档路径: Ingest pipelines » Enrich your data
官方地址如下:
https://www.elastic.co/guide/en/elasticsearch/reference/7.16/ingest-enriching-data.html
注:enrich 为 pipeline processor 的一种,主要作用是将现有索引数据加入到你传入的文档中。

Enrich 你的数据

你可以使用 enrich processor 在 ingest 阶段将现存索引的数据添加到要传入的文档中。
例如,你可以使用 enrich processor 做到:

enrich processor 如何工作

大多数的 processors 是独立工作的,只作用于要传入的文档数据,如下图所示:


processor 只处理索引的数据

Enrich processor 通过一些特殊的组件向传入的文档中添加数据,如下图所示:


向索引的文档中添加存在的数据

enrich policy

一组用于将正确的 enrich data 添加到正确的要传入文档中的配置选项。
enrich policy 包含:

在 enrich policy 被用于 enrich processor 之前,必须先执行 executed。在 executed 时,enrich policy 使用 policy 配置的 source indices 的 enrich data 创建一个简化的系统索引,称为 enrich index。processor 使用此索引来匹配和丰富传入的文档。

source index

存储你想要添加到传入文档的 enrich data 的索引。你可以像创建和管理常规 ES 索引一样操作这些索引。你可以在 enrich policy 中使用多个 source indices。你还可以在多个 enrich policy 中使用相同的 source index。

enrich index

与特定 enrich policy 相关的特殊系统索引。
直接将传入文档与 source index 中的文档进行匹配可能会很慢且需要大量资源。为了加快速度,enrich processor 使用 enrich index。

1 设置一个 enrich processor

设置一个 enrich processor 需要一下步骤:

  1. 检查先决条件
  2. 添加 enrich data
  3. 创建 enrich policy
  4. 执行 enrich policy
  5. 将 enrich processor 添加到 ingest pipeline
  6. ingest 并 enrich 传入的文档

设置 enrich processor 后,你可以更新你的 enrich data 和 enrich policies。

注:enrich processor 执行多个操作,会影响 ingest pipeline 的速度;在部署到生产环境之前在测试环境对其进行基准测试;不建议使用 enrich processor 追加实时数据,它适合用于不经常修改的基准数据。

1.1 先决条件

如果你开启了 ES 的安全功能,你必须具备一下权限:

1.2 添加 enrich data

首先,添加文档到一个或者多个 source indices,这些文档需要包含你最终想要添加到传入文档的 enrich data。
你可以想操作正常 ES 索引一样操作 source indices。

1.3 创建 enrich policy

添加 enrich data 到 source indices 之后,使用 create enrich policy API 创建 enrich policy。

注:创建后,不可以更新或者修改 enrich policy

1.4 执行 enrich policy

创建 enrich policy 之后,你可以使用 execute enrich policy API 执行它并创建 enrich index,如下图所示:

通过执行 enrich policy 创建 enrich index
Enrich index 包含来自 source indices 的文档,并以.enrich-*开头、只读、进行了 force merged。

注:Enrich indices 只能在 enrich processor 中使用,避免将其用于其他目的

1.5 将 enrich processor 添加到 ingest pipeline

当你具备了 source indices、enrich policy 和相关的 enrich index,你就可以设置一个包含 enrich processor 的 ingest pipeline ,如下图所示:


设置 pipeline 的 enrich processor

使用 create or update pipeline API 将 enrich processor 添加到 ingest pipeline中。
当你添加 enrich processor 时,你至少需要完成一下内容:

你还可以使用max_matches选项来设置传入文档可以匹配的 enrich documents 数量。如果设置为默认值1,则数据将作为 JSON 对象添加到传入文档的目标字段。否则,数据将作为数组添加。

1.6 ingest 并 enrich 传入的文档

现在你可以使用 ingest pipeline 丰富并索引传入的文档。


enrich 处理流程

在生产中实施 pipeline 之前,我们建议先索引一些测试文档,验证是否正确添加了 enrich data。

1.7 更新 enrich index

一旦创建,你不能更新或索引文档到 enrich index,但你可以更新的你 source indices 并再次 execute 你的 enrich policy,这样会通过更新后的 source indices 创建一个新的 enrich index。之前的 enrich index 将随着延迟的维护作业被删除。默认情况下,此操作每 15 分钟执行一次。
如果需要,您可以使用 ingest pipeline reindex 或者 update 之前的问题数据。

1.8 更新 enrich policy

一旦创建,你不能在更新或修改 enrich policy,你可以:

  1. 创建并执行新的 enrich policy
  2. 使用新的 enrich policy 替换之前的 enrich policy
  3. 使用 delete enrich policy API 删除之前的 enrich policy

1.9 Enrich 组件

Enrich coordinator 用于管理和执行在每个 ingest 节点上丰富文档所需的搜索。它将所有 pipeline 中所有 enrich processors 的搜索组合成批量查询。
Enrich policy executor 是一个管理所有 enrich policies 执行的组件。当执行 enrich policy 时,该组件会创建一个新的 enrich index 并删除之前的 enrich index。Enrich policy executor 由选定的主节点管理。这些策略的执行发生在不同的节点上。

1.10 节点配置

Enrich processor 可以配置一些 node settings 作用于 enrich coordinator 和 enrich policy executor。
Enrich coordinator 支持以下 node settings:

Enrich policy executor 支持以下 node settings:

上一篇下一篇

猜你喜欢

热点阅读