ベスト プラクティスと FAQ
ここでは、PlayFab インサイトを使用するためのいくつかのベスト プラクティスを検討し、最もよく寄せられる質問に対処します。
注意
PlayFab Insights Management は、2023 年 12 月 11 日に非推奨になりました。 今後のパフォーマンスとコストを管理するには、Azure Data Explorer (ADX) 接続を使用することをお勧めします。 タイトルがまだ Insights を使用している場合は、ベスト プラクティスの詳細についてこの記事を引き続き参照してください。 詳細については、「Insights 非推奨に関するブログ」を参照してください。
ベスト プラクティス
各パフォーマンス レベルには、一定量のキャッシュが含まれます。 毎日のデータ フットプリントを計算し、何日分のデータをキャッシュに保存するかを決定することをお勧めします。 小さなバッファーまたはよく知られているデータ フットプリントにより、クエリを実行する人は誰でもいつ最適なパフォーマンスが期待できるかを知ることができます。 その予想されるパフォーマンスを視覚化することは、迅速な結果を得るためにもお勧めです。
- たとえば、あるスタジオのデータ使用量が 5GB/日だったとします。 450 以上のキャッシュ サイズを選択すると、90 日間のデータをキャッシュに保存できます。 90 日間の実行ウィンドウですべてのビジュアライゼーションを実行すると効率的になります。 結合、集合、および高度なクエリも効率的になります。 もう 1 つのオプションは、ライブ ビジュアライゼーションを主に 30 日のウィンドウに集中させ、キャッシュ サイズを勤務時間中は最大 90 日、営業時間外は 30 日に設定することです。 これにより、コスト削減において大幅な効率化が実現します。 キャッシュではデータが圧縮されていることにも留意してください。
Power BI などのデータ視覚化プラットフォームでは、単一の視覚化に対して複数のクエリを実行することがよくあります。 視覚化は連続して更新することをお勧めします。 負荷が高い場合や多くのユーザーが使用している場合は、より高い同時クエリを許可するレベルにパフォーマンス レベルを引き上げ、外部ツールやアナリストの同時クエリを解放することも意味があります。
スケジュールされた規模拡張の最も一般的な使用例は、標準的な勤務時間中にスケールアップし、時間外や週末にスケールダウンすることです。 パフォーマンス レベルに大きな変更を加える場合 (たとえば、レベル 3 から 8)、より高いパフォーマンス レベルを数時間維持することをお勧めします。 テラバイト規模のデータをキャッシュに素早くロードしたり、キャッシュからロードしたりすることは、リソースの非効率的な使用になります。 その他の制限はすべて瞬時に引き上げられるので、必要に応じて規模拡張の変更を選択することができます。
スケジュールされたスケーリングは、手動スケーリングと相互に排他的ではありません。 日中にさらにリソースが必要な場合は、手動で変更を加えることができ、スケジュールされたスケーリングは期待どおりに続行されます。
データ ストレージを減らすと、データの損失につながります。 「選択された保存設定は現在の設定よりも低いです。」というメッセージが表示され、警告が表示されます。 ストレージを削減しようとすると、データが失われる可能性があります。」 ストレージのコストが低いため、長期間保持することが推奨されます。
Insights 管理コマンドでは、カスタム テーブルの作成と更新が可能です。 主なレポートや頻繁に使用するテーブルについては、カスタム集計テーブルを作成すると便利です。 一般に、集計テーブルのデータ フットプリントはソース データよりも小さくなります。 これにより、クエリのパフォーマンスが向上し、より高いパフォーマンス レベルを必要としなくなります。
- データ集計の自動化には、低コストで拡張性の高い自動化オプションである Azure Data Factory の使用をお勧めします。 Azure Data Factory の使用の詳細については、接続セクションをご覧ください。
タイムスタンプを使用してクエリを制限することは、優れたデータ管理方法です。 過去数日間のすべてのデータを一度に取得するわけではありません。
よく寄せられる質問
どのくらいの頻度でデータをクエリできますか?
- 最も簡単な方法は、組み込みのデータ エクスプローラーを使用することです。
- 接続セクションでは、データにアクセスするその他の方法について詳しく説明します。
Microsoft 認証リンク (Azure Active Directory を使用) を送信しましたが、機能しませんでした。何が起こったのでしょうか?
- すでに PlayFab アカウントをお持ちの場合は、別の認証方法で招待を受ける前にサインアウトする必要があります。
パフォーマンス レベルやデータ保持量を変更しようとすると、エラーが発生するのはなぜですか?
- 有料アカウントにサインアップしていない場合、パフォーマンス レベル、保持、エクスポート、および一部の管理コマンドの変更は利用できません。
- Insights クラスターが現在パフォーマンス レベルを変更している場合は、変更が完了するまで待つ必要があります。
無料版と有料版の間でパフォーマンス レベルを変更することはできますか?
- もちろんです。 現在、有料機能を必要としない場合は、無料版に戻すことができます。
データを Insights クラスターに取り込むにはどうすればいいですか?
- ほとんどの PlayFab サービスは、自動的にデータを生成します。
- また、PlayStream や Telemetry システムを経由して、独自のテレメトリを実装することもできます。
- カスタム データセットの取り込みには、[管理コマンド] を使用することができます。
PlayFab イベントの標準的なデータ スキーマは何ですか?
- PlayFab インサイトでは、すべてのイベントからのすべてのデータを 1 つのテーブルに読み込みます。 このテーブルは、['events.all] という名前が付けられます。 そのテーブル内には、各イベントの JSON 情報のペイロードを含む「EventData」という列が表示されます。 events.all テーブルについての完全な情報は、「events.all テーブルについて」を参照してください。
どうして SQL に書き込みできないのですか?
- 現時点では、ほとんどのシナリオでKQL (Kusto クエリ言語) のクエリのみサポートしています。 SQL のサポートも積極的に検討しています。 KQL に慣れるのは少し大変ですが、慣れれば気に入っていただけると思います。 SQL を Kusto クエリに変換する方法については、「SQL から Kusto クエリへの変換」を参照してください。
Insights のパフォーマンス レベルにおける 1 秒あたりのイベントと、PlayStream イベントの送信コストの違いは何ですか?
- Insights のパフォーマンス レベルの 1 秒あたりのイベントは、さまざまな手段でクラスターにデータが取り込まれることを表します。 PlayStream の書き込みイベントと書き込みテレメトリ イベントは独立して請求され、クラウドへの書き込みのコストを表します。
管理画面に表示されているパフォーマンス レベルよりも高いレベルに設定することはできますか?
- サポート チケットのファイルを送信することで、ユーザーのニーズに合わせたものを準備します。
PlayFab インサイトの背景にある技術は何ですか?
- PlayFab インサイトは Azure Data Explorer の特殊なバリアント (Kusto) を使用しています。
カスタム クエリを使用してエクスポートすると、データ スキーマが異なるのはなぜですか?
- カスタム クエリの出力には、ETL (抽出、変換、ロード) プロセスの詳細が含まれています。 いくつかの追加の列が含まれています。 これらの列は目的を果たさないため、クエリ環境では非表示になります。
保存期間の設定を、データがある総日数よりも少ない日数にした場合はどうなりますか?
- 保持量を削減した場合は、データを削除する可能性があると警告されます。 たとえば、1 年間運用しており、保持期間を 6 か月に短縮した場合、最新の 6 か月のデータのみが保存され、残りは破棄されます。
クエリのタイムアウト時間を長くするにはどうすればいいですか?
- クエリのタイムアウト制限は、パフォーマンス レベルで定義された計算能力に比例します。 電源の計算の下にある [パフォーマンスと保持] で電源の計算テーブルを参照してください。
テレメトリの送信量に制限はありますか?
WriteTelemetryEvents API 呼び出しには、次のような制限があります。
制限名 制限値 注意事項 要求ごとのイベント 200 イベント/リクエスト この制限を超えると、 BadRequest
エラーが発生します。エンティティごとのイベント 8,000/秒 この制限を超えると、 PerEntityEventRateLimitExceeded
エラーが発生します。 エンティティはプレーヤー個人を表すことが多いですが、プレーヤー グループやタイトルを表すこともあります。最大ペイロード サイズ 10,240バイト(10KB) これらの制限のいずれかに遭遇した場合は、Playfab サポート チームに連絡してサポートを求めてください。 ゲーム マネージャーの右上にある疑問符アイコンを選択し、[お問い合わせ] を選択します。
クエリを実行しようとした場合、"クエリの実行が許可された制限数を超えています "というエラーが表示されます。
- このエラーは、結果セットのサイズまたは結果セットの行数が許容された制限を超えた場合に発生します。 where、limit、summarize 演算子を使用して、関連するデータにクエリをスコープすることで、返されるデータの量を制限してみてください。
- すべてのデータをエクスポートするには、PlayFab ゲーム マネージャーの [タイトル概要] ページの [データ] にある [イベント エクスポート タブ] に移動します。
- データのセグメントのみを取得したい場合、またはクエリ制限にまだ達している場合は、時間または一意の ID (例: プレーヤー ID、タイトル ID) でデータを分割し、複数のより小さいクエリを実行できます。 以下は、時間を基準とした分割の例です。
この式の
let start = datetime(2020-08-03);
let end = datetime(2020-08-07);
['events.all'] | where Timestamp between(start .. end)
制限
['events.all'] | limit 1000
集計
['events.all'] | summarize count() by FullName_Name, bin(Timestamp, 1d)
- 詳細については、「Kusto ドキュメント」を参照してください。
truncationmaxsize 変数と truncationmaxrecords 変数をより大きな値に設定しましたが、それでもエラーが発生します。
- PlayFab Insights は現在、これらの変数の設定をサポートしていません。 クエリ数式のヒントは上記を参照してください。
Insights データをクエリすると、イベントが取り込まれなくなるのではありませんか?
- いいえ。 PlayFab イベントは、パフォーマンスのペナルティなしでタイトルのデータベースに
- 取り込まれます。
クエリを実行すると、“部分的なクエリ エラー: メモリ不足の状態です" というエラーが返されます
- これは、クエリが複雑すぎて、パフォーマンス レベルのメモリ制限内に収まらないことを意味します。 クエリを簡略化してみてください。 たとえば、サマリー呼び出しに含まれるグループが多すぎるか、一度に多すぎる行を操作しようとしている可能性があります。 パフォーマンス レベルをアップグレードして、各クエリにより多くのメモリを割り当てられるようにすることもできます。
- 詳細については、「Kusto ドキュメント」を参照してください。
イベントの量がパフォーマンス レベルで許容される範囲を超えた場合、データは失われますか?
- いいえ。ただし、超過分は請求されます。 超過分は、消費されたインサイト クレジットの数で計測されます。 Insights クレジットの価格は、PlayFab.com/Pricing で確認できます。
パフォーマンス レベルで決めるにはどうすればいいですか?
- 適したパフォーマンス レベルは、タイトルの使用状況によって決定されます。 パフォーマンス レベルを上げることで、キャッシュやその他のクエリ リソースにより多くのデータを利用できるようになり、クエリの実行速度が向上します。 詳細については、「パフォーマンス レベルと保持期間」を参照して、パフォーマンス レベルの詳細を確認してください。
特定のタイトルの [データ] > [エクスプローラー] ページのアクセス許可をユーザーに付与するにはどうすればいいですか?
PlayFab のユーザー ロールのガイドに従って、アクセス、作成、ユーザーへのアクセス許可の付与を実行します。
ユーザーがデータ エクスプローラーにアクセスするには、以下の 3 つのアクセス許可が必要です。
- エクスプローラ データとタブ (読み取りおよび書き込みのアクセス許可)
- 分析データの読み取りアクセス許可 (読み取りアクセス許可)
- 分析データの書き込みアクセス許可 (書き込みアクセス許可)