Memilih antara mode Native dan mode Datastore

Saat membuat database Firestore baru, Anda dapat mengonfigurasi instance database untuk berjalan dalam mode Datastore yang membuat database kompatibel dengan versi lama datastore. Halaman ini membantu Anda memahami perbedaan antara kedua mode database Firestore: Mode native dan Mode Datastore.

Firestore dalam mode Native

Firestore adalah versi utama Datastore berikutnya dan re-branding produk. Dengan memanfaatkan Datastore dan Firebase Realtime Database, Firestore adalah database dokumen NoSQL yang dibangun untuk penskalaan otomatis, performa tinggi, dan kemudahan pengembangan aplikasi.

Firestore memperkenalkan fitur-fitur baru seperti:

  • Lapisan penyimpanan baru yang sangat konsisten
  • Koleksi dan model data dokumen
  • Update realtime
  • Library klien Seluler dan Web

Firestore kompatibel dengan Datastore versi lama, tetapi tidak dengan model data baru, update real-time, serta fitur library klien seluler dan web. Untuk mengakses semua fitur Firestore baru, Anda harus menggunakan Firestore dalam mode Native.

Firestore dalam mode Datastore

Firestore dalam mode Datastore menggunakan perilaku sistem Datastore, tetapi mengakses lapisan penyimpanan Firestore, sehingga menghilangkan batasan Datastore berikut:

  • Konsistensi tertunda: Kueri Datastore menjadi sangat konsisten kecuali jika Anda secara eksplisit meminta konsistensi akhir.
  • Kueri dalam transaksi tidak lagi diperlukan sebagai kueri ancestor.
  • Transaksi tidak lagi terbatas pada 25 entity group.
  • Menulis ke entity group tidak lagi dibatasi hingga 1 per detik.

Mode Datastore menonaktifkan fitur Firestore yang tidak kompatibel dengan Datastore:

  • Project ini akan menerima permintaan Datastore API dan menolak permintaan Firestore API.
  • Project ini akan menggunakan indeks Datastore, bukan indeks Firestore.
  • Anda dapat menggunakan library klien Datastore dengan project ini, tetapi tidak dengan library klien Firestore.
  • Kemampuan real-time Firestore tidak akan tersedia.
  • Di konsol Google Cloud, database akan menggunakan penampil Datastore.

Upgrade otomatis ke mode Datastore

Database Datastore yang ada akan otomatis diupgrade ke Firestore dalam mode Datastore. Project baru yang memerlukan database Datastore harus menggunakan Firestore dalam mode Datastore.

Harga dan lokasi

Database mode native dan mode Datastore menggunakan struktur harga yang sama dan tersedia di lokasi yang sama. Harga dan lokasi dijelaskan secara mendetail di halaman berikut:

Firestore dalam mode Native

Firestore dalam mode Datastore

Memilih mode database

Saat membuat database Firestore baru, Anda harus memilih mode database. Anda dapat memiliki database mode Datastore dan mode Native di project yang sama, tetapi setiap database akan memiliki jenis tunggal. Kami merekomendasikan hal berikut saat memilih mode database:

  • Gunakan Firestore dalam mode Datastore untuk project server baru.

    Firestore dalam mode Datastore memungkinkan Anda menggunakan arsitektur server Datastore yang telah ditetapkan sekaligus menghapus batasan Datastore mendasar. Mode Datastore dapat diskalakan secara otomatis ke jutaan penulisan per detik.

  • Gunakan Firestore dalam mode Native untuk aplikasi seluler dan web baru.

    Firestore menawarkan library klien seluler dan web dengan fitur real-time dan offline. Mode native dapat diskalakan secara otomatis ke jutaan klien serentak.

Perbandingan fitur

Tabel berikut membandingkan perilaku sistem mode database:

