索引状态管理 - Amazon Elasticsearch Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

索引状态管理

通过索引状态管理 (ISM),您可以定义自定义管理策略来自动执行日常任务,并将其应用于索引和索引模式。您不再需要设置和管理外部进程来运行索引操作。

策略包含一个默认状态和一个状态列表,以供索引在这些状态之间转换。在每个状态中,您可以定义要执行的一系列操作和触发这些转换的条件。典型的使用案例是在一段时间后定期删除旧索引。

例如,您可以定义一个策略以在 30 天后将索引移入 read_only 状态,然后在 90 天后最终将其删除。

ISM 要求使用 Elasticsearch 6.8 或更高版本。可以在 Open Distro for Elasticsearch 文档中找到此功能的完整文档。

注意

将策略附加到索引后,ISM 会创建一个每 30 到 48 分钟运行一次的作业,以执行策略操作、检查条件并将索引转换为不同的状态。该作业运行的基本时间是每 30 分钟一次,外加 0-60% 的随机抖动,以确保您不会同时看到来自所有索引的活动突增。

示例策略

第一个示例策略在七天后将索引从热存储移动到 UltraWarm 存储,并在 90 天后删除索引。

在这种情况下,索引最初处于 hot 状态。七天后,ISM 将其移到 warm 状态。83 天后,该服务向 Amazon Chime 空间发送通知以告知该索引正在被删除,然后永久删除该索引。

{ "policy": { "description": "Demonstrate a hot-warm-delete workflow.", "default_state": "hot", "schema_version": 1, "states": [{ "name": "hot", "actions": [], "transitions": [{ "state_name": "warm", "conditions": { "min_index_age": "7d" } }] }, { "name": "warm", "actions": [{ "warm_migration": {}, "retry": { "count": 5, "delay": "1h" } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "90d" } }] }, { "name": "delete", "actions": [{ "notification": { "destination": { "chime": { "url": "<URL>" } }, "message_template": { "source": "The index {{ctx.index}} is being deleted." } } }, { "delete": {} } ] } ] } }

第二个示例策略更简单,在七天后将副本计数减少到零以节省磁盘空间,然后在 21 天后删除索引。此策略假定索引是非关键索引,并不再接收写入请求。副本数量为零会带来一定的数据丢失风险。

{ "policy": { "description": "Changes replica count and deletes.", "schema_version": 1, "default_state": "current", "states": [{ "name": "current", "actions": [], "transitions": [{ "state_name": "old", "conditions": { "min_index_age": "7d" } }] }, { "name": "old", "actions": [{ "replica_count": { "number_of_replicas": 0 } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "21d" } }] }, { "name": "delete", "actions": [{ "delete": {} }], "transitions": [] } ] } }

区别

与 Open Distro for Elasticsearch 相比,ISM for Amazon Elasticsearch Service 有几个区别。

ISM 操作

Amazon ES 支持唯一的 ISM 操作 warm_migration。如果您的域启用了 UltraWarm,则此操作会将索引转换为温存储。

Amazon ES 不支持以下 ISM 操作:

  • open

  • close

ISM 设置

Open Distro for Elasticsearch 让您可以使用 _cluster/settings API 更改所有可用的 ISM 设置。启用 Amazon ES 时,您只能更改以下设置:

  • 集群级别设置:

    • enabled

    • history.enabled

  • 索引级别设置:

    • rollover_alias

    • policy_id