本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用数据流管理 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 策略从后备索引推断出此信息。
注意
警告
数据流写入索引无法迁移到冷存储。如果要将数据流数据迁移到冷存储,必须在迁移前滚动数据流。
步骤 6:管理 OpenSearch 控制面板中的数据流
要从 OpenSearch 控制面板管理数据流,请打开 Open Search 控制面板,选择索引管理,选择索引或者托管策略索引。
步骤 7:删除数据流
删除操作首先删除数据流的支持索引,然后删除数据流本身。
要删除数据流及其所有隐藏的后备索引,请执行以下操作:
DELETE _data_stream/
name_of_data_stream