Method: projects.databases.documents.partitionQuery

Partycjonuje zapytanie, zwracając kursory partycji, których można używać do równoległego uruchamiania zapytania. Zwrócone kursory partycji to punkty podziału, które mogą być używane przez document.runQuery jako punkt początkowy i końcowy wyników zapytania.

Żądanie HTTP

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:partitionQuery

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

Parametry
parent

string

Wymagane. Nazwa zasobu nadrzędnego. W formacie: projects/{projectId}/databases/{databaseId}/documents. Nazwy zasobów dokumentów nie są obsługiwane. można podać tylko nazwy zasobów baz danych.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "partitionCount": string,
  "pageToken": string,
  "pageSize": integer,

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Pola
partitionCount

string (int64 format)

Żądana maksymalna liczba punktów partycji. Partycje mogą być zwracane na wielu stronach wyników. Liczba musi być liczbą dodatnią. Rzeczywista liczba zwróconych partycji może być mniejsza.

Na przykład można ustawić 1 mniej niż liczba równoległych zapytań do wykonania lub podczas uruchamiania zadania potoku danych wartość ta może być o 1 mniej niż liczba dostępnych instancji roboczych lub instancji obliczeniowych.

pageToken

string

Wartość nextPageToken zwrócona z poprzedniego wywołania metody document.partitionQuery, która może zostać użyta do uzyskania dodatkowego zestawu wyników. Nie ma gwarancji kolejności między zestawami wyników. Dlatego korzystanie z wielu zbiorów wyników wymaga scalania różnych zbiorów.

Na przykład dwa kolejne wywołania korzystające z parametru pageToken mogą zwrócić:

  • kursor B, kursor M, kursor Q
  • kursor A, kursor U, kursor W

Aby uzyskać pełny zestaw wyników uporządkowany według wyników zapytania dostarczonego w operacji document.partitionQuery, zestawy wyników powinny zostać scalone: kursor A, kursor B, kursor M, kursor Q, kursor U, kursor W

pageSize

integer

Maksymalna liczba partycji do zwrócenia w ramach tego wywołania (podlega ona zasadom partitionCount).

Na przykład jeśli partitionCount = 10, a pageSize = 8, pierwsze wywołanie metody document.partitionQuery zwróci do 8 partycji, a jeśli istnieje ich więcej, pojawi się nextPageToken. Drugie wywołanie metody document.partitionQuery zwróci maksymalnie 2 partycje, aby zakończyć ich sumę 10, które określono w zasadzie partitionCount.

Pole sumy query_type. Zapytanie do partycjonowania. query_type może mieć tylko jedną z tych wartości:
structuredQuery

object (StructuredQuery)

Uporządkowane zapytanie. Zapytanie musi określać kolekcję ze wszystkimi elementami podrzędnymi i być uporządkowane rosnąco według nazwy. Inne filtry, kolejność według kolejności, granice, przesunięcia ani kursory początku/końca nie są obsługiwane.

Pole sumy consistency_selector. Tryb spójności dla tego żądania. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może mieć tylko jedną z tych wartości:
readTime

string (Timestamp format)

Odczytuje dokumenty w takiej postaci, w jakiej były w danym momencie.

Musi to być sygnatura czasowa z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

Treść odpowiedzi

Odpowiedź dla: Firestore.PartitionQuery.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Pola
partitions[]

object (Cursor)

Wyniki partycjonowania. Każda partycja jest punktem podziału, który może być używany przez document.runQuery jako punkt początkowy lub końcowy wyników zapytania. Żądania document.runQuery muszą być wysyłane za pomocą tego samego zapytania, które zostało użyte w tym żądaniu. Kursory partycji zostaną uporządkowane w tej samej kolejności co wyniki zapytania dostarczonego do document.partitionQuery.

Jeśli na przykład żądanie document.partitionQuery zwraca kursory A i B partycji, uruchomienie tych 3 zapytań spowoduje zwrócenie całego zbioru wyników pierwotnego zapytania:

  • zapytanie, endAt A
  • zapytanie, startAt A, endAt B
  • zapytanie, startAt B

Pusty wynik może oznaczać, że zapytanie zawiera zbyt mało wyników do partycjonowania lub że zapytanie nie jest jeszcze obsługiwane do partycjonowania.

nextPageToken

string

Token strony, który może być używany do żądania dodatkowego zestawu wyników, maksymalnie do liczby określonej przez partitionCount w żądaniu document.partitionQuery. Jeśli pole jest puste, nie ma więcej wyników.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).