Firestore Pipeline işlemleri, olası sorgu aralığını önemli ölçüde genişletmek için yeni bir sorgu motoru üzerine kurulu olan Firestore Enterprise sürümünün temel bir özelliğidir. Firestore ardışık düzen işlemleri, esnek bir sorgu söz dizimi ve dizinlerin isteğe bağlı olduğu ve otomatik olarak oluşturulmadığı ayrı bir dizin oluşturma yöntemi kullanır. Bu sayede uygulamalar için gelişmiş veri alma işlemleri yapılabilir.
Firestore ardışık düzen işlemlerinin özellikleri
Firestore Enterprise sürümü ve yeni Pipeline işlemleri, Firestore Standard sürümünün mevcut sınırlamalarının çoğunu ortadan kaldıran yeni ve gelişmiş bir sorgu motoru kullanır. Firestore ardışık düzen işlemleri, 120'den fazla yeni sorgu özelliği sunar. Firestore Pipeline işlemleri aşağıdaki özelliklere sahiptir:
Aşamaya Dayalı Birleştirilebilir Söz Dizimi
Ardışık düzen sorguları, sırayla yürütülen bir dizi sıralı aşama tanımlanarak oluşturulur. Bu sayede, daha önce mümkün olmayan toplama sonucu üzerinde filtreleme gibi karmaşık işlemler yapılabilir.
Aşağıdaki örnekte, son bir ay içinde görüntülenen benzersiz ürün kimliklerinin sayısını bulan bir kanal sorgusu gösterilmektedir:
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()
Genişletilmiş Özellikler
Pipelines sorgusu, aşağıdakiler de dahil olmak üzere çok sayıda yeni özellik sunar:
- Toplama işlemleri: Rastgele gruplandırma alanlarıyla birlikte yeni toplama işlevleri (ör.
sum(...),min(...)vecount_distinct(...)) desteği. - Karmaşık Filtreleme:
where(...)ifadelerini (regex_match(...),add(...)vestr_contains(...)dahil) rastgele karmaşıklıkta ifade etmek için 120'den fazla yeni işlev desteği. Tüm bunlar, katı dizin şartları olmadan yapılabilir. - Kısmi Okumalar / Projeksiyonlar:
select(...),remove_fields(...)ve diğer birçok belge işleme aşamasını kullanarak belgelerin dinamik alt kümelerini alın.
Anında ve Çevrimdışı Destek
Geliştiriciler, Realtime ve Offline özelliklerinden yararlanmak için Firestore Enterprise sürümünde Firestore Core işlemlerini kullanabilir.
İstemci ve Araç Entegrasyonu
Enterprise sürümü, Pipeline sorgularıyla etkileşim kurmak ve bunları yönetmek için özel özellikler içerir:
- Sorgu açıklama ve profil oluşturma: Sorgunun kaç okuma veya yazma birimi kullandığını anlamak ve yürütülmesini analiz etmek için Sorgu Açıklama sonuçlarını kullanabilirsiniz.
- Sorgu analizleri: Enterprise sürümü, sorgu performans özelliklerine görünürlük sağlayarak performansı ve maliyeti iyileştirmek için dizinlerin nerede oluşturulabileceğini belirlemenize yardımcı olan sorgu analizlerini destekler.
- Yeni dizin türleri: Seyrek dizinler de dahil olmak üzere Enterprise sürümü için özel dizinler oluşturabilirsiniz. Ayrıca Enterprise veritabanları için vektör araması dizinleri oluşturmayı ve düzenlemeyi de destekler.
Firestore Standard ve Firestore Enterprise arasındaki farklar
Core ve Pipeline işlemleri arasındaki temel operasyonel fark, dizine ekleme yönetiminde yatar. Bu durum, performansı ve maliyeti doğrudan etkiler.
| Firestore Standard - Temel işlemler | Firestore Enterprise - Temel ve işlem hattı işlemleri | |
| Dizine ekleme koşulu | Sorgular için dizinler gereklidir.
Tek tek alanların dizinleri otomatik olarak oluşturulur. Daha karmaşık sorgular ise manuel olarak yapılandırılması gereken birleşik dizinleri veya koleksiyon grubu dizinlerini kullanır. |
Dizinler gerekli değildir ve bu nedenle sorgular için isteğe bağlıdır.
Dizinleri gerektiği şekilde tanımlarsınız. Enterprise sürümü, seyrek olmayan/seyrek ve benzersiz indeksler de dahil olmak üzere daha geniş bir indeks türü aralığını da destekler. |
| Performans Riski | Dizinlenmiş sorgular: Performans ve maliyet, sonuç kümenizin boyutuyla orantılıdır. |
Dizinlenmemiş sorgular: Performans ve maliyet, veri kümenizin boyutuyla birlikte ölçeklenir. Dizinlenmiş sorgular: Performans ve maliyet, sonuç kümenizin boyutuyla orantılıdır. Dizin oluşturmak ve sorgularınızın performansını ve maliyetini iyileştirmek için Sorgu Açıklama ve Sorgu Analizleri araçlarını kullanmanızı öneririz. |
| Depolama Maliyeti Etkisi | Otomatik dizinler ve birleşik dizinler nedeniyle depolama ek yükü oluşur. | Her alan için otomatik olarak dizin oluşturulmadığından depolama maliyetlerinden tasarruf edersiniz. |
| Maliyet Esası | Belge okuma, yazma ve silme işlemi başına ücret alınır. | Okuma birimi (4 KB'lık dilimler) ve yazma birimi (1 KB'lık dilimler) başına ücretlendirilir. Dizin girişleri yazma işlemleri yoğunluk birimi tüketir.
Yeni fiyatlandırma hakkında örnekler üzerinden bilgi edinin. |
| Güvenlik Kuralları | Güvenlik kuralları, okuma/yazma izinlerini doğrulayarak koleksiyonları korur. | Güvenlik kuralları, okuma/yazma izinlerini doğrulayarak koleksiyonları korur. Veri Modeli rehberinden, verilerinizi işlem hattı sorgularını destekleyecek şekilde nasıl modelleyeceğinizi öğrenebilirsiniz. |