Operasi Firestore Pipeline adalah fitur utama edisi Firestore Enterprise, yang dibuat di mesin kueri baru untuk secara signifikan memperluas rentang kueri yang memungkinkan. Operasi Firestore Pipeline menggunakan sintaksis kueri yang fleksibel dan metode pengindeksan yang berbeda, dengan indeks yang bersifat opsional dan tidak dibuat secara otomatis, sehingga memungkinkan operasi pengambilan data lanjutan untuk aplikasi.
Fitur operasi Firestore Pipeline
Edisi Firestore Enterprise dan operasi Pipeline baru menggunakan mesin kueri baru dan canggih yang menghilangkan banyak batasan yang ada pada edisi Firestore Standard. Operasi Firestore Pipeline menyediakan lebih dari 120 fitur kueri baru. Operasi Firestore Pipeline memiliki kemampuan berikut:
Sintaksis Composable Berbasis Tahap
Kueri pipeline dibuat dengan menentukan serangkaian tahap berurutan yang dieksekusi secara berurutan. Hal ini memungkinkan operasi yang kompleks, seperti memfilter hasil agregasi, yang sebelumnya tidak dapat dilakukan.
Contoh berikut menunjukkan kueri pipeline yang menemukan jumlah ID produk unik yang dilihat dalam sebulan terakhir:
guard let cutoffDate = Calendar.current.date(byAdding: .month, value: -1, to: Date()) else {
return
}
let snapshot = try await db.pipeline()
.collection("productViews")
.where(Field("viewedAt").greaterThan(cutoffDate.timeIntervalSince1970))
.aggregate([Field("productId").countDistinct().as("uniqueProductViews")])
.execute()
Kemampuan yang Diperluas
Kueri Pipeline menghadirkan berbagai kemampuan baru, termasuk:
- Agregasi: Dukungan untuk fungsi agregasi baru (seperti
sum(...),min(...), dancount_distinct(...)) yang dikombinasikan dengan kolom pengelompokan arbitrer. - Pemfilteran Kompleks: Dukungan untuk 120 lebih fungsi baru untuk mengekspresikan pernyataan
where(...)yang kompleks secara arbitrer, termasukregex_match(...),add(...), danstr_contains(...), semuanya tanpa persyaratan indeks yang sulit. - Proyeksi/Pembacaan Parsial: Ambil sebagian dokumen dinamis menggunakan
select(...),remove_fields(...), dan banyak tahap manipulasi dokumen lainnya.
Dukungan Real-time dan Offline
Untuk memanfaatkan dukungan Real-time dan Offline, developer dapat menggunakan operasi Firestore Core di edisi Firestore Enterprise.
Integrasi Klien dan Alat
Edisi Enterprise menghadirkan fitur khusus untuk mengelola dan berinteraksi dengan Kueri Pipeline:
- Penjelasan dan profiling kueri: Anda dapat menggunakan hasil Query Explain untuk memahami jumlah unit baca atau tulis yang digunakan kueri dan menganalisis eksekusinya.
- Query Insights: Edisi Enterprise mendukung Query Insights yang membantu Anda menentukan tempat indeks dapat dibuat untuk meningkatkan performa dan efisiensi biaya dengan memberikan visibilitas terkait karakteristik performa kueri.
- Jenis indeks baru: Anda dapat membuat indeks khusus untuk edisi Enterprise, termasuk indeks sparse. Fitur ini juga mendukung pembuatan dan pengeditan indeks penelusuran vektor untuk database Enterprise.
Perbedaan antara Firestore Standard dan Firestore Enterprise
Perbedaan operasional utama antara operasi Core dan Pipeline terletak pada pengelolaan pengindeksan, yang secara langsung memengaruhi performa dan biaya.
| Firestore Standard - Operasi Core | Firestore Enterprise - Operasi Core dan Pipeline | |
| Persyaratan pengindeksan | Indeks diperlukan untuk kueri.
Indeks untuk setiap kolom dibuat secara otomatis, sementara kueri yang lebih kompleks mengandalkan indeks komposit atau indeks kelompok koleksi yang harus dikonfigurasi secara manual. |
Indeks tidak diperlukan, sehingga bersifat opsional untuk kueri.
Anda dapat menentukan indeks sesuai kebutuhan. Edisi Enterprise juga mendukung berbagai jenis indeks yang lebih luas, termasuk indeks unik dan sparse/non-sparse. |
| Risiko Performa | Kueri terindeks: Performa dan biaya disesuaikan dengan ukuran set hasil. |
Kueri tidak terindeks: Performa dan biaya disesuaikan dengan ukuran set data. Kueri terindeks: Performa dan biaya disesuaikan dengan ukuran set hasil. Sebaiknya gunakan alat Query Explain dan Query Insights untuk membuat indeks serta meningkatkan performa dan efisiensi biaya kueri Anda. |
| Implikasi Biaya Penyimpanan | Anda akan dikenai overhead penyimpanan dari indeks otomatis dan indeks komposit. | Anda akan menghemat biaya penyimpanan karena indeks tidak dibuat secara otomatis untuk setiap kolom. |
| Dasar Biaya | Dikenai biaya per operasi baca, tulis, dan hapus dokumen. | Dikenai biaya per Unit Baca (porsi 4 KB) dan Unit Tulis (porsi 1 KB). Penulisan entri indeks akan memakan kuota Unit Tulis.
Pelajari harga baru dengan beberapa contoh. |
| Aturan Keamanan | Aturan Keamanan melindungi koleksi dengan memverifikasi izin baca/tulis. | Aturan Keamanan melindungi koleksi dengan memverifikasi izin baca/tulis. Pelajari cara membuat model data untuk mendukung kueri pipeline dalam panduan Model Data. |