

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

# 使用数据流管理 Amazon OpenSearch 服务中的时间序列数据
<a name="data-streams"></a>

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

Amazon S OpenSearch ervice 中的数据流有助于简化初始设置过程。对于基于时间的数据（例如通常仅追加的应用程序日志），数据流即可开箱即用。

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

**注意**  
本文档提供了一些基本步骤，可帮助您开始使用 Amazon S OpenSearch ervice 域上的数据流。有关全面的文档，请参阅 OpenSearch 文档中的[数据流](https://docs.opensearch.org/latest/opensearch/data-streams/)。

## 数据流入门
<a name="data-streams-example"></a>

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

### 步骤 1：创建索引模板
<a name="data-streams-example-1"></a>

要创建数据流，首先需要创建一个索引模板，该模板将一组索引配置为数据流。这些区域有：`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：创建数据流
<a name="data-streams-example-2"></a>

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

因为我们有一个与`data_stream`对象匹配的索引模板，所以 OpenSearch 会自动创建数据流：

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

### 步骤 3：将数据引入到数据流
<a name="data-streams-example-3"></a>

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

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

### 步骤 4：搜索数据流
<a name="data-streams-example-4"></a>

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

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

### 步骤 5：将鼠标移动到数据流
<a name="data-streams-example-5"></a>

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

**注意**  
如果将后备索引迁移到[冷存储](cold-storage.md)，则 OpenSearch 会将该索引从数据流中删除。即使将索引移回到 [UltraWarm](ultrawarm.md)，索引仍保持独立状态，而不是原始数据流的一部分。从数据流中删除索引后，对数据流执行搜索不会返回索引中的任何数据。

**警告**  
数据流写入索引无法迁移到冷存储。如果要将数据流数据迁移到冷存储，必须在迁移前滚动数据流。

### 步骤 6：在 OpenSearch 仪表板中管理数据流
<a name="data-streams-example-6"></a>

要管理 OpenSearch 控制面板中的数据流，请打开**OpenSearch控制面板**，选择**索引管理**，选择**索引**或**策略管理的索引**。

### 步骤 7：删除数据流
<a name="data-streams-example-7"></a>

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

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

```
DELETE _data_stream/name_of_data_stream
```