Elasticsearch によって提供される変換は、データの前処理、集計、変換などの操作を実行するために使用できるデータ処理および分析ツールです。変換を使用すると、生データに影響を与えることなくデータを処理できるため、データ分析と視覚化の要件を満たすことができます。このトピックでは、変換を使用してバスケットボールのシュートデータを変換し、変換結果を表示する方法について説明します。
準備
サンプルデータをダウンロードします。この例では、Kaggle の
NBA shot logsデータセットを使用します。このデータセットには、シュート時間、シューター、シュートスポット、最も近いディフェンダー、最も近いディフェンダーまでの距離などのデータが含まれています。shot_logs.csv をクリックして、サンプルデータをダウンロードします。Alibaba Cloud Elasticsearch クラスタを作成します。詳細については、「Alibaba Cloud Elasticsearch クラスタの作成」をご参照ください。この例では、Alibaba Cloud Elasticsearch V7.10.0 クラスタが作成されます。
説明Alibaba Cloud Elasticsearch V8.5 クラスタはサポートされていません。
Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、「Kibana コンソールへのログオン」をご参照ください。
NBA shot logs データセットをインポートし、インデックスを作成します。
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[データ ビジュアライザー] タブをクリックします。
[データのインポート] カードの [データ ビジュアライザー] タブで、[ファイルのアップロード] をクリックします。
アイコンをクリックします。オンプレミス マシンから
shot_logsファイルを選択します。[データ ビジュアライザー] タブの左下隅にある [インポート] をクリックします。
[シンプル] タブで、[インデックス名] フィールドに
nba_short_logsと入力し、[インデックスパターンの作成] を選択します。[インポート] をクリックします。
データセットが正常にインポートされると、次の図に示す情報が表示されます。

手順
次のいずれかの方法を使用して、データを変換し、変換結果を表示できます。
方法 1:Kibana コンソールで変換タスクを作成してデータを変換し、変換結果を表示する
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[スタック管理] ページの左側のナビゲーションペインで、 を選択します。
[変換] ページで、[最初の変換を作成] をクリックします。
表示されるダイアログボックスで、
nba_short_logsインデックスを選択します。変換の作成ページの [構成] セクションで、[グループ化] に histogram(GAME_ID) を、[集計] に DRIBBLES.sum、DRIBBLES.avg、DRIBBLES.max を選択します。
説明GAME_ID でグループ化: プレイヤーをゲーム ID でグループ化します。
DRIBBLES.sum: 各ゲームの全プレイヤーのドリブル数の合計を計算します。
DRIBBLES.avg: 各ゲームの各プレイヤーのドリブル数の平均を計算します。
DRIBBLES.max: 各ゲームのドリブルの最大数を計算します。
[構成] セクションの右下隅にある [次へ] をクリックします。
[変換の詳細] セクションで、[変換 ID] パラメータと [デスティネーション インデックス] パラメータを構成します。次に、[次へ] をクリックします。
[作成] セクションで、[作成して開始] をクリックします。
説明プログレスバーの進捗率が 100% になると、変換タスクが作成されます。
[検出] をクリックして、宛先インデックスのデータを表示します。

方法 2:API を呼び出して変換タスクを作成し、データを変換して変換結果を表示する
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[コンソール] タブで、次のコマンドを実行して変換タスクを作成します。
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" }} } } }次のコマンドを実行して _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 を呼び出して変換タスクを作成し、データを変換して [ディスカバー] ページで変換結果を表示する
変換タスクを作成して開始します。
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[コンソール] タブで、次のコマンドを実行して変換タスクを作成します。
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" }} } } }次のコマンドを実行して、変換タスクを開始します。
POST _transform/test2_nba_shot_logs/_start説明既定では、変換タスクは作成後に開始されません。
インデックスパターンを作成します。
説明ディスカバー ページでデータを表示するには、事前にインデックス パターンを作成する必要があります。
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[スタック管理] ページの左側のナビゲーションペインで、 を選択します。
[インデックスパターン] ページの右上隅にある [インデックスパターンを作成] をクリックします。
[インデックスパターンを作成] ページの [インデックスパターン名] フィールドに、変換後に取得される宛先インデックスの名前を入力し、[次へ] をクリックします。この例では、test2_nba_short_logs と入力します。
[インデックスパターンを作成] をクリックします。
[ディスカバー] ページで変換結果を表示します。
左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。[ディスカバー] ページで、デスティネーション インデックスの名前を選択し、インデックス内のデータを表示します。