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 sebagaiSTRING
, sedangkan jenis properti yang sebenarnya adalahARRAY<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 kolomsubject_namespace
yang menjelaskan namespace pemilik entity tersebut. Kumpulan data__Stat_Ns_Total__
disimpan di namespace yang dirujuk, sehingga tidak berisi kolomsubject_namespace
. Oleh karena itu, kueri pada jenis__Stat_Namespace__
(dari namespace string kosong) yang diurutkan menurun berdasarkanbytes
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:
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__
Entity statistik jenis memiliki urutan penurunan 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__