使用数据流管理 Amazon OpenSearch Service 中的时间序列数据 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用数据流管理 Amazon OpenSearch Service 中的时间序列数据

管理时间序列数据的典型工作流涉及多个步骤,例如创建翻转索引别名、定义写入索引以及为后备索引定义常见映射和设置。

Amazon OpenSearch Service 中的数据流有助于简化这一初始设置过程。对于基于时间的数据(例如通常仅追加的应用程序日志),数据流即可开箱即用。

数据流需要 OpenSearch 1.0 或更高版本。可以在 OpenSearch 文档中找到此功能的完整文档。

数据流入门

数据流在内部由多个支持索引组成。搜索请求被路由到所有后备索引,而索引请求路由到最新的写入索引。

步骤 1:创建索引模板

要创建数据流,首先需要创建一个索引模板,该模板将一组索引配置为数据流。这些区域有:data_stream 对象表示它是数据流而不是常规索引模板。索引模式与数据流的名称匹配:

PUT _index_template/logs-template { "index_patterns": [ "my-data-stream", "logs-*" ], "data_stream": {}, "priority": 100 }

在这种情况下,每个引入的文档都必须具有 @timestamp 字段。您也可以将自己的自定义时间戳字段定义为 data_stream 对象中的属性。

步骤 2:创建数据流

创建索引模板后,您可以直接开始接收数据,而无需创建数据流。

因为我们有一个匹配的索引模板 data_stream 对象时,因此 OpenSearch 会自动创建数据流:

POST logs-staging/_doc { "message": "login attempt failed", "@timestamp": "2013-03-01T00:00:00" }

步骤 3:将数据引入到数据流

要将数据引入到数据流中,您可以使用常规索引 API。确保您索引的每个文档都有一个时间戳字段。如果您尝试引入没有时间戳字段的文档,则会收到错误。

POST logs-redis/_doc { "message": "login attempt", "@timestamp": "2013-03-01T00:00:00" }

步骤 4:搜索数据流

您可以搜索数据流,就像搜索常规索引或索引别名一样。搜索操作适用于所有后备索引(流中存在的所有数据)。

GET logs-redis/_search { "query": { "match": { "message": "login" } } }

步骤 5:将鼠标移动到数据流

您可以设置索引状态管理 (ISM)策略来自动执行数据流的转换过程。在创建支持索引时,ISM 策略将应用于支持索引。将策略与数据流关联时,它仅影响该数据流的未来支持索引。您也不需要提供 rollover_alias 设置,因为 ISM 策略从后备索引推断出此信息。

注意

如果将后备索引转换为冷存储时,OpenSearch 会从数据流中删除此索引。即使您将索引移回 UltraWarm,则索引保持独立,而不是原始数据流的一部分。

步骤 6:管理 OpenSearch 控制面板中的数据流

要从 OpenSearch 控制面板管理数据流,请打开 Open Search 控制面板,选择索引管理,选择索引或者托管策略索引

步骤 7:删除数据流

删除操作首先删除数据流的支持索引,然后删除数据流本身。

要删除数据流及其所有隐藏的后备索引,请执行以下操作:

DELETE _data_stream/name_of_data_stream