すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:変換を使用してデータを処理および分析する

最終更新日:Jan 11, 2025

Elasticsearch によって提供される変換は、データの前処理、集計、変換などの操作を実行するために使用できるデータ処理および分析ツールです。変換を使用すると、生データに影響を与えることなくデータを処理できるため、データ分析と視覚化の要件を満たすことができます。このトピックでは、変換を使用してバスケットボールのシュートデータを変換し、変換結果を表示する方法について説明します。

準備

  1. サンプルデータをダウンロードします。この例では、Kaggle の NBA shot logs データセットを使用します。このデータセットには、シュート時間、シューター、シュートスポット、最も近いディフェンダー、最も近いディフェンダーまでの距離などのデータが含まれています。shot_logs.csv をクリックして、サンプルデータをダウンロードします。

  2. Alibaba Cloud Elasticsearch クラスタを作成します。詳細については、「Alibaba Cloud Elasticsearch クラスタの作成」をご参照ください。この例では、Alibaba Cloud Elasticsearch V7.10.0 クラスタが作成されます。

    説明

    Alibaba Cloud Elasticsearch V8.5 クラスタはサポートされていません。

  3. Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、「Kibana コンソールへのログオン」をご参照ください。

  4. NBA shot logs データセットをインポートし、インデックスを作成します。

    1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、Kibana > 機械学習 を選択します。

    2. [データ ビジュアライザー] タブをクリックします。

    3. [データのインポート] カードの [データ ビジュアライザー] タブで、[ファイルのアップロード] をクリックします。

    4. image.png アイコンをクリックします。

    5. オンプレミス マシンから shot_logs ファイルを選択します。

    6. [データ ビジュアライザー] タブの左下隅にある [インポート] をクリックします。

    7. [シンプル] タブで、[インデックス名] フィールドに nba_short_logs と入力し、[インデックスパターンの作成] を選択します。

    8. [インポート] をクリックします。

      データセットが正常にインポートされると、次の図に示す情報が表示されます。

      image.png

手順

次のいずれかの方法を使用して、データを変換し、変換結果を表示できます。

方法 1:Kibana コンソールで変換タスクを作成してデータを変換し、変換結果を表示する

  1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、管理 > スタック管理 を選択します。

  2. [スタック管理] ページの左側のナビゲーションペインで、データ > 変換 を選択します。

  3. [変換] ページで、[最初の変換を作成] をクリックします。

  4. 表示されるダイアログボックスで、nba_short_logs インデックスを選択します。

  5. 変換の作成ページの [構成] セクションで、[グループ化] に histogram(GAME_ID) を、[集計] に DRIBBLES.sum、DRIBBLES.avg、DRIBBLES.max を選択します。

    image.png

    説明
    • GAME_ID でグループ化: プレイヤーをゲーム ID でグループ化します。

    • DRIBBLES.sum: 各ゲームの全プレイヤーのドリブル数の合計を計算します。

    • DRIBBLES.avg: 各ゲームの各プレイヤーのドリブル数の平均を計算します。

    • DRIBBLES.max: 各ゲームのドリブルの最大数を計算します。

  6. [構成] セクションの右下隅にある [次へ] をクリックします。

  7. [変換の詳細] セクションで、[変換 ID] パラメータと [デスティネーション インデックス] パラメータを構成します。次に、[次へ] をクリックします。

  8. [作成] セクションで、[作成して開始] をクリックします。

    説明

    プログレスバーの進捗率が 100% になると、変換タスクが作成されます。

  9. [検出] をクリックして、宛先インデックスのデータを表示します。

    image.png

方法 2:API を呼び出して変換タスクを作成し、データを変換して変換結果を表示する

  1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、管理 > 開発ツール を選択します。

    1. [コンソール] タブで、次のコマンドを実行して変換タスクを作成します。

      PUT _transform/test2_nba_shot_logs
      {
          "source": {
          "index": "nba_short_logs"
        },
        "dest" : { 
          "index" : "test2_nba_short_logs"
        },
        "pivot": {
          "group_by": { 
            "game_id": { "terms": { "field": "GAME_ID" }}
          },
          "aggregations": {
            "dribbles_sum": { "sum": { "field": "DRIBBLES" }},
            "dribbles_avg": { "avg": { "field": "DRIBBLES" }},
            "dribbles_max": { "cardinality": { "field": "DRIBBLES" }}
          }
        }
      }
    2. 次のコマンドを実行して _preview API を呼び出し、変換結果を表示します。

      POST _transform/_preview
      {
        "source": {
          "index": "nba_shot_logs"
        },
        "dest" : { 
          "index" : "test2_nba_shot_logs"
        },
        "pivot": {
          "group_by": { 
            "game_id": { "terms": { "field": "GAME_ID" }}
          },
          "aggregations": {
            "dribbles_sum": { "sum": { "field": "DRIBBLES" }},
            "dribbles_avg": { "avg": { "field": "DRIBBLES" }},
            "dribbles_max": { "cardinality": { "field": "DRIBBLES" }}
          }
        }
      }

方法 3:API を呼び出して変換タスクを作成し、データを変換して [ディスカバー] ページで変換結果を表示する

  1. 変換タスクを作成して開始します。

    1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、管理 > 開発ツール を選択します。

    2. [コンソール] タブで、次のコマンドを実行して変換タスクを作成します。

      PUT _transform/test2_nba_shot_logs
      {
          "source": {
          "index": "nba_short_logs"
        },
        "dest" : { 
          "index" : "test2_nba_short_logs"
        },
        "pivot": {
          "group_by": { 
            "game_id": { "terms": { "field": "GAME_ID" }}
          },
          "aggregations": {
            "dribbles_sum": { "sum": { "field": "DRIBBLES" }},
            "dribbles_avg": { "avg": { "field": "DRIBBLES" }},
            "dribbles_max": { "cardinality": { "field": "DRIBBLES" }}
          }
        }
      }
    3. 次のコマンドを実行して、変換タスクを開始します。

      POST _transform/test2_nba_shot_logs/_start
      説明

      既定では、変換タスクは作成後に開始されません。

  2. インデックスパターンを作成します。

    説明

    ディスカバー ページでデータを表示するには、事前にインデックス パターンを作成する必要があります。

    1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、管理 > スタック管理 を選択します。

    2. [スタック管理] ページの左側のナビゲーションペインで、Kibana > インデックスパターン を選択します。

    3. [インデックスパターン] ページの右上隅にある [インデックスパターンを作成] をクリックします。

    4. [インデックスパターンを作成] ページの [インデックスパターン名] フィールドに、変換後に取得される宛先インデックスの名前を入力し、[次へ] をクリックします。この例では、test2_nba_short_logs と入力します。

    5. [インデックスパターンを作成] をクリックします。

  3. [ディスカバー] ページで変換結果を表示します。

    1. 左上隅にある 菜单.png アイコンをクリックします。左側のナビゲーションペインで、Kibana > ディスカバー を選択します。

    2. [ディスカバー] ページで、デスティネーション インデックスの名前を選択し、インデックス内のデータを表示します。