Realtime vs Cloud Firestore: którą bazę danych Firebase wybrać
Opublikowany: 2018-10-12Historia sięga do bazy danych Firebase niedaleko. Założona jako platforma do tworzenia aplikacji mobilnych i internetowych, Firebase powstała w 2011 roku, a następnie w 2014 została przejęta przez giganta technologicznego Google i jej los się zmienił.
Wyprzedzając historię ewolucji Firebase, w ciągu jednego roku od przejęcia przez Google, został on połączony z Divshot i od tego czasu stał się zunifikowaną platformą dla programistów mobilnych.
Firebase integruje się teraz z różnymi innymi usługami Google, aby oferować programistom szersze produkty i większą skalę. W rzeczywistości korzyści, jakie oferuje, sprawiają, że Firebase dla startupów jest procesem zgodnym z trendem.
Czym więc jest baza danych Firebase? Firebase to BaaS, czyli Backend jako usługa. Korzystając z Produktów dostarczanych przez Firebase, nie tylko programiści Mobile mogą tworzyć wysokiej jakości aplikacje. Firma Google wprowadziła również kilka nowych funkcji dla internautów Firebase.
Istnieją dwa produkty Firebase, które umożliwiają zbudowanie wszystkich wspomnianych wcześniej aplikacji. Firestore w czasie rzeczywistym i w chmurze.
Realtime to ugruntowany produkt bazy danych Google Firebase i Cloud Firestore, choć obiecuje lepsze technologie, wciąż znajduje się w fazie testów beta.
Według Google :
Baza danych czasu rzeczywistego to oryginalna baza danych Firebase. Jest to wydajne i mało opóźnione rozwiązanie dla aplikacji mobilnej, które wymaga zsynchronizowania stanów między klientami w czasie rzeczywistym.
Cloud Firestore to nowa flagowa baza danych Firebase do tworzenia aplikacji mobilnych . Poprawia sukcesy Bazy Danych Czasu Rzeczywistego dzięki nowemu, bardziej intuicyjnemu modelowi danych. Cloud Firestore oferuje również bogatsze, szybsze zapytania i lepsze skalowanie niż Baza danych czasu rzeczywistego.
Zanim przejdziemy do poszczególnych właściwości Bazy danych czasu rzeczywistego i Cloud Firestore, przyjrzyjmy się zaletom i wadom korzystania z bazy danych Firebase w kolejnym projekcie:
Zalety bazy danych Firebase:
Jeśli przyjrzymy się liście powodów, dla których należy używać bazy danych Firebase jako kompleksowej bazy danych dla całego rozwoju aplikacji mobilnych i internetowych , zobaczymy, dlaczego Firebase db stał się tak wielkim hitem w branży tworzenia aplikacji mobilnych.
- Łatwa migracja danych — ostatnie zmiany dały programistom narzędzia do łatwej migracji danych.
- Nie jest wymagana dodatkowa wiedza — do działania w bazie danych Firebase wymagana jest prawie zerowa wiedza na temat devOps lub sysadmin.
- Walidacja różnych typów danych – mimo że struktura bazy danych Firebase jest bezschematowa, nadal ma podstawową możliwość walidacji różnych typów danych.
- Kompleksowe narzędzie – jest to wszechstronne narzędzie i jedyne, którego koniecznie potrzebujesz do zaplecza małej aplikacji mobilnej.
- Łatwiejszy w użyciu – poziom trudności użytkowania jest nieco powyżej średniej, ale jest łatwiejszy niż większość innych systemów, jeśli chodzi o integrację z analityką i monitorowaniem awarii
- Bezpłatne użytkowanie – jest bezpłatne w początkowej fazie, więc programiści, którzy wypróbowują go po raz pierwszy, nie muszą się martwić o dokonanie dużej początkowej inwestycji
- Biblioteki bogatego kodu – Wszystkie biblioteki kodu w różnych językach programowania są podobne i dobrze utrzymane również dla nowicjuszy.
- Struktura danych JSON – Struktura danych to JSON, który doskonale mapuje się z UI JavaScript.
- Szybki rozwój – Uzyskanie aplikacji stworzonej od podstaw jest bardzo szybkie – uwierzytelnianie, poczta e-mail, wersjonowanie, hosting, monitorowanie, DevOps, uptime.
- Łatwe przesyłanie strumieniowe – Funkcjonowanie w czasie rzeczywistym lub aktualizacje strumieniowe są bardzo łatwe.
Porównajmy teraz bazę danych Realtime i Cloud Firestore, aby lepiej zrozumieć, kiedy użyć której. Cloud firestore jest nadal w fazie testów beta i wygląda i działa w bardziej obiecujący sposób niż baza danych Realtime. W tym porównaniu zobaczymy, w jaki sposób te dwie bazy danych różnią się od siebie i kto wygrywa bazę danych czasu rzeczywistego vs cloud firestore.
Model danych
- Baza danych czasu rzeczywistego przechowuje dane jako jedno duże drzewo JSON, co bardzo ułatwia przechowywanie prostych danych, ale dane złożone lub hierarchiczne są trudniejsze do zorganizowania na dużą skalę.
- Z kolei Cloud Firestore przechowuje dane w postaci dokumentów, które są zorganizowane w kolekcje. W tym przypadku przechowywanie prostych danych jest podobne do JSON i są one przechowywane w dokumentach. Natomiast złożone lub hierarchiczne dane nie są łatwiejsze do uporządkowania na dużą skalę za pomocą podzbiorów w dokumentach. I ogólnie wymaga mniejszej denormalizacji i spłaszczania danych.
Wsparcie w czasie rzeczywistym i offline
- Baza danych czasu rzeczywistego zapewnia obsługę offline tylko dla klientów mobilnych z systemem Android i iOS.
- Z drugiej strony Cloud Firestore zapewnia obsługę offline dla Androida, iOS i klientów internetowych.
Zapytania
- Baza danych czasu rzeczywistego zapewnia głębokie zapytania z ograniczoną funkcjonalnością sortowania i filtrowania, w której programiści mogą sortować lub filtrować właściwość w jednym zapytaniu. Wszystkie zapytania są domyślnie głębokie, to znaczy zawsze zwracają całe poddrzewo.
- Indeksy Cloud Firestore wysyłają zapytania ze złożonym sortowaniem i filtrowaniem, dzięki czemu programiści mogą łączyć filtrowanie i sortowanie według właściwości w jednym zapytaniu. Możliwe jest również pisanie płytkich zapytań dla podkolekcji, co oznacza, że programiści mogą wysyłać zapytania w obrębie dokumentu zamiast całej kolekcji lub całego dokumentu. Nie tylko to, ale zapytania są domyślnie indeksowane, co oznacza, że wydajność zapytań jest proporcjonalna do rozmiaru zbioru wyników, a nie zbioru danych.
Transakcje
- W bazie danych czasu rzeczywistego występują podstawowe operacje zapisu i transakcji. Zapis danych działa jako pojedyncza operacja, a transakcje wymagają wywołania zwrotnego zakończenia w natywnych pakietach SDK.
- Cloud Firestore umożliwia operacje zapisu i transakcji Atomic. Grupuje operacje i automatycznie je uzupełnia. Ponadto transakcje automatycznie powtarzają się, dopóki nie zostaną zakończone.
Wydajność i niezawodność
- Baza danych czasu rzeczywistego to dojrzały produkt. Posiada stabilność wielokrotnie wypróbowanego i przetestowanego prawdziwego produktu. Ma również bardzo małe opóźnienia, więc jest dobrą opcją do częstej synchronizacji stanu. Chociaż bazy danych są ograniczone do dostępności strefowej w jednym regionie.
- Nie można jeszcze zmierzyć wydajności Cloud Firestore , ponieważ wciąż znajduje się w fazie beta. A stabilność produktu beta nie jest taka sama jak w przypadku w pełni wprowadzonego produktu. Ale jeśli chodzi o niezawodność, Cloud Firestore przechowuje wszystkie Twoje dane w wielu centrach danych w różnych regionach, zapewniając globalną skalowalność i wysoką niezawodność. Teoretycznie zawsze, gdy Cloud Firestore wychodzi z wersji beta, będzie miał większą niezawodność niż baza danych Realtime.
Skalowalność
- W bazie danych czasu rzeczywistego skalowanie wymaga shardingu. Mówiąc prościej, skalowanie do około 100 000 jednoczesnych połączeń i 1000 zapisów na sekundę w jednej bazie danych, a poza tym wymaga podzielenia danych na fragmenty w wielu bazach danych.
- Gdy Cloud Firestore wyjdzie z wersji beta, skalowanie będzie automatyczne, a programiści nie będą musieli dzielić swoich danych między wieloma instancjami.
Bezpieczeństwo
- Baza danych czasu rzeczywistego ma reguły kaskadowe, które wymagają oddzielnej walidacji. Reguły bazy danych Firebase są tutaj jedynymi opcjami bezpieczeństwa, a programiści muszą osobno weryfikować dane za pomocą reguły „Weryfikuj”.
- Cloud Firestore oferuje prostsze i skuteczniejsze zabezpieczenia mobilnych, internetowych i serwerowych pakietów SDK, które wykorzystują zarządzanie tożsamością i dostępem (IAM). Walidacja danych odbywa się również automatycznie. Ponadto reguły mogą ograniczać zapytania, co oznacza, że jeśli wyniki zapytania mogą zawierać dane, do których programista nie ma dostępu, całe zapytanie kończy się niepowodzeniem.
cennik
- Baza danych czasu rzeczywistego pobiera opłaty tylko za przepustowość i pamięć masową, ale za wyższą cenę.
- Z drugiej strony Cloud Firestore pobiera opłaty głównie za operacje wykonywane w Twojej bazie danych (odczyt, zapis, usuwanie) i przy niższej stawce, przepustowości i pamięci. Obsługuje również dzienne limity wydatków w projektach Google App Engine.
Nadal zastanawiasz się, jak działa Firebase? Cofnijmy podsumowanie tego, co wiedzieliśmy w powyższym artykule.
Kiedy używać Bazy Danych Czasu Rzeczywistego:
- Jeśli Twoje dane są proste, a nie złożone lub hierarchiczne
- Jeśli potrzebujesz skalować poniżej 100 000 jednoczesnych połączeń, 1000 zapisów na sekundę w jednej bazie danych
- Gdy potrzebujesz bazy danych, która pobiera opłaty za całkowitą przepustowość i pamięć masową, a nie za poszczególne wykonywane operacje.
Kiedy używać bazy danych Cloud Firestore:
- Jeśli Twoje dane są złożone lub hierarchiczne
- Jeśli Twoje dane są skalowane ponad 100 000 jednoczesnych połączeń
- Jeśli potrzebujesz bardziej precyzyjnego limitu wydatków i bazy danych, która pobiera opłaty głównie od 1, to PicCollage, Fabulous, Shazam i Skyscanner i wszyscy możemy zgodzić się, że działają pomyślnie.
Podsumowując, modele db Firebase mają to dla nich dobrze. Firebase w czasie rzeczywistym działa z powodzeniem od lat, a w zeszłym roku wraz z wydaniem wersji beta Cloud Firestore, deweloperzy aplikacji mobilnych i firmy zajmujące się tworzeniem aplikacji mają lepsze rzeczy.