Datastore 統計情報

Datastore モードの Cloud Firestore は、指定の種類のエンティティの数や指定のタイプのプロパティ値に使用されている領域など、アプリケーションのために保存されているデータの統計情報を維持します。これらの統計情報は、GCP Console で確認できます。[ダッシュボード] ページを開くか、[エンティティ] ページから SELECT * FROM __Stat_Kind__ 形式で GQL クエリを実行します。

このような値には、アプリケーション内でプログラミングによってアクセスすることもできます。その場合、Cloud Datastore API を使用して特別な名前のエンティティに対してクエリを実行します。各統計情報は、エンティティとしてアクセスできます。このようなエンティティの名前は、先頭と末尾が 2 本のアンダースコアになっています。たとえば各アプリには __Stat_Total__ という種類のエンティティが 1 つだけ存在し、これは Datastore モードの全エンティティの合計に関する統計情報を表します。各統計情報エンティティには、次のプロパティがあります。

  • count: 統計情報で認識されている項目数(長整数)
  • bytes: 統計情報の項目の合計サイズ(長整数)
  • timestamp: 統計情報が最後に更新された時刻(日時値)

統計情報の一部の種類には、その他に下記で示すプロパティも用意されています。

統計情報システムが新しい統計情報エンティティを作成しても、古いエンティティが直ちに削除されるわけではありません。一貫性のある統計情報を取得する最善の方法として、最新の timestamp を持つエンティティに対してクエリを実行し、他の統計情報エンティティを取得するときは、そのタイムスタンプ値をフィルタとして使用することをおすすめします。

統計情報エンティティは、計算済みの統計情報値に含まれています。統計情報エンティティは、アプリケーションが使用する一意の種類とプロパティ名の数に比例して容量を消費します。

統計情報システムは、各名前空間に固有の統計情報も作成します。アプリケーションが名前空間を使用していない場合は、名前空間に固有の統計情報が作成されない点に注意してください。名前空間に固有の統計情報は、それぞれの名前空間に存在します。名前空間に固有の統計情報の種類名には接頭辞として __Stat_Ns_ が付加され、対応する同じ接尾辞がアプリケーション全体の統計情報の種類となります。

大量の名前空間、種類、プロパティ名を使用するアプリケーションでは、非常に多くの統計情報エンティティが必要になります。統計情報の格納と更新にかかるオーバーヘッドを合理的な範囲に収めるために、Datastore モードのデータベースでは次の順序で統計情報エンティティが順次破棄されていきます。

  • 名前空間、種類、プロパティに基づく統計情報: __Stat_Ns_PropertyName_Kind____Stat_Ns_PropertyType_PropertyName_Kind__
  • 種類とプロパティに基づく統計情報: __Stat_PropertyName_Kind____Stat_PropertyType_PropertyName_Kind__
  • 名前空間と種類に基づく統計情報: __Stat_Ns_Kind____Stat_Ns_Kind_IsRootEntity____Stat_Ns_Kind_NotRootEntity____Stat_Ns_PropertyType_Kind__
  • 種類に基づく統計情報: __Stat_Kind____Stat_Kind_IsRootEntity____Stat_Kind_NotRootEntity____Stat_PropertyType_Kind__
  • 名前空間に基づく統計情報: __Stat_Namespace____Stat_Ns_Kind_CompositeIndex____Stat_Ns_PropertyType____Stat_Ns_Total__

要約統計情報のエンティティ(__Stat_Kind_CompositeIndex____Stat_PropertyType____Stat_Total__)は破棄されません。

次に、使用可能なすべての統計情報をまとめたリストを示します。

統計情報 統計情報エンティティの種類 説明
すべてのエンティティ __Stat_Total__
名前空間に固有のエントリ:
__Stat_Ns_Total__
すべてのエンティティ。追加プロパティは次のとおりです。

entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
composite_index_bytes: 複合インデックス エントリのストレージ サイズ(バイト単位)
composite_index_count: 複合インデックスのエントリ数
名前空間内のすべてのエンティティ __Stat_Namespace__
__Stat_Namespace__ エンティティは名前空間が発生するたびに作成され、空文字列の名前空間にのみ存在する点に注意してください。
名前空間内のすべてのエンティティ。

subject_namespace: 名前空間の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
composite_index_bytes: 複合インデックス エントリのストレージ サイズ(バイト単位)
composite_index_count: 複合インデックスのエントリ数
アプリケーション定義のインデックス内のすべてのエントリ __Stat_Kind_CompositeIndex__
名前空間に固有のエントリ: __Stat_Ns_Kind_CompositeIndex__
複合インデックス テーブル内のエントリ。格納されているエンティティの種類ごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

index_id: インデックス ID
kind_name: 種類名の表現(文字列)
種類のエンティティ __Stat_Kind__
名前空間に固有のエントリ:
__Stat_Ns_Kind__
種類のエンティティ。格納されているエンティティの種類ごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
composite_index_bytes: 複合インデックス エントリのストレージ サイズ(バイト単位)
composite_index_count: 複合インデックスのエントリ数
種類のルート エンティティ __Stat_Kind_IsRootEntity__
名前空間に固有のエントリ:
__Stat_Ns_Kind_IsRootEntity__
エンティティ グループのルート エンティティ(祖先となる親を持たないエンティティ)となっている種類のエンティティ。格納されているエンティティの種類ごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
種類の非ルート エンティティ __Stat_Kind_NotRootEntity__
名前空間に固有のエントリ:
__Stat_Ns_Kind_NotRootEntity__
エンティティ グループの非ルート エンティティ(祖先となる親を持つエンティティ)となっている種類のエンティティ。格納されているエンティティの種類ごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
型のプロパティ __Stat_PropertyType__
名前空間に固有のエントリ:
__Stat_Ns_PropertyType__
すべてのエンティティにわたる値の型のプロパティ。値の型ごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

property_type: 値の型の名前(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
種類ごとの型のプロパティ __Stat_PropertyType_Kind__
名前空間に固有のエントリ:
__Stat_Ns_PropertyType_Kind__
特定の種類のエンティティ全体の値の型のプロパティ。プロパティの型と種類の組み合わせごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

property_type: 値の型の名前(文字列)
kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックスのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
名前を持つプロパティ __Stat_PropertyName_Kind__
名前空間に固有のエントリ:
__Stat_Ns_PropertyName_Kind__
特定の種類のエンティティにわたる特定の名前を持つプロパティ。一意のプロパティ名と種類の組み合わせごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

property_name: プロパティの名前(文字列)
kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数
名前を持つ型のプロパティ __Stat_PropertyType_PropertyName_Kind__
名前空間に固有のエントリ:
__Stat_Ns_PropertyType_PropertyName_Kind__
特定の種類のエンティティ全体のプロパティで、特定の名前を持ち、特定の値の型のプロパティとなっているもの。プロパティ名、値の型、データベースに存在する種類の組み合わせごとに 1 つの統計情報エンティティが作成されます。追加プロパティは次のとおりです。

property_type: 値の型の名前(文字列)
property_name: プロパティの名前(文字列)
kind_name: 種類名の表現(文字列)
entity_bytes: エンティティ テーブルのストレージ サイズ(バイト単位)
builtin_index_bytes: 組み込みインデックス エントリのストレージ サイズ(バイト単位)
builtin_index_count: 組み込みインデックスのエントリ数

一部の統計情報は、プロパティ値の型を文字列として名前で参照します。そのような名前は次のとおりです。

  • "Blob"
  • "BlobKey"
  • "Boolean"
  • "Category"
  • "Date/Time"
  • "Email"
  • "Float"
  • "GeoPt"
  • "IM"
  • "Integer"
  • "Key"
  • "Link"
  • "NULL"
  • "PhoneNumber"
  • "PostalAddress"
  • "Rating"
  • "ShortBlob"
  • "String"
  • "Text"
  • "User"

関連情報

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Datastore ドキュメント