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 wykonywanie złożonych operacji, takich jak filtrowanie wyników agregacji, co nie było 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łówna działalność
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 Firestore Core, jak i Pipeline. W przypadku korzystania z operacji podstawowych w wersji Enterprise nowe działanie indeksu i model cenowy usuwają wiele ograniczeń wersji Standard.
| Funkcja | Wersja standardowa | Wersja Enterprise |
| Obsługiwane operacje zapytań | Ograniczone do operacji podstawowych Firestore. | Obsługuje operacje Firestore Core i Pipeline oraz operacje Firestore zgodne 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. |
| 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 | Zapisywanie indeksów jest bezpłatne, 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 (w transzach po 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). Usunięcia: 0,01 USD za 100 000 dokumentów (lub 0,10 USD za milion) |
Odczyt jednostek: 0,05 USD za milion odczytanych jednostek.
Zapis jednostek: 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 odczytu standardowego. |
| 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. |