Firestore dalam
mode Native
Firestore dalam
mode Datastore
Model data Database dokumen yang disusun menjadi dokumen dan koleksi. Entitas yang disusun ke dalam jenis dan grup entitas.
Lapisan Penyimpanan Lapisan penyimpanan baru yang selalu sangat konsisten Lapisan penyimpanan baru yang selalu sangat konsisten
Kueri dan transaksi
  • Kueri yang sangat konsisten di seluruh {i>database<i}
  • Menghapus batasan konsistensi sebelumnya pada Datastore
  • Kueri yang sangat konsisten di seluruh {i>database<i}
  • Transaksi dapat mengakses sejumlah grup entitas
Dukungan Datastore v1 API Tidak, permintaan ditolak Ya
Dukungan Firestore v1 API Ya Tidak, permintaan ditolak
Update real-time

Mendukung kemampuan untuk memproses dokumen atau kumpulan dokumen untuk pembaruan real-time.

Saat memproses satu atau beberapa dokumen, klien Anda akan diberi tahu tentang setiap perubahan data dan mengirim kumpulan data terbaru.

Tidak didukung
Persistensi data offline Library klien seluler dan web mendukung persistensi data offline. Tidak didukung
Library klien Library klien Firestore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS+
  • Web
  • C++
  • Unity
Library klien Datastore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • C++
Keamanan
  • Identity and Access Management (IAM) mengelola akses database
  • Aturan Keamanan Firestore mendukung autentikasi dan otorisasi tanpa server untuk library klien seluler dan web
IAM mengelola akses database
Performa Secara otomatis menskalakan jutaan klien serentak. Secara otomatis menskalakan jutaan operasi tulis per detik.
SLA SLA Firestore SLA Firestore
Lokasi

Kedua mode mendukung lokasi yang sama:

  • Amerika Serikat (Multi-region)
  • Eropa (Multi-region)
  • Oregon
  • Los Angeles
  • Salt Lake City
  • Las Vegas
  • Montréal
  • Los Angeles
  • South Carolina
  • Northern Virginia
  • Sao Paulo
  • London
  • Frankfurt
  • Warsawa
  • Zürich
  • Mumbai
  • Singapura
  • Jakarta
  • Hong Kong
  • Taiwan
  • Tokyo
  • Osaka
  • Seoul
  • Sydney
Harga

Kedua mode tersebut menggunakan struktur harga yang sama untuk operasi entitas dan dokumen.

Firestore dalam mode Datastore tidak mengenakan biaya untuk operasi kecil.

Kedua mode tersebut menggunakan struktur harga yang sama untuk data yang disimpan dan bandwidth jaringan.

Untuk mengetahui detail selengkapnya tentang harga, lihat:

Konsol Firebase Console dan Firestore Viewer Google Cloud Console Penampil Datastore Konsol Google Cloud
Namespace Tidak didukung Namespace yang didukung
Integrasi library klien App Engine

Tidak didukung di lingkungan standar App Engine Python 2.7 dan PHP 5.5

Didukung dalam lingkungan standar App Engine, semua runtime lainnya

Didukung di lingkungan fleksibel App Engine, semua runtime

Didukung di semua runtime

Membuat database baru

Anda dapat membuat database Firestore baru dalam mode Native atau mode Datastore. Pilihan ini tidak bergantung pada mode database yang ada di project Anda.

Lihat Membuat dan mengelola database untuk mengetahui info selengkapnya.

Beralih antara mode Native dan mode Datastore

Jika database kosong, Anda dapat beralih antara mode Native dan mode Datastore.

Ubah database ke Mode native:

gcloud

Gunakan perintah gcloud firestore database update untuk mengubah database Anda ke mode Native.

gcloud firestore databases update --type=firestore-native

istirahat

curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"

Ubah database ke mode Datastore:

gcloud

Gunakan perintah gcloud firestore database update untuk mengubah database Anda ke mode Datastore.

 gcloud firestore databases update --type=datastore-mode

istirahat

curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"