Harga Firestore dalam mode Datastore
Dokumen ini menjelaskan detail harga mode Datastore.
Penggunaan gratis
Firestore dalam mode Datastore menawarkan penggunaan gratis sehingga Anda dapat memulai tanpa biaya. Agar dapat melebihi kuota penggunaan gratis, Anda harus mengaktifkan penagihan untuk project Anda.
Penggunaan Anda dihitung setiap hari dan direset pada tengah malam waktu Pasifik.
| Penggunaan gratis | |
|---|---|
| Operasi pembacaan entity | 50.000 per hari |
| Operasi penulisan entity | 20.000 per hari |
| Operasi penghapusan entity | 20.000 per hari |
| Data tersimpan | 1 GiB |
| Operasi kecil | 50.000 per hari |
| Transfer data keluar | 10 GiB per bulan |
Operasi dan fitur berikut tidak mencakup penggunaan gratis. Anda harus mengaktifkan penagihan untuk menggunakan fitur ini:
- Data PITR
- Mencadangkan data
- Operasi pemulihan
- Operasi clone
- TTL
Untuk mengetahui informasi selengkapnya tentang cara penagihan fitur ini, lihat Pertimbangan ukuran penyimpanan.
Harga berdasarkan region
Untuk melihat harga untuk pembacaan, penulisan, penghapusan, dan penyimpanan untuk setiap lokasi mode Datastore, lihat harga Firestore.
Operasi baca
Anda dikenai biaya satu operasi baca untuk setiap entitas yang dibaca dan satu operasi baca untuk setiap batch hingga 1.000 entri indeks yang dibaca.
Entri indeks
Anda dikenai biaya satu operasi baca untuk setiap batch hingga 1.000 entri indeks yang dibaca oleh kueri kecuali dalam hal berikut:
Kueri yang memiliki hingga satu properti rentang tidak dikenai biaya untuk entri indeks yang dibaca dan memiliki biaya minimum nol operasi baca. Gunakan contoh berikut
untuk memahami kapan pembacaan entri indeks dikenai biaya. Kemudian, gunakan bagian billing_details dari Query Explain untuk memvalidasi pemahaman Anda.
Kueri berikut berisi satu properti kesetaraan (age) dan satu properti rentang (start_date) dan tidak dikenai biaya untuk entri indeks yang dibaca:
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(
CompositeFilter.and(
PropertyFilter.eq("age", 35), PropertyFilter.ge("start_date", new Date(2020, 1, 1))))
.build();
Kueri berikut berisi dua properti rentang (age dan start_date) serta ditagih untuk entri indeks yang dibaca:
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(
CompositeFilter.and(
PropertyFilter.ge("age", 35), PropertyFilter.ge("start_date", new Date(2020, 1, 1))))
.build();
Properti yang muncul dalam klausa order by dianggap sebagai properti rentang
jika ada setidaknya satu properti rentang lainnya.
Oleh karena itu, kueri berikut berisi dua properti rentang (age dan start_date) serta dikenai biaya untuk entri indeks yang dibaca:
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(PropertyFilter.ge("age", 35))
.setOrderBy(OrderBy.asc("start_date")).build()
.build();
Properti yang muncul dalam klausa distinct on dianggap sebagai properti rentang
jika ada setidaknya satu properti rentang lainnya. Oleh karena itu, kueri berikut berisi dua properti rentang (age dan start_date) serta dikenai biaya untuk entri indeks yang dibaca:
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(PropertyFilter.ge("age", 35))
.setDistinctOn("start_date")
.build();
Kueri agregasi
Untuk kueri agregasi count(), sum(), dan avg(), Anda dikenai biaya satu pembacaan entity untuk setiap batch hingga 1.000 entri indeks yang dibaca oleh kueri.
Misalnya, kueri agregasi yang membaca antara 0 dan 1.000 entri indeks akan ditagih untuk satu pembacaan entity. Untuk kueri agregasi yang membaca 1.500 entri indeks, Anda akan ditagih 2 pembacaan entity.
Untuk mempelajari lebih lanjut indeks yang digunakan dan entri indeks yang dibaca, gunakan Query Explain.
Transformasi properti
Setiap operasi transformasi properti
seperti increment dan appendMissingElements dikenai biaya untuk pembacaan
dan penulisan. Operasi commit dengan penyisipan, pembaruan, atau upsert dan
transformasi properti pada entity yang sama dihitung sebagai satu pembacaan dan satu penulisan.
Operasi kecil
Operasi kecil meliputi:
- Panggilan untuk mengalokasikan ID.
- Kueri hanya-kunci. Kueri hanya-kunci dihitung sebagai satu operasi pembacaan entity untuk kueri itu sendiri. Hasil individual dihitung sebagai operasi kecil.
- Kueri proyeksi yang tidak menggunakan klausa
distinct on. Jenis kueri ini dihitung sebagai satu operasi pembacaan entity untuk kueri itu sendiri. Hasil individual dihitung sebagai operasi kecil.
Operasi kecil dapat digunakan tanpa biaya, tetapi Anda harus mengaktifkan penagihan jika ingin melebihi kuota penggunaan gratis per hari.
Query Explain dan Analyze
Penggunaan Query Explain and Analyze akan menimbulkan biaya.
Saat kueri dijelaskan dengan opsi default, tidak ada operasi baca indeks atau entity yang dijalankan. Terlepas dari kompleksitas kueri, satu operasi baca akan dikenai biaya.
Saat kueri dijelaskan dengan opsi analisis, operasi indeks dan baca akan dijalankan, sehingga Anda akan dikenai biaya untuk kueri tersebut seperti biasa. Tidak ada biaya tambahan untuk aktivitas penjelasan dan analisis, hanya biaya biasa untuk kueri yang dijalankan.
Bandwidth jaringan
Anda dikenai biaya untuk bandwidth jaringan yang digunakan oleh permintaan Firestore dalam mode Datastore, seperti ditunjukkan pada bagian berikut. Biaya bandwidth jaringan permintaan bergantung pada ukuran respons permintaan, lokasi database mode Datastore, dan tujuan respons.
Harga jaringan umum
Untuk permintaan yang berasal dari Google Cloud Platform (misalnya, dari aplikasi yang berjalan di Google Compute Engine), Anda dikenai biaya sebagai berikut:
| Jenis traffic | Harga |
|---|---|
| Transfer data masuk | Gratis |
| Transfer data dalam suatu region | Gratis |
| Transfer data antar-region dalam multi-region yang sama | Gratis |
| Transfer data antar-region di AS (per GiB) | $0,01 (gratis 10 GiB pertama per bulan) |
| Transfer data antar-region, tidak termasuk traffic antar-region di AS | Tarif transfer data keluar internet Google Cloud Platform |
Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda pada SKU Cloud Platform.
Kecepatan transfer data internet
Anda akan dikenai biaya untuk transfer data internet untuk hal berikut:
- Google Cloud permintaan antar-region, tidak termasuk traffic antar-region AS
- Permintaan dari luar Google Cloud
Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda pada SKU Cloud Platform.
Operasi ekspor dan impor
Operasi ekspor dan impor akan ditagih untuk operasi pembacaan dan penulisan entity sesuai tarif yang ditunjukkan pada tabel di atas. Jika Anda membatalkan ekspor atau impor, Anda akan ditagih untuk operasi yang dijalankan hingga waktu ketika permintaan pembatalan tersebut diterapkan melalui Firestore dalam mode Datastore.
Menemukan informasi penggunaan kuota untuk aplikasi Anda
Untuk melihat penggunaan mode Datastore aplikasi Anda, termasuk pemakaian kuota, buka halaman Detail Kuota App Engine. Anda perlu melakukan langkah ini sekalipun aplikasi Anda tidak dijalankan di App Engine.
Resource mode Datastore yang digunakan oleh aplikasi Anda tercantum di halaman Penyimpanan yang ditampilkan. Anda dapat mengklik Tampilkan resource yang tidak digunakan jika ingin melihat daftar lengkap informasi kuota yang tersedia.
Pertimbangan ukuran penyimpanan
Anda dikenai biaya untuk jumlah data yang disimpan dalam mode Datastore, termasuk overhead penyimpanan. Jumlah overhead meliputi metadata, indeks bawaan, indeks gabungan, dan versi pemulihan point-in-time (PITR). Anda juga dikenai biaya untuk ukuran penyimpanan cadangan dan operasi pemulihan.
Setiap entity yang disimpan dalam database Anda memerlukan metadata berikut yang berkontribusi terhadap ukuran penyimpanan:
- Kunci entity, termasuk jenis, ID atau nama kunci, dan kunci ancestor entity.
- Nama dan nilai setiap properti. Karena Firestore dalam mode Datastore tidak memiliki skema, nama setiap properti harus disimpan bersama nilai properti untuk setiap entity tertentu.
- Setiap baris indeks bawaan dan gabungan yang merujuk ke entity ini. Setiap baris memuat jenis entity, sejumlah nilai properti bergantung pada definisi indeksnya, dan kunci entity.
Pelajari metode penghitungan penyimpanan mode Datastore di Penghitungan Ukuran Penyimpanan.
Data PITR
Jika mengaktifkan PITR, Anda akan dikenai biaya untuk penyimpanan data PITR. Sebagian besar pelanggan akan menemukan bahwa biaya keseluruhan penyimpanan data PiTR hampir sama dengan biaya penyimpanan database.
Biaya penyimpanan untuk PITR adalah dalam GiB/bulan dan dihitung setiap hari. Mode Datastore mengukur ukuran database setiap hari. Selama sebulan, titik contoh ini dirata-ratakan untuk menghitung ukuran penyimpanan database. Nilai rata-rata ini dikalikan dengan harga satuan PITR (GiB-bulan).
Misalnya, jika ukuran rata-rata database Anda selama satu bulan adalah 1 GiB dan PITR diaktifkan untuk satu bulan penuh, maka ukuran data PITR yang dapat ditagih juga 1 GiB.
Penagihan minimum: Anda dapat ditagih hingga 1 hari biaya penyimpanan PITR meskipun Anda menonaktifkan PITR dalam satu hari setelah pengaktifan.
Operasi pencadangan dan pemulihan data
Jika Anda mengaktifkan backups, Anda akan dikenai biaya untuk penyimpanan cadangan database. Ukuran penyimpanan untuk cadangan sama dengan ukuran penyimpanan database saat cadangan diambil.
Biaya penyimpanan untuk cadangan adalah dalam GiB/bulan. Selama periode sebulan, jumlah hari saat setiap cadangan dipertahankan dan rata-rata selama sebulan juga akan dihitung. Biaya setiap cadangan dihitung menggunakan ukuran penyimpanan cadangan dikalikan dengan proporsi bulan saat cadangan dipertahankan, dikalikan dengan harga satuan. Batas hari ditentukan oleh zona waktu America/Los_Angeles untuk tujuan penagihan.
Saat Anda melakukan operasi pemulihan, mode Datastore mengukur ukuran cadangan untuk operasi pemulihan. Ukuran cadangan dikalikan dengan harga satuan operasi pemulihan (GiB).
Langkah berikutnya
- Baca dokumentasi Firestore dalam mode Datastore.
- Mulai menggunakan Firestore dalam mode Datastore.
- Coba Kalkulator Harga.
- Pelajari solusi dan kasus penggunaan Firestore dalam mode Datastore.