ベストプラクティスは、データをより効率的に管理するためのガイドラインです。
一般的なベストプラクティス
データストアを少なく作成する
データストアはデータベースのテーブルに類似した動作をします。ゲーム内のデータストアの数を最小限に抑え、関連するデータを同じデータストアに入れることで、各データストアを個別に構成でき、データを操作するためのサービスの効率を向上させることができます。
関連データには単一のオブジェクトを使用する
最大の4 MBのオブジェクトサイズ制限をより効率的に利用するために、関連する全データを1回の呼び出しで取得します。 SetAsync()は、常に同じユーザーの全データが同期されるように全データを更新します。
バージョニングシステムは、全体のデータストアではなく、個々のオブジェクトをバージョン管理します。これは、自己完結型のオブジェクトがデータストアを古いバージョンに戻すときに一貫性を保つことを意味します。
データを整理するためにキー接頭辞を使用する
ListKeysAsync()を呼び出すときに、特定の接頭辞でキーをフィルタリングします。たとえば、複数のキャラクタープロフィールを持つユーザーをサポートするゲームでは、/User_1234/profiles/warriorや/User_1234/profiles/mageのような接頭辞を持つキーを保存できます。次に、/User_1234/profilesでの接頭辞検索を使用して、そのユーザーに属するすべてのプロフィールのリストを取得できます。
最適化ベストプラクティス
データストアにはゲームごとのストレージ制限があります。ゲームがその割り当てに近づいたり超えたりした場合は、使用量を減らして潜在的な追加コストを回避するために対策を講じる必要があります。
ストレージ使用量を監視する
データストアの可視化に以下のツールを使用します:
データストアダッシュボード:これは、あなたのストレージ使用量の視覚的な概要を提供します。このダッシュボードを使用して、ストレージのスケーリングを監視し、使用量の予期しない増加期間を特定します。
データストアマネージャー:あなたのゲームの保存されたデータに直接アクセスできるビューを提供します。マネージャーには、現在のストレージ使用量や、すべてのデータストアに保存されているキーの合計などの主要な指標が含まれています。ゲームがその割り当てを超えると、マネージャーは警告を表示し、新しい推定月額コストを示します。
ゲームに100以上のデータストアがある場合、マネージャーは詳細な指標を表示しない場合があります。その場合、Open Cloudを通じてプログラム分析を使用するか、バッチ操作を検討してください。
通知:これは、ゲームがストレージ制限に近づくか超えたときに通知します。通知にはガイダンスと、使用量を見直して減少させるためのダッシュボードへのリンクが含まれています。
割り当て超過の使用を解決する
ゲームがストレージ制限を超えた場合、次のことができます:
- 未使用のデータストアを削除する。 テスト中や一時的なストアがある場合、定期的に削除することで健全なストレージ使用を維持します。データストアを削除すると、Robloxがリクエストを処理するのに最大30日かかることがあります。
- 個別のキーを削除する。 これは、一時的なアイテムや特定のプレイヤーのデータを削除する必要があるときに便利です。
- バッチプロセッサを使用する。 手動でデータを削除することが効率的でない場合、バッチプロセッサまたはOpen Cloud Data Stores APIを使用してデータを一括削除できます。
新しいキーの代わりにデータストアのバージョンを使用する
プレイヤーや設定データの更新や新しいバージョンを保存する際は、各バージョンに新しいキーを作成する代わりにデータストアのバージョニングシステムを使用できます。バージョニングを使用すると、合計キー数やストレージフットプリントを増やさずに以前の保存をロールバックまたは検査できます。
一時データのためにメモリストアを使用する
キャッシュやエフェメラルデータには、データストアの代わりにメモリストアを使用します。メモリストアのデータは自動的に45日後に期限切れとなり、長期的なストレージの増加を減少させます。
テスト後にデータをクリーンアップする
テストが終了した後は、データストアマネージャーを使用してテストデータストアを削除します。テストデータのために新しいスコープや全く新しいデータストアを作成することは避けてください。
キーごとにプレイヤーデータを保存する
プレイヤーデータをデータストアごとに保存するのではなく、キーごとに保存します。キーを削除する方がデータストアを削除するよりも速いです。
イベント後にデータを削除する
季節イベントや一時的な機能の後は、バッチプロセッサやOpen Cloud APIを通じて未使用のデータを削除します。
定期的に使用状況を見直す
定期的に使用状況を見直し、データストアダッシュボードを使用して異常を早期に検出するようにします。