Statistik Datastore

Firestore dalam mode Datastore (Datastore) menyimpan statistik tentang data yang Anda simpan di aplikasi, seperti berapa banyak entity yang ada, jenisnya, atau berapa banyak ruang yang digunakan oleh nilai properti dari jenis tertentu.

Anda dapat melihat statistik ini di konsol Google Cloud dengan salah satu cara berikut:

  • Di halaman Dasbor.
  • Di halaman Entities, jalankan kueri GQL dalam bentuk SELECT * FROM __Stat_Kind__.
  • Secara terprogram dalam aplikasi dengan membuat kueri entity bernama khusus menggunakan Datastore API. Untuk informasi selengkapnya tentang Datastore API, lihat API & Referensi.

Datastore menggunakan nama jenis yang diawali dan diakhiri dengan dua garis bawah untuk mengidentifikasi entity khusus yang memberikan statistik tentang data Anda. Ini disebut entity statistik. Misalnya, setiap aplikasi memiliki satu entity dari jenis __Stat_Total__, yang mewakili statistik tentang semua entity dalam database mode Datastore.

Entity statistik melacak informasi tentang data Anda dan memberi Anda insight tentang penggunaan data Anda. Aset ini dibuat secara otomatis. Setiap entity 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 update statistik terbaru (nilai tanggal dan waktu)

Setiap entity termasuk dalam jenis tertentu. Jenis statistik menunjukkan kategori statistik yang dikumpulkan atau digunakan. Gunakan jenis untuk mengidentifikasi tujuan statistik, seperti mengoptimalkan kueri, meningkatkan performa, atau analisis data.

Beberapa jenis statistik juga memiliki properti tambahan yang tercantum di bagian Daftar statistik dalam dokumen ini.

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

Sistem statistik juga membuat statistik yang khusus untuk setiap namespace. Nama jenis statistik khusus namespace diawali dengan __Stat_Ns__, diikuti dengan akhiran yang sama dengan nama jenis statistik yang berlaku untuk seluruh aplikasi.

Jika aplikasi tidak menggunakan namespace, sistem statistik tidak akan membuat statistik khusus namespace. Anda hanya dapat menemukan statistik khusus namespace di namespace yang relevan.

Daftar statistik

Berikut adalah daftar 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.

Untuk informasi selengkapnya, lihat bagian Batasan statistik dalam dokumen ini.
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:

alphanumeric_id: ID alfanumerik indeks. ID yang sama digunakan di gcloud dan API.
index_id: representasi bilangan bulat internal dari ID indeks. Untuk metode gcloud dan API, gunakan alphanumeric_id.
kind_name: nama jenis yang direpresentasikan (string)
last_known_usage_timestamp: waktu terakhir indeks ini menayangkan kueri. Akan selalu berupa waktu antara stat_tracked_since_time dan stempel waktu. Tetapkan ke null jika tidak ada penggunaan yang dicatat dalam jangka waktu tersebut. Tidak ada untuk __Stat_Ns_Kind_CompositeIndex__.
stat_tracked_since_time: awal periode waktu saat penggunaan indeks diketahui. Tidak ada untuk __Stat_Ns_Kind_CompositeIndex__.
semua entri dalam indeks bawaan __Stat_Kind_BuiltinIndex__ Informasi tentang indeks bawaan dalam database. Satu entity statistik untuk setiap indeks bawaan. Properti tambahan:

property_name: nama properti yang diindeks.
kind_name: nama jenis yang direpresentasikan (string).
api_scope: Firestore atau Datastore.
query_scope: cakupan kueri indeks. Selalu tetapkan ke COLLECTION_GROUP (jenis) untuk database Datastore.
value_mode: mode untuk cakupan kueri seperti ASC atau DESC.
last_known_usage_timestamp: terakhir kali indeks ini menayangkan kueri. Akan selalu berupa waktu antara stat_tracked_since_time dan stempel waktu. Tetapkan ke null jika tidak ada penggunaan yang dicatat dalam jangka waktu tersebut.
stat_tracked_since_time: awal periode waktu saat penggunaan indeks diketahui.
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 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 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.

Untuk informasi selengkapnya, lihat bagian Batasan statistik dalam dokumen ini.
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 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 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.

Untuk informasi selengkapnya, lihat bagian Batasan statistik dalam dokumen ini.

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"

Batasan statistik

Statistik memiliki batasan berikut:

  • Properti __Stat_PropertyType_Kind__ dan properti __Stat_PropertyType_PropertyName_Kind__ menampilkan metadata jenis properti untuk jenis nilai array, dan mencatat jenis properti secara terpisah untuk setiap nilai dalam array. Misalnya, jika properti array menyimpan daftar string, properti akan mencatat jenis properti sebagai STRING, sedangkan jenis properti yang sebenarnya adalah ARRAY<STRING>.
  • Entity __Stat_Namespace__ berisi informasi yang sama dengan yang ada di kumpulan data __Stat_Ns_Total__. Entity __Stat_Namespace__ disimpan di namespace kosong dan berisi kolom subject_namespace yang menjelaskan namespace pemilik entity tersebut. Kumpulan data __Stat_Ns_Total__ disimpan di namespace yang dirujuk, sehingga tidak berisi kolom subject_namespace. Oleh karena itu, kueri pada jenis __Stat_Namespace__ (dari namespace string kosong) yang diurutkan menurun berdasarkan bytes akan mencantumkan namespace yang menggunakan penyimpanan terbesar terlebih dahulu. Karena kueri tidak dapat dilakukan di beberapa namespace sekaligus, kueri apa pun untuk entity __Stat_Ns_Total__ hanya akan menghasilkan maksimal satu data.

Urutan drop entity statistik

Aplikasi dengan ribuan namespace, jenis, atau nama properti memerlukan entity statistik dalam jumlah besar. Untuk mengurangi overhead penyimpanan dan pembaruan statistik, database Firestore dalam mode Datastore secara bertahap menghapus entity statistik sesuai dengan urutan yang tercantum nanti.

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

Entity statistik dihapus dalam grup dalam urutan default berikut:

  1. statistik per namespace, per jenis, dan per properti:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  2. statistik per jenis dan per properti

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  3. statistik per namespace

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

Entity statistik jenis memiliki urutan penurunan berikut:

  1. statistik per namespace, per jenis

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

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Langkah selanjutnya