

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

# 在 Amazon OpenSearch 服务中转换索引
<a name="transforms"></a>

[索引汇总作业](rollup.md)可让您通过将旧数据汇总到精简索引中来减少数据粒度，转换作业则可让您创建以特定字段为中心的数据的不同汇总视图，从而让您可以通过不同的方式对数据进行可视化或分析。

索引转换具有 OpenSearch 仪表板用户界面和 REST API。该功能需要 OpenSearch 1.0 或更高版本。

**注意**  
本文档简要概述了索引转换，以帮助您开始在 Amazon S OpenSearch ervice 域上使用索引转换。如需全面的文档和 REST API 参考，请参阅开源 OpenSearch 文档中的[索引转换](https://docs.opensearch.org/latest/im-plugin/index-transforms/)。

## 创建索引转换任务
<a name="transforms-example"></a>

如果您的集群中没有任何数据，请使用 OpenSearch 仪表板中的示例飞行数据来尝试转换作业。添加数据后，启动 OpenSearch 仪表板。然后选择**索引管理**、**转换任务**和**创建转换任务**。

### 步骤 1：选择索引
<a name="transforms-example-1"></a>

在**索引**部分中，选择源索引和目标索引。您可以选择现有目标索引，也可以通过输入该索引的名称来创建新索引。

如果您只想转换源索引的子集，请选择 “**添加数据过滤器**”，然后使用 OpenSearch [查询 DSL](https://docs.opensearch.org/latest/opensearch/query-dsl/) 来指定源索引的子集。

### 步骤 2：选择字段
<a name="transforms-example-2"></a>

选择索引后，选择要在转换作业中使用的字段，以及是使用分组还是聚合。
+ 您可以使用分组将数据放置在转换后的索引中的单独存储桶中。例如，如果要对示例航班数据中的所有机场目的地进行分组，请将该`DestAirportID`字段分组为`DestAirportID_terms`字段的目标字段，然后可以在变换作业完成后 IDs 在转换后的索引中找到分组的机场。
+ 另一方面，聚合让您可用执行简单的计算。例如，您可以在转换任务中包含一个聚合，以定义 `sum_of_total_ticket_price` 计算所有飞机票的总和。然后，您可以分析转换后索引中的新数据。

### 步骤 3：指定计划
<a name="transforms-example-3"></a>

 预设情况下，转换任务处于启用状态，并按计划运行。对于 **transform execution interval**（转换执行间隔），请指定间隔（以分钟、小时或天为单位）。

### 步骤 4：审核并监控
<a name="transforms-example-4"></a>

检查您的配置，然后选择**创建**。然后监控**转换任务状态**列。

### 步骤 5：搜索目标索引
<a name="transforms-example-5"></a>

任务完成后，您可以使用标准的 `_search`API 来搜索目标索引。

例如，运行基于字段 `DestAirportID` 转换飞行数据的转换任务后，可以运行以下请求以返回值为 `SFO` 的所有字段：

```
GET target_index/_search
{
  "query": {
    "match": {
      "DestAirportID_terms" : "SFO"
    }
  }
}
```