

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon OpenSearch Service でのインデックスの変換
<a name="transforms"></a>

一方、[インデックスロールアップジョブ](rollup.md)を使用すると、古いデータを凝縮されたインデックスにロールアップしてデータの詳細度を減らすことができますが、変換ジョブを使用すると、特定のフィールドを中心にしたデータの異なる要約ビューを作成できるため、さまざまな方法でデータを可視化または分析できます。

インデックス変換には、OpenSearch Dashboards のユーザーインターフェイスと REST API があります。この機能には OpenSearch 1.0 以降が必要です。

**注記**  
このドキュメントでは、Amazon OpenSearch Service ドメインでインデックス変換の使用を開始するのに役立つ、インデックス変換の概要を説明します。包括的なドキュメントと REST API リファレンスについては、オープンソースの OpenSearch ドキュメントの「[Index transforms](https://docs.opensearch.org/latest/im-plugin/index-transforms/)」を参照してください。

## インデックス変換ジョブの作成
<a name="transforms-example"></a>

クラスターにデータがない場合は、OpenSearch Dashboards 内のサンプルフライトデータを使用して、変換ジョブを試してください。データを追加したら、OpenSearch Dashboards を起動します。次に [**インデックス管理**]、[**変換ジョブ**]、および [**変換ジョブの作成**] を選択します。

### ステップ 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` フィールドのターゲットフィールドにグループ化すると、変換ジョブの終了後に、変換されたインデックスにグループ化された空港 ID を見つけることができます。
+ 一方、集約では、簡単な計算を実行できます。例えば、変換ジョブに集約を含めると、すべての飛行機のチケットの合計を計算する `sum_of_total_ticket_price` の新しいフィールドを定義できます。その後、変換されたインデックス内の新しいデータを分析できます。

### ステップ 3: スケジュールを指定する
<a name="transforms-example-3"></a>

変換ジョブはデフォルトで有効になっており、スケジュールに基づいて実行されます。**変換実行間隔**については、間隔を分、時間、日数で指定します。

### ステップ 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"
    }
  }
}
```