Datastore 會保留與應用程式預存資料相關的統計資料,例如有多少實體符合特定種類,或者特定類型的屬性值使用多少空間。您可以在 Google Cloud 控制台的「資訊主頁」頁面查看這些統計資料。
您也可以使用 Datastore API 查詢名稱特殊的實體,以程式輔助方式在應用程式內部存取這些值。每個統計資料都可當成實體來存取,而實體種類名稱的開頭和結尾是兩條底線。例如,每個應用程式都只有一個屬於 __Stat_Total__
種類的實體,這個實體代表與 Datastore 中所有實體相關的統計資料總和。每個統計資料實體都具有下列屬性:
count
:統計資料考慮的項目數 (長整數)bytes
:此統計資料的項目總大小 (長整數)timestamp
:最近一次更新統計資料的時間 (日期時間值)
有些統計資料種類也有其他屬性,如下所示:
Java 應用程式可以使用低階 API 存取統計資料實體,例如:
統計資料系統建立新的統計資料實體時,不會立即刪除舊的統計資料實體。如要取得統計資料的一致視圖,最佳做法就是使用最新的 timestamp
查詢 __Stat_Total__
實體,然後在擷取其他統計資料實體時,使用該時間戳記值為篩選器。
計算出來的統計資料值會包含這些統計資料實體。統計資料實體占用的空間,與應用程式使用的獨特種類數及屬性名稱數有關。
統計資料系統也會建立各個命名空間專屬的統計資料。請注意,如果應用程式不使用 Datastore 命名空間,就不會建立命名空間專屬的統計資料。命名空間專屬的統計資料會出現在這些資料的特定命名空間中。命名空間專屬統計資料的種類名稱,開頭均為 __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__ |
複合式索引表中的項目;儲存的每種實體各有一個統計資料實體。其他屬性: • index_id ,索引 ID。• kind_name :代表種類的名稱 (字串) |
某個種類的實體 | __Stat_Kind__ 命名空間專用項目: __Stat_Ns_Kind__ |
某個種類的實體;儲存的每種實體各有一個統計資料實體。其他屬性: • kind_name :代表種類的名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。• builtin_index_bytes :內建索引項目的儲存空間,以位元組為單位。• builtin_index_count :內建索引項目的數量。• composite_index_bytes :複合式索引項目的儲存空間,以位元組為單位。• composite_index_count :複合式索引項目的數量。 |
某個種類的根實體 | __Stat_Kind_IsRootEntity__ 命名空間專用項目: __Stat_Ns_Kind_IsRootEntity__ |
某個種類的實體,該實體為實體群組根實體 (沒有祖系父項);儲存的每種實體各有一個統計資料實體。其他屬性: • kind_name ,代表類型的名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。 |
某個種類的非根實體 | __Stat_Kind_NotRootEntity__ 命名空間專用項目: __Stat_Ns_Kind_NotRootEntity__ |
某個種類的實體,該實體不是實體群組根實體 (有祖系父項);儲存的每種實體各有一個統計資料實體。其他屬性: • kind_name ,代表類型的名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。 |
某個類型的屬性 | __Stat_PropertyType__ 命名空間專用項目: __Stat_Ns_PropertyType__ |
所有實體的值類型屬性;每個值類型各有一個統計資料實體。其他屬性: • property_type ,值類型的名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。• builtin_index_bytes :內建索引項目的儲存空間,以位元組為單位。• builtin_index_count :內建索引項目的數量。 |
各種類中某個類型的屬性 | __Stat_PropertyType_Kind__ 命名空間專用項目: __Stat_Ns_PropertyType_Kind__ |
特定種類實體之值類型的屬性;每個屬性類型和種類的組合各有一個統計資料實體。其他屬性: • property_type ,值類型的名稱 (字串)• kind_name ,代表種類的名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。• builtin_index_bytes :內建索引項目的儲存空間,以位元組為單位。• builtin_index_count :內建索引項目的數量。 |
具有名稱的屬性 | __Stat_PropertyName_Kind__ 命名空間專用項目: __Stat_Ns_PropertyName_Kind__ |
在指定種類的實體中具有特定名稱的屬性;每個不重複的屬性名稱和種類組合各有一個統計資料實體。其他屬性: • property_name ,屬性名稱 (字串)• kind_name ,代表的類型名稱 (字串)• entity_bytes :實體資料表的儲存空間,以位元組為單位。• builtin_index_bytes :內建索引項目的儲存空間,以位元組為單位。• builtin_index_count :內建索引項目的數量。 |
某個類型且具有名稱的屬性 | __Stat_PropertyType_PropertyName_Kind__ 命名空間專用項目: __Stat_Ns_PropertyType_PropertyName_Kind__ |
指定種類實體中具有特定名稱且屬於特定值類型的屬性;Datastore 中的每個屬性名稱、值類型和種類組合各有一個統計資料實體。其他屬性: • property_type ,值類型的名稱 (字串)• property_name ,屬性的名稱 (字串)• kind_name ,代表的類型名稱 (字串)• entity_bytes :實體表中的儲存空間,以位元組為單位。• builtin_index_bytes :內建索引項目的儲存空間,以位元組為單位。• builtin_index_count :內建索引項目的數量。 |
某些統計資料會按名稱以字串代表 Datastore 屬性值類型。這些名稱如下所示:
"Blob"
"BlobKey"
"Boolean"
"Category"
"Date/Time"
"Email"
"Float"
"GeoPt"
"IM"
"Integer"
"Key"
"Link"
"NULL"
"PhoneNumber"
"PostalAddress"
"Rating"
"ShortBlob"
"String"
"Text"
"User"