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 w potokach

Nowszy interfejs zapytań w Cloud Firestore. Operacje w potokach obsługują składnię opartą na etapach. Operację tworzysz, definiując serię kolejnych etapów, które są wykonywane w określonej kolejności. Umożliwia to wykonywanie złożonych operacji, takich jak filtrowanie według wyniku agregacji, co wcześniej nie było możliwe w oryginalnym interfejsie (operacje podstawowe).

Operacje w potokach są dostępne tylko w wersji Firestore Enterprise i są w fazie wersji zapoznawczej.

Operacje podstawowe

Operacje podstawowe to oryginalny interfejs Cloud Firestore. Operacje podstawowe używają składni łańcuchowej (.where(), .orderBy(), .get()) w odniesieniach do dokumentów lub kolekcji w celu pobierania dokumentów. Kolejność etapów zapytania jest domyślna, a obsługa agregacji jest ograniczona.

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

Różnice w interfejsach 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 Enterprise nowe zachowanie indeksów i model cenowy eliminują wiele ograniczeń wersji Standard.

Funkcja Wersja Standard Wersja Enterprise
Obsługiwane operacje Ograniczone do operacji podstawowych Firestore. Obsługuje operacje podstawowe Firestore i operacje w potokach oraz operacje zgodności Firestore z MongoDB.
Wymagania dotyczące indeksowania Wszystkie zapytania wymagają indeksów. Indeksy nie są wymagane w przypadku zapytań.
Tworzenie indeksów W przypadku pojedynczych pól tworzone są indeksy automatyczne. Możesz ręcznie utworzyć indeksy złożone. Nie są tworzone żadne indeksy automatyczne. Indeksami trzeba zarządzać ręcznie.
Pola indeksowane Jeśli pole __name__ nie jest jeszcze obecne, jest automatycznie dołączane do pól indeksowanych. Pole __name__ nie jest automatycznie dołączane do pól indeksowanych. Jeśli jest to ważne dla Twojej aplikacji, musisz wyraźnie określić pole __name__ w polach indeksowanych.
Normalizacja kolejności sortowania Klauzula order by zapytania jest normalizowana przez dołączenie 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ą posortowane według pola a. Cloud Firestore użyje Twoich dotychczasowych indeksów, aby zwrócić wyniki w najbardziej efektywny sposób. Jeśli więc pole a nie jest unikalne w zbiorze wyników, kolejność wyników może się różnić w zależności od konfiguracji indeksu, strategii wykonywania itp. Aby zagwarantować unikalne, deterministyczne uporządkowanie wyników, musisz dodać do kolejności sortowania unikalne pole, np. __name__.
Skuteczność i koszt zapytań Zapytania są na ogół skuteczne ze względu na wymagania dotyczące indeksów. Optymalizuj skuteczność i koszty zapytań, tworząc indeksy. Brakujące indeksy możesz zidentyfikować za pomocą narzędzi Query Explain i Statystyki zapytań.

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

Koszt narzutu indeksowania Nie pobieramy opłat za zapisy indeksów, ponieważ indeksy są automatyczne. Zapisywanie wpisów indeksu zużywa jednostki zapisu podczas zapisywania powiązanego dokumentu (1 jednostka zapisu na 1 KiB rozmiaru wpisu indeksu). Dzięki temu, że nie tworzysz wpisów indeksu dla każdego pola, oszczędzasz na kosztach miejsca na dane.
Model płatności (odczyty, zapisy, usuwanie) Opłaty są naliczane za odczyt, zapis i usunięcie dokumentu. Opłaty są naliczane za odczyt i zapis (transza). Odczyty są rozliczane w jednostkach odczytu (transze po 4 KiB). Zapisy i usuwanie są łączone w jednostki zapisu (transze po 1 KiB).
Ceny podstawowe (za milion)

Podane ceny dotyczą regionu us-central1

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

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

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

Jednostki odczytu: 0,05 USD za 1 mln jednostek odczytu.

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

Aktualizacje w czasie rzeczywistym

Podane ceny dotyczą regionu us-central1

Aktualizacje w czasie rzeczywistym są wliczone w cenę i rozliczane jako odczyty w cenie 0,03 USD za 100 tys.dokumentów. Aktualizacje w czasie rzeczywistym mają nowy, osobny kod SKU (jednostki aktualizacji w czasie rzeczywistym), za który opłaty są naliczane za transzę 4 KiB. Aktualizacje w czasie rzeczywistym kosztują 0,30 USD za milion jednostek odczytu.

Dalsze kroki