Obsługa trybu natywnego w wersjach Standard i Enterprise usługi Firestore

Na tej stronie opisujemy różne interfejsy dostępne do uzyskiwania dostępu do danych w bazie danych w trybie natywnym.

Interfejsy operacji

Tryb natywny obsługuje 2 interfejsy dostępu do danych:

Operacje potoku

Nowszy interfejs zapytań dla Cloud Firestore. Operacje potoku obsługują składnię opartą na etapach. Operację tworzy się przez zdefiniowanie serii kolejnych etapów, które są wykonywane w określonej kolejności. Umożliwia to złożone operacje, takie jak filtrowanie wyników agregacji, które nie były wcześniej możliwe w oryginalnym interfejsie (operacje podstawowe).

Operacje potokowe są dostępne tylko w wersji Firestore Enterprise i znajdują się w fazie podglądu.

Główne operacje

Główne operacje to oryginalny interfejs Cloud Firestore. Operacje podstawowe używają składni łańcuchowej metod (.where(), .orderBy(), .get()) w odniesieniu do dokumentów lub kolekcji, aby pobierać dokumenty. Kolejność etapów zapytania jest domyślna, a obsługa agregacji jest ograniczona.

Podstawowe operacje są dostępne w wersjach Enterprise i Standard, ale domyślne indeksy różnią się w zależności od wersji. Więcej informacji znajdziesz w następnej sekcji.

Różnice w interfejsie między wersjami

Wraz z wprowadzeniem obsługi trybu natywnego w wersji Enterprise dostępne są zarówno operacje podstawowe Firestore, jak i operacje w potokach. W przypadku korzystania z operacji podstawowych w wersji dla firm nowe działanie indeksu i model cenowy usuwają wiele ograniczeń wersji standardowej.

Funkcja Wersja standardowa Wersja Enterprise
Obsługiwane operacje Ograniczone do operacji podstawowych Firestore. Obsługuje operacje Firestore Core i Pipeline oraz operacje zgodności Firestore z MongoDB.
Wymagania dotyczące indeksowania Wszystkie zapytania wymagają indeksów. Indeksy nie są wymagane w przypadku zapytań.
Tworzenie indeksu Indeksy automatyczne są tworzone dla pojedynczych pól. Indeksy złożone możesz tworzyć ręcznie. Nie są tworzone żadne automatyczne indeksy. Indeksami trzeba zarządzać ręcznie.
Zindeksowane pola Jeśli nie ma jeszcze pola __name__, jest ono automatycznie dodawane do zindeksowanych pól. Do indeksowanych pól __name__ nie jest dodawana automatycznie. Jeśli jest to ważne dla Twojej aplikacji, musisz wyraźnie określić __name__ w indeksowanych polach.
Normalizacja kolejności sortowania Klauzula order by zapytania jest normalizowana przez dodanie na końcu pól nierówności i pola __name__ (jeśli nie są jeszcze obecne). Gwarantuje to unikalne, deterministyczne uporządkowanie wyników niezależnie od tego, jakie inne pola znajdują się w klauzuli ORDER BY. Brak normalizacji kolejności sortowania. Kolejność sortowania, np. sort a ASC, gwarantuje tylko, że wyniki są sortowane według pola a. Cloud Firestore będzie używać dotychczasowych indeksów, aby zwracać wyniki w jak najbardziej efektywnej kolejności. Jeśli więc wartość a nie jest unikalna w zbiorze wyników, kolejność wyników może się różnić w zależności od zapytania, konfiguracji indeksu, strategii wykonywania itp. Aby zagwarantować unikalną, deterministyczną kolejność wyników, musisz dodać do kolejności sortowania unikalne pole, np. __name__.
Skuteczność i koszt zapytań Zapytania są zwykle wydajne ze względu na wymagania dotyczące indeksu. Optymalizuj wydajność zapytań i koszty, tworząc indeksy. Brakujące indeksy możesz zidentyfikować za pomocą funkcji Wyjaśnienie zapytania i Statystyki zapytań.

Zapytania bez indeksów mogą być niewydajne i kosztowne w miarę powiększania się zbioru danych, co wymaga monitorowania i dostrajania.

Koszt indeksowania Nie pobieramy opłat za zapisywanie indeksów, ponieważ są one automatyczne. Zapisywanie wpisów indeksu zużywa jednostki zapisu, gdy zapisywany jest powiązany dokument (1 jednostka zapisu na 1 KiB rozmiaru wpisu indeksu). Oszczędzasz na kosztach pamięci, ponieważ nie tworzysz wpisów indeksu dla każdego pola.
Model płatności (odczyty/zapisy/usunięcia) Opłata jest naliczana za każdy odczyt, zapis i usunięcie dokumentu. Opłata jest naliczana za odczyt i zapis (transzę). Odczyty są rozliczane w jednostkach odczytu (4 KiB). Zapisy i usunięcia są łączone w jednostki zapisu (w porcjach po 1 KiB).
Cena podstawowa (za milion)

Ceny są podane dla regionu us-central1.

Odczyty: 0,03 USD za 100 000 dokumentów (czyli 0,30 USD za milion).

Zapisywanie: 0,09 USD za 100 000 dokumentów (lub 0,90 USD za milion).

Usuwanie: 0,01 USD za 100 000 dokumentów (lub 0,10 USD za milion)

Jednostki odczytu: 0,05 USD za milion jednostek odczytu.

Jednostki zapisu: 0,26 USD za 1 mln jednostek zapisu. Ceny są zwykle niższe, jeśli dokumenty mają mniej niż 4 KiB, w porównaniu z kosztem standardowego odczytu.

Aktualizacje w czasie rzeczywistym

Ceny są podane dla regionu us-central1.

Aktualizacje w czasie rzeczywistym są wliczane do odczytów i rozliczane w cenie 0,03 USD za 100 tys.dokumentów. Aktualizacje w czasie rzeczywistym mają nowy, oddzielny SKU (jednostki aktualizacji w czasie rzeczywistym), za który opłata jest naliczana za każde 4 KiB. Aktualizacje w czasie rzeczywistym kosztują 0,30 USD za milion jednostek odczytu.

Dalsze kroki