使用数据流管理 Amazon OpenSearch Service 中的时间序列数据 - 亚马逊 OpenSearch 服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

数据流需要 OpenSearch 版本 1.0 或更高版本。

注意

本文档介绍了一些有助您开始在 Amazon OpenSearch Service 域上使用数据流的基本步骤。有关全面的文档,请参阅 OpenSearch 文档中的 Data streams

数据流入门

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

步骤 1:创建索引模板

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

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

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

PUT _index_template/logs-template { "index_patterns": "my-data-stream", "data_stream": { "timestamp_field": { "name": "request_time" } } }

步骤 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