Bir veritabanı seçin: Cloud Firestore veya Gerçek Zamanlı Veritabanı

Firebase, gerçek zamanlı veri senkronizasyonunu destekleyen iki bulut tabanlı, istemci tarafından erişilebilen veritabanı çözümü sunar:

  • Cloud Firestore, Firebase'in mobil uygulama geliştirmeye yönelik en yeni veritabanıdır. Yeni, daha sezgisel bir veri modeliyle Gerçek Zamanlı Veritabanının başarılarına dayanmaktadır. Cloud Firestore ayrıca Gerçek Zamanlı Veritabanından daha zengin, daha hızlı sorgular ve ölçeklendirmeler sunar.

  • Gerçek Zamanlı Veritabanı Firebase'in orijinal veritabanıdır. İstemciler arasında durumların gerçek zamanlı olarak senkronize edilmesini gerektiren mobil uygulamalar için verimli, düşük gecikmeli bir çözümdür.

Firebase hangi veritabanını önerir?

Veritabanı çözümü seçiminiz birçok faktöre bağlı olacaktır, ancak belirli özellikler söz konusu olduğunda hangi veritabanının sizin için uygun olduğu konusunda önerilerde bulunabiliriz.

Her iki çözüm de şunları sunar:

  • Dağıtılacak ve bakımı yapılacak sunucuların bulunmadığı, istemci öncelikli SDK'lar
  • Gerçek zamanlı güncellemeler
  • Ücretsiz katman, ardından kullandığınız kadar ödeyin

Kilit hususlar

Her iki veritabanında da ortak olan harika temel özelliklerin ötesinde, aşağıda listelenen hususlardan herhangi birinin veya tamamının uygulamalarınızın başarısını nasıl etkileyeceğini düşünün.

Veritabanının rolü
Uygulamam şunun için bir veritabanı kullanıyor:
Temel sorgulamayla öncelikli olarak verileri senkronize etme.
Gelişmiş sorgulama, sıralama ve işlemlere ihtiyacınız yoksa Realtime Database'i öneriyoruz.
Gelişmiş sorgulama, sıralama ve işlemler.
Örneğin e-ticaret uygulamalarında verilerinizle karmaşık etkileşimlere ihtiyacınız varsa Cloud Firestore'u öneririz.
Veriler üzerinde işlemler
Uygulamamın veritabanı kullanımı şuna benziyor...
Sık sık değişen birkaç GB veya daha az veri.
Uygulamanız dijital beyaz tahta uygulamasında olduğu gibi küçük güncellemeler akışı gönderecekse Gerçek Zamanlı Veritabanı'nı öneririz.
Değiştirildiğinden çok daha sık okunan yüzlerce GB'den TB'ye kadar veri.
Çok büyük veri kümeleri için ve toplu işlemlere sıklıkla ihtiyaç duyulduğunda Cloud Firestore'u öneririz.
Veri örneği
Verilerimi şu şekilde yapılandırmayı tercih ediyorum:
Basit bir JSON ağacı.
JSON yapılandırılmamış verileri için Gerçek Zamanlı Veritabanı'nı öneririz.
Koleksiyonlar halinde düzenlenmiş belgeler.
Yapılandırılmış belgeler ve koleksiyonlar için Cloud Firestore'u öneririz.
Kullanılabilirlik
Kullanılabilirlik ihtiyaçlarım...
%99,999'luk son derece yüksek çalışma süresi garantisi.
Örneğin e-ticaret uygulamalarında kullanılabilirlik son derece önemliyse Cloud Firestore'u öneririz.
En az %99,95 kesintisiz çalışma garantisi.
Çok yüksek ancak kritik olmayan kullanılabilirlik kabul edilebilir olduğunda Cloud Firestore veya Realtime Database'i öneririz.
Yerel verilere ilişkin çevrimdışı sorgular
Uygulamamın, bağlantısı sınırlı olan veya bağlantısı olmayan cihazlarda sorgu gerçekleştirmesi gerekecek...
Sıklıkla.
Kullanıcı çevrimdışıyken yerel veriler üzerinde gelişmiş sorgulama yetenekleri için Cloud Firestore'u öneriyoruz.
Nadiren ya da asla.
Kullanıcılarınızın sürekli çevrimiçi olmasını bekliyorsanız Cloud Firestore veya Realtime Database'i öneririz.

Dikkate alınması gereken diğer önemli noktalar nelerdir?

Önceki önemli hususları düşündükten sonra bir veritabanı seçmeye hazır olabilirsiniz. Hala artıları ve eksileri tartıyorsanız bu bölümde Cloud Firestore ile Realtime Database arasındaki diğer farklar ele alınmaktadır.

Veri örneği

Hem Gerçek Zamanlı Veritabanı hem de Cloud Firestore, NoSQL Veritabanlarıdır.

Gerçek Zamanlı Veritabanı Bulut Firestore
Verileri büyük bir JSON ağacı olarak depolar.
  • Basit verilerin saklanması çok kolaydır.
  • Karmaşık, hiyerarşik verilerin uygun ölçekte düzenlenmesi daha zordur.

Gerçek Zamanlı Veritabanı veri modeli hakkında daha fazla bilgi edinin.

Verileri belge koleksiyonları olarak saklar.
  • JSON'a çok benzeyen basit verilerin belgelerde saklanması kolaydır.
  • Karmaşık, hiyerarşik verilerin, belgeler içindeki alt koleksiyonlar kullanılarak uygun ölçekte düzenlenmesi daha kolaydır.
  • Daha az denormalizasyon ve veri düzleştirme gerektirir.

Cloud Firestore veri modeli hakkında daha fazla bilgi edinin.

Gerçek zamanlı ve çevrimdışı destek

Her ikisinin de mobil öncelikli, gerçek zamanlı SDK'ları var ve her ikisi de çevrimdışı kullanıma hazır uygulamalar için yerel veri depolamayı destekliyor.

Gerçek Zamanlı Veritabanı Bulut Firestore
Apple ve Android istemcileri için çevrimdışı destek. Apple, Android ve web istemcileri için çevrimdışı destek.

Mevcudiyet

Bir müşterinin ne zaman çevrimiçi veya çevrimdışı olduğunu bilmek yararlı olabilir. Firebase Gerçek Zamanlı Veritabanı, istemci bağlantı durumunu kaydedebilir ve istemcinin bağlantı durumu her değiştiğinde güncelleme sağlayabilir.

Gerçek Zamanlı Veritabanı Bulut Firestore
Varlık desteklendi. Yerel olarak desteklenmiyor. Cloud Functions'ı kullanarak Cloud Firestore ve Realtime Database'i senkronize ederek Realtime Database'in varlık desteğinden yararlanabilirsiniz. Bkz. Cloud Firestore'da varlık oluşturma .

Sorgulama

Sorgular aracılığıyla her iki veritabanından da verileri alın, sıralayın ve filtreleyin.

Gerçek Zamanlı Veritabanı Bulut Firestore
Sınırlı sıralama ve filtreleme işlevine sahip derin sorgular.
  • Sorgular bir özelliği sıralayabilir veya filtreleyebilir ancak her ikisini birden yapamaz.
  • Sorgular varsayılan olarak derindir: her zaman alt ağacın tamamını döndürürler.
  • Sorgular, JSON ağacındaki bireysel yaprak düğüm değerlerine kadar herhangi bir ayrıntı düzeyindeki verilere erişebilir.
  • Sorgular dizin gerektirmez; ancak veri kümeniz büyüdükçe belirli sorguların performansı düşer.
Bileşik sıralama ve filtrelemeyle dizine alınmış sorgular.
  • Filtreleri zincirleyebilir ve bir özellikteki filtreleme ile sıralamayı tek bir sorguda birleştirebilirsiniz.
  • Sorgular sığdır: Yalnızca belirli bir koleksiyon veya koleksiyon grubundaki belgeleri döndürürler ve alt koleksiyon verilerini döndürmezler.
  • Sorgular her zaman belgelerin tamamını döndürmelidir.
  • Sorgular varsayılan olarak dizine eklenir: Sorgu performansı, veri kümenizin değil, sonuç kümenizin boyutuyla orantılıdır.

Yazmalar ve işlemler

Gerçek Zamanlı Veritabanı Bulut Firestore
Temel yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemleriyle veri yazın .
  • İşlemler belirli bir veri alt ağacında atomiktir.
Gelişmiş yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemlerinin yanı sıra dizi ve sayısal operatörler gibi gelişmiş dönüşümler aracılığıyla veri işlemlerini yazın .
  • İşlemler, veritabanının herhangi bir bölümündeki verileri atomik olarak okuyabilir ve yazabilir.

Güvenilirlik ve performans

Gerçek Zamanlı Veritabanı Bulut Firestore
Gerçek Zamanlı Veritabanı bölgesel bir çözümdür.
  • Bölgesel konfigürasyonlarda mevcuttur. Veritabanları bir bölgedeki bölgesel kullanılabilirlikle sınırlıdır.
  • Son derece düşük gecikme süresi, sık durum senkronizasyonu için ideal seçenek.
Hizmet Düzeyi Sözleşmesinde Gerçek Zamanlı Veritabanı performansı ve güvenilirlik özellikleri hakkında daha fazla bilgi edinin.
Cloud Firestore, otomatik olarak ölçeklenen bölgesel ve çok bölgeli bir çözümdür.
  • Verilerinizi farklı bölgelerdeki birden fazla veri merkezinde barındırarak küresel ölçeklenebilirlik ve güçlü güvenilirlik sağlar.
  • Dünya çapında bölgesel veya çok bölgeli konfigürasyonlarda mevcuttur.
Hizmet Düzeyi Sözleşmesinde Cloud Firestore performansı ve güvenilirlik özellikleri hakkında daha fazla bilgi edinin.

Ölçeklenebilirlik

Gerçek Zamanlı Veritabanı Bulut Firestore
Ölçeklendirme parçalamayı gerektirir.
  • Tek bir veritabanında yaklaşık 200.000 eşzamanlı bağlantıya ve 1.000 yazma/saniyeye kadar ölçeklendirin. Bunun ötesine ölçeklendirmek, verilerinizin birden fazla veritabanında parçalanmasını gerektirir.
  • Bireysel veri parçalarına yazma hızlarında yerel sınır yoktur.
Ölçeklendirme otomatiktir.
  • Tamamen otomatik olarak ölçeklenir. Şu anda ölçeklendirme sınırları yaklaşık 1 milyon eşzamanlı bağlantı ve 10.000 yazma/saniyedir. Gelecekte bu limitleri artırmayı planlıyoruz.
  • Bireysel belgelere veya dizinlere yazma hızları üzerinde sınırlamalar vardır.

Güvenlik

Gerçek Zamanlı Veritabanı Bulut Firestore
Yetkilendirme ve doğrulamayı ayıran basamaklı kurallar dili. Yetkilendirme ve doğrulamayı birleştiren basamaksız kurallar.
  • Cloud Firestore Güvenlik Kuralları ile güvence altına alınan mobil SDK'lardan okuma ve yazma.
  • Kimlik ve Erişim Yönetimi (IAM) tarafından güvenliği sağlanan sunucu SDK'larından okur ve yazar.
  • Joker karakter kullanmadığınız sürece kurallar basamaklandırılmaz.
  • Kurallar sorguları kısıtlayabilir: Bir sorgunun sonuçları kullanıcının erişemediği verileri içeriyorsa sorgunun tamamı başarısız olur.

Fiyatlandırma

Her iki çözüm de Spark ve Blaze fiyatlandırma planlarında mevcuttur.

Gerçek Zamanlı Veritabanı Bulut Firestore
Yalnızca bant genişliği ve depolama için ücret alınır, ancak daha yüksek bir ücret alınır.

Gerçek Zamanlı Veritabanı fiyatlandırma planları hakkında daha fazla bilgi edinin.

Öncelikle veritabanınızda gerçekleştirilen işlemlere (okuma, yazma, silme) ve daha düşük bir oranda bant genişliğine ve depolamaya göre ücretlendirilir.

Cloud Firestore, sizin için uygun olan maliyetleri aşmadığınızdan emin olmak amacıyla App Engine projeleri için günlük harcama sınırlarını destekler.

Cloud Firestore fiyatlandırma planları hakkında daha fazla bilgi edinin.

Cloud Firestore ve Gerçek Zamanlı Veritabanını Kullanma

Her iki veritabanını da aynı Firebase uygulaması veya projesinde kullanabilirsiniz. Her iki NoSQL veritabanı da aynı türdeki verileri depolayabilir ve istemci kitaplıkları benzer şekilde çalışır. Uygulamanızda her iki veritabanını da kullanmaya karar verirseniz yukarıda belirtilen farklılıkları aklınızda bulundurun.

Hem Realtime Database hem de Cloud Firestore'da bulunan özellikler hakkında daha fazla bilgi edinin.

Bir veritabanı seçmeye hazır mısınız?

Umarız bu karşılaştırma Firebase veritabanı çözümüne karar vermenize yardımcı olmuştur. Artık Firebase projelerinize nasıl veritabanı ekleyeceğinizi öğrenebilirsiniz.