Statistik Datastore

Firestore dalam mode Datastore mempertahankan statistik tentang data yang disimpan untuk aplikasi, seperti berapa banyak entity yang ada dalam jenis tertentu, atau berapa banyak ruang yang digunakan oleh nilai properti dari jenis tertentu. Anda dapat melihat statistik ini di Konsol Google Cloud. Buka halaman Dasbor atau jalankan kueri GQL dalam bentuk SELECT * FROM __Stat_Kind__ dari halaman Entity.

Anda juga dapat mengakses nilai ini secara terprogram dalam aplikasi dengan membuat kueri entity bernama khusus menggunakan Datastore API. Setiap statistik dapat diakses sebagai entity yang nama jenisnya diawali dan diakhiri dengan dua garis bawah. Misalnya, setiap aplikasi memiliki tepat satu entity dari jenis __Stat_Total__ yang mewakili statistik tentang semua entity dalam mode Datastore secara total. Setiap entitas statistik memiliki properti berikut:

  • count, jumlah item yang dipertimbangkan oleh statistik (bilangan bulat panjang)
  • bytes, ukuran total item untuk statistik ini (bilangan bulat panjang)
  • timestamp, waktu pembaruan statistik terbaru (nilai tanggal-waktu)

Beberapa jenis statistik juga memiliki properti tambahan, yang tercantum di bawah.

Jika sistem statistik membuat entitas statistik baru, sistem tidak langsung menghapus entitas statistik lama. Cara terbaik untuk mendapatkan tampilan statistik yang konsisten adalah dengan membuat kueri untuk entitas statistik dengan timestamp terbaru, lalu menggunakan nilai stempel waktu tersebut sebagai filter saat mengambil entitas statistik lainnya.

Entity statistik disertakan dalam nilai statistik yang dihitung. Entitas statistik menggunakan ruang relatif terhadap jumlah jenis dan nama properti unik yang digunakan oleh aplikasi.

Sistem statistik juga akan membuat statistik khusus untuk setiap namespace. Perhatikan bahwa jika aplikasi tidak menggunakan namespace, statistik khusus namespace tidak akan dibuat. Statistik khusus namespace ditemukan dalam namespace yang spesifiknya. Nama jenis untuk statistik khusus namespace diawali dengan __Stat_Ns_ dan memiliki akhiran yang sama dengan jenis statistik di seluruh aplikasi.

Daftar statistik

Berikut adalah daftar lengkap statistik yang tersedia:

Statistik Jenis Entity Statistik Deskripsi
semua entitas __Stat_Total__
Entri khusus namespace:
__Stat_Ns_Total__
Semua entity. Properti tambahan:

entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
composite_index_bytes: Penyimpanan dalam entri indeks komposit yang diukur dalam byte.
composite_index_count: Jumlah entri indeks komposit.
semua entity dalam namespace __Stat_Namespace__
Perhatikan bahwa entity __Stat_Namespace__ dibuat untuk setiap namespace yang ditemukan dan hanya ditemukan dalam namespace string kosong.
Semua entity dalam namespace.

subject_namespace, namespace yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
composite_index_bytes: Penyimpanan dalam entri indeks komposit yang diukur dalam byte.
composite_index_count: Jumlah entri indeks komposit.
semua entri dalam indeks yang ditentukan aplikasi __Stat_Kind_CompositeIndex__
Entri khusus namespace: __Stat_Ns_Kind_CompositeIndex__
Entri di tabel indeks komposit; satu entity statistik untuk setiap jenis entity yang disimpan. Properti tambahan:

index_id, ID indeks.
kind_name, nama jenis yang direpresentasikan (string)
entity sejenis __Stat_Kind__
Entri khusus namespace:
__Stat_Ns_Kind__
Entity sejenis; satu entity statistik untuk setiap jenis entity yang disimpan. Properti tambahan:

kind_name, nama jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
composite_index_bytes: Penyimpanan dalam entri indeks komposit yang diukur dalam byte.
composite_index_count: Jumlah entri indeks komposit.
root entity sejenis __Stat_Kind_IsRootEntity__
Entri khusus namespace:
__Stat_Ns_Kind_IsRootEntity__
Entity sejenis yang merupakan entity group root entity (tidak memiliki induk ancestor); satu entity statistik untuk setiap jenis entity yang disimpan. Properti tambahan:

kind_name, nama dari jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
non-root entity sejenis __Stat_Kind_NotRootEntity__
Entri khusus namespace:
__Stat_Ns_Kind_NotRootEntity__
Entity sejenis yang bukan merupakan root entity dari entity group (memiliki induk ancestor); satu entity statistik untuk setiap jenis entity yang disimpan. Properti tambahan:

kind_name, nama dari jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
properti dari suatu jenis __Stat_PropertyType__
Entri khusus namespace:
__Stat_Ns_PropertyType__
Properti jenis nilai di semua entity; satu entity statistik per jenis nilai. Properti tambahan:

property_type, nama jenis nilai (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
properti dari suatu jenis per jenis __Stat_PropertyType_Kind__
Entri khusus namespace:
__Stat_Ns_PropertyType_Kind__
Properti jenis nilai di seluruh entity dari jenis tertentu; satu entity statistik per kombinasi jenis dan jenis properti. Properti tambahan:

property_type, nama jenis nilai (string)
kind_name, nama jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan di indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
properti dengan nama __Stat_PropertyName_Kind__
Entri khusus namespace:
__Stat_Ns_PropertyName_Kind__
Properti dengan nama tertentu di seluruh entity dari jenis tertentu; satu entity statistik per kombinasi nama dan jenis properti yang unik. Properti tambahan:

property_name, nama properti (string)
kind_name, nama dari jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan di tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.
properti dari suatu jenis dan dengan nama __Stat_PropertyType_PropertyName_Kind__
Entri khusus namespace:
__Stat_Ns_PropertyType_PropertyName_Kind__
Properti dengan nama tertentu dan jenis nilai tertentu di seluruh entity dari jenis tertentu; satu entity statistik per kombinasi nama properti, jenis nilai, dan jenis yang ada di database. Properti tambahan:

property_type, nama jenis nilai (string)
property_name, nama properti (string)
kind_name, nama jenis yang direpresentasikan (string)
entity_bytes: Penyimpanan dalam tabel entity yang diukur dalam byte.
builtin_index_bytes: Penyimpanan dalam entri indeks bawaan yang diukur dalam byte.
builtin_index_count: jumlah entri indeks bawaan.

Beberapa statistik merujuk pada jenis nilai properti berdasarkan nama, sebagai string. Berikut adalah nama-nama tersebut:

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

Urutan penurunan entitas statistik

Aplikasi dengan ribuan namespace, jenis, atau nama properti memerlukan banyak entity statistik. Untuk mengurangi overhead penyimpanan dan pembaruan statistik, database Firestore dalam mode Datastore secara bertahap menghapus entity statistik sesuai urutan di bawah ini.

Firestore dalam mode Datastore melacak ukuran entity statistik jenis dan non-jenis secara terpisah. Ukuran entity statistik non-jenis tidak terpengaruh saat statistik jenis dihapus.

Entity statistik ringkasan __Stat_Kind_CompositeIndex__, __Stat_PropertyType__, dan __Stat_Total__ tidak pernah dihapus.

Hapus urutan untuk entitas statistik jenis

Statistik entitas jenis dihapus dalam urutan berikut:

  • statistik per-namespace, per-jenis

    • __Stat_Ns_Kind__
    • __Stat_Ns_Kind_IsRootEntity__
    • __Stat_Ns_Kind_NotRootEntity__
    • __Stat_Ns_PropertyType_Kind__
  • statistik per jenis

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Hapus urutan untuk entitas statistik non-jenis

Statistik entitas non-jenis dihapus dalam urutan berikut:

  • statistik per-namespace, per-jenis, dan per-properti:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  • statistik per jenis dan per properti

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  • statistik per namespace

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

Lihat Juga