> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Explorer 詳細モードの使用を開始する

> より深い分析のために、Kusto Query Language を使用して events.all テーブルに対して詳細モードでカスタム PlayFab Data Explorer クエリを作成する方法を学びます。

<Info>
  Data Explorer 機能はパブリック プレビュー中です。フィードバックを引き続き収集するにつれて、継続的な変更が予想されます。
</Info>

また、顧客の使用に合わせて最適化しています。

Data Explorer 詳細モードは、[Azure Data Explorer クエリ言語](https://learn.microsoft.com/en-us/azure/data-explorer/write-queries) を使用したより複雑なクエリとより深い洞察のために設計されています。これは、アドホック データ探索用に最適化された SQL のような言語です。非技術的なクエリの書き方については、[Data Explorer 基本モードの使用開始](/services/playfab/data-analytics/learn-data/data-explorer/getting-started-with-data-explorer-basic) チュートリアルを参照してください。

## カスタム クエリの作成

詳細モードで独自のクエリの作成を開始するには、まずアクセスしているデータの形式を理解することが重要です。

### events.all テーブル

`events.all` テーブルは、すべての受信イベントのデフォルトの宛先です。時間やイベント名などの一般的な値の列を持つ単一の半構造化テーブルです。EventData 列には元の完全な JSON ペイロードが含まれており、ほとんどすべてのクエリで役立つため、すぐに慣れるでしょう。[events.all テーブル](/services/playfab/data-analytics/acting-data/schemas-events-all) に関する以下のドキュメントを読むことができます。

### クエリの構造

クエリ式は最も一般的にテーブルの名前で始まります。その後にパイプ区切り文字 (|) が続きます。
次に、1 つ以上の演算子が続きます。各演算子はパイプ区切り文字で区切られます。

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer4-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=d5e7d0ee878b379a5394c91503848ae5" alt="Expression" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer4-02.png" />

好みの問題として、クエリは 1 行で表現することも、各パイプ区切り文字の前で改行を使用することもできます。これはクエリ自体には違いをもたらしません。

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer5-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=35e6290c6672fcc5d4213851e8bb77a0" alt="Query pane" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer5-02.png" />

Query ペインには複数のクエリを含めることができます。これにより、単純な式から始めて、実行を検証し、それに基づいて構築することが容易になります。

空白行は、あるクエリを別のクエリから分けます。カーソル位置により、「Run」ボタンを押したときに実行されるクエリが決まります。クエリの一部を強調表示して、その式のみを実行することもできます。

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer6-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=8dc281806663ec24ce18194a630a6f6a" alt="Run" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer6-02.png" />

### 最初のクエリを作成する

では、最初のクエリをゼロから作成しましょう。Query ペインにテーブル名を入力できます。ただし、少しショートカットを使用します。Resources ペインで `events.all` テーブルを見つけます。矢印をクリックしてタイトル ID データベースを展開する必要がある場合があります。

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer7-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=402ea5610105562cc10521a401070380" alt="Events.all table" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer7-01.png" />

`events.all` テーブルが見つかったら、テーブル名をダブルクリックします。この式が Query ペインに追加されたことに気付くでしょう。

<Note>
  プレビューでは、テーブル名を囲む角括弧と単一引用符を手動で追加する必要があります。この不便さの修正が進行中です。
</Note>

```json theme={null}
['events.all']
| 
```

名前を囲む角括弧と単一引用符に注意してください。テーブルまたは列名に「.」が含まれる場合はいつでも、これらが必要です。カーソルは、最初の演算子を作成するための正しい位置にあります。take 演算子を使い始めましょう。

```json theme={null}
['events.all']
| take 100
```

このクエリを実行します。Results ペインに 100 行の生データが表示されることに注意してください。

Results ペインで、一番上の行を選択します。右矢印を使用して、FullName\_Name 列に移動します。これはイベントの名前です。矢印キーで下にスクロールして、`player_logged_in` イベントを見つけます。見つけたら、右矢印で EventData 列に移動してダブルクリックします。次のように表示されるはずです:

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer8-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=c8ace0436fb553607c012902fdeb7a79" alt="Event Data Column" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer8-01.png" />

クエリはドット表記 (.) を使用して EventData JSON の任意のプロパティを参照できます。単一のプレイヤーからの player\_logged\_in イベントのみを返すようにクエリを変更することで、これを今すぐ試すことができます。EntityID GUID をダブルクリックしてクリップボードにコピーします。

次に、クエリを次のように更新し、コピーした GUID を挿入します:

```json theme={null}
['events.all']
| where FullName_Name == 'player_logged_in'
| where Entity_Id == 'paste from clipboard here'
```

<Tip>
  二重等号は文字列の等価性を評価するために使用されます。開始と終了の単一引用符は文字列を区切ります。
</Tip>

クエリを実行すると、Results ペインには選択したプレイヤーのみに対する player\_logged\_in イベントが表示されます。ドット表記を使用して、各レイヤーの間にドットを追加するだけで、JSON 階層の複数のネストされたレイヤーを参照できます。

次に、リージョン別にプレイヤー ログインをグループ化する 2 つ目のクエリを作成しましょう。書いたものを削除せずに、Return キーを 2 回押します。「//」を使用して次のクエリにコメントを追加しましょう。コメントは実行されず、各クエリの背後にある意図を追跡するのに役立ちます。

```json theme={null}
//Player logins by platform
```

もう一度、リソース ペインから events.all テーブルをダブルクリックします。今回は、過去 3 日間のみにクエリをスコープするために、式に時間区切り文字を追加しましょう。

```json theme={null}
//Player logins by platform
['events.all']
| where Timestamp > ago(30d)
| where FullName_Name == 'player_logged_in'
```

このクエリを実行して、過去 3 日間のすべてのサインイン イベントの完全なリストを取得します。ただし、イベントの数ではなく、何人の異なるプレイヤーがログインしたかを知りたいのです。それを行うには、Entity ID による distinct 演算子を使用します。

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| distinct Entity_Id
```

このクエリは、過去 3 日間にログインした Entity ID のリストを返します。Results ペインにはレコード数が表示されるため、合計数を確認できます。

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer9-03.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=4b92787156e8ca61006503aa4edeb049" alt="Records" width="1888" height="509" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer9-03.png" />

次に、各プラットフォームからログインしたプレイヤーの数を取得しましょう。それを行うには、EventData JSON の platform プロパティによってグループ化された Entity ID の distinct カウントが必要です。これには `summarize` 演算子が必要です。`summarize` は動的型をサポートしていないため、platform を文字列にキャストする必要もあります。

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| summarize dcount(Entity_Id) by tostring(EventData.Platform)
```

見事に締めくくりましょう。追加の式を 1 つ追加するだけで、結果をカラム チャートとしてレンダリングできます。

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| summarize dcount(Entity_Id) by tostring(EventData.Platform)
| render columnchart
```

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer10-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=3d0e560318ada4b6f18f158aeff7d5f6" alt="Queries" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer10-01.png" />

## サンプル クエリ

Explorer で作成できるクエリの種類の表面をわずかにひっかいただけです。「What's This」を押すことで、Explorer ページからさらに多くの例のクエリをロードできます。これらの各サンプル クエリは、利用可能なさまざまな演算子と、それらが実世界の問題にどのように適用できるかを実証するために選ばれています。

<Note>
  データの形式はデモ データ セットとは異なる場合があるため、シナリオで実行するためにサンプル クエリを変更する必要がある場合があります。
</Note>

## 制限

Explorer のクエリ使用を制御する 2 つの制限があります:

1. 最大クエリ実行時間: 個別のクエリは 30 秒を超えて実行することはできません。この制限を超えると、クエリが終了し、エラー メッセージが表示されます。

2. 間隔使用量: 各タイトルには、任意の 10 分間隔で 3 分の累積合計実行時間が許可されます。この制限を超えると、エラー メッセージが表示され、追加のクエリを実行する前に待機する必要があります。

## データ保持

デフォルトでは、Data Explorer クエリはホット ストレージで実行されます。これは Management ツールで構成できます。ホット ストレージに保存されているデータを超えて検索するクエリは、実行時間が大幅に長くなり、タイムアウトする可能性があります。
