Omówienie operacji w potokach Firestore

Operacje potoków Firestore to główna funkcja Firestore w wersji Enterprise, która jest oparta na nowym mechanizmie zapytań, co znacznie zwiększa zakres możliwych zapytań. Operacje potoku Firestore wykorzystują elastyczną składnię zapytań i odrębną metodę indeksowania, w której indeksy są opcjonalne i nie są tworzone automatycznie, co umożliwia zaawansowane operacje pobierania danych na potrzeby aplikacji.

Funkcje operacji potoku Firestore

Wersja Enterprise Firestore i nowe operacje potokowe korzystają z nowego, zaawansowanego silnika zapytań, który eliminuje wiele dotychczasowych ograniczeń wersji Standard Firestore. Operacje potoków Firestore zapewniają ponad 120 nowych funkcji zapytań. Operacje potoku Firestore mają te możliwości:

Składnia kompozycyjna oparta na etapach

Zapytania potokowe są tworzone 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 wcześniej nie było możliwe.

Przykład poniżej pokazuje zapytanie potoku, które znajduje liczbę unikalnych identyfikatorów produktów wyświetlonych w ostatnim miesiącu:

guard let cutoffDate = Calendar.current.date(byAdding: .month, value: -1, to: Date()) else {
  return
}
let snapshot = try await db.pipeline()
  .collection("productViews")
  .where(Field("viewedAt").greaterThan(cutoffDate.timeIntervalSince1970))
  .aggregate([Field("productId").countDistinct().as("uniqueProductViews")])
  .execute()

Rozszerzone możliwości

Zapytanie Pipelines wprowadza wiele nowych funkcji, w tym:

  • Agregacje: obsługa nowych funkcji agregacji (np. sum(...), min(...)count_distinct(...)) w połączeniu z dowolnymi polami grupowania.
  • Zaawansowane filtrowanie: obsługa ponad 120 nowych funkcji do wyrażania dowolnie złożonych instrukcji where(...), w tym regex_match(...), add(...)str_contains(...), bez konieczności stosowania indeksów.
  • Odczyty częściowe / projekcje: pobieraj dynamiczne podzbiory dokumentów za pomocą funkcji select(...), remove_fields(...) i wielu innych etapów manipulacji dokumentami.

Obsługa w czasie rzeczywistym i offline

Aby korzystać z funkcji czasu rzeczywistego i offline, deweloperzy mogą używać podstawowych operacji Firestore w wersji Enterprise.

Integracja z klientem i narzędziami

Wersja Enterprise zawiera specjalistyczne funkcje do interakcji z zapytaniami dotyczącymi potoku i zarządzania nimi:

  • Wyjaśnianie i profilowanie zapytań: możesz używać wyników wyjaśnienia zapytania, aby dowiedzieć się, ile jednostek odczytu lub zapisu zużywa zapytanie, i przeanalizować jego wykonanie.
  • Statystyki zapytań: wersja Enterprise obsługuje statystyki zapytań, które pomagają określić, gdzie można utworzyć indeksy, aby zwiększyć wydajność i obniżyć koszty, zapewniając wgląd w charakterystykę wydajności zapytań.
  • Nowe typy indeksów: możesz tworzyć specjalistyczne indeksy dla wersji Enterprise, w tym indeksy rzadkie. Umożliwia też tworzenie i edytowanie indeksów wyszukiwania wektorowego w bazach danych Enterprise.

Różnice między Firestore w wersji Standard i Firestore w wersji Enterprise

Główna różnica operacyjna między operacjami podstawowymi a operacjami potokowymi polega na zarządzaniu indeksowaniem, które ma bezpośredni wpływ na wydajność i koszty.

Firestore Standard – podstawowe operacje Firestore Enterprise – operacje podstawowe i operacje potokowe
Wymagania dotyczące indeksowania Indeksy są wymagane w przypadku zapytań.

Indeksy poszczególnych pól są tworzone automatycznie, natomiast bardziej złożone zapytania korzystają z indeksów złożonych lub indeksów grup kolekcji, które należy skonfigurować ręcznie.

Indeksy nie są wymagane, dlatego w przypadku zapytań są opcjonalne.

Indeksy definiujesz w miarę potrzeb. Wersja Enterprise obsługuje też szerszy zakres typów indeksów, w tym indeksy niepełne/pełne i indeksy unikalne.

Ryzyko związane z wydajnością Zapytania indeksowane: wydajność i koszt zależą od rozmiaru zbioru wyników.

Zapytania bez indeksu: wydajność i koszty zależą od rozmiaru zbioru danych.

Zapytania indeksowane: wydajność i koszt zależą od rozmiaru zbioru wyników.

Zalecamy korzystanie z narzędzi Wyjaśnienie zapytania i Statystyki zapytań, aby tworzyć indeksy oraz zwiększać wydajność i obniżać koszty zapytań.

Wpływ na koszt przechowywania Indeksy automatyczne i złożone powodują dodatkowe obciążenie związane z przechowywaniem danych. Oszczędzasz na kosztach przechowywania, ponieważ indeksy nie są automatycznie tworzone dla każdego pola.
Baza kosztów Opłata jest naliczana za każdą operację odczytu, zapisuusuwania dokumentu. Opłaty są naliczane za jednostkę odczytu (w transzach po 4 KB) i jednostkę zapisu (w transzach po 1 KB). Zapisywanie wpisów indeksu zużywa jednostki zapisu.

Poznaj nowe ceny na podstawie przykładów.

Reguły zabezpieczeń Reguły zabezpieczeń chronią kolekcje, weryfikując uprawnienia do odczytu i zapisu. Reguły zabezpieczeń chronią kolekcje, weryfikując uprawnienia do odczytu i zapisu. Dowiedz się, jak modelować dane, aby obsługiwać zapytania potokowe, w przewodniku Model danych.