Method: projects.databases.documents.partitionQuery

Partycjonuje zapytanie przez zwrócenie kursorów partycji, których można używać do równoległego wykonywania zapytania. Zwrócone kursory partycji to punkty podziału, których można używać w documents.runQuery jako punktu początkowego i końcowego wyników zapytania.

Żądanie HTTP

POST https://firestore.googleapis.com/v1beta1/{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.

Wartość może na przykład być o 1 mniejsza niż liczba równoległych zapytań do wykonania lub o 1 mniej niż w przypadku uruchomienia zadania potoku danych.

pageToken

string

Wartość nextPageToken zwrócona z poprzedniego wywołania document.partitionQuery, która może zostać użyta do uzyskania dodatkowego zestawu wyników. Nie ma gwarancji kolejności różnych zestawów wyników. Dlatego używanie wielu zestawów wyników wymaga scalenia ich różnych zbiorów.

Na przykład dwa kolejne wywołania z użyciem parametru pageToken mogą zwrócić:

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

Aby uzyskać pełny zbiór wyników uporządkowany w odniesieniu do wyników zapytania dostarczonego w ramach zapytania document.partitionQuery, należy scalać zbiory wyników: 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 (określana jako partitionCount).

Jeśli na przykład partitionCount = 10, a pageSize = 8, pierwsze wywołanie metody document.partitionQuery zwróci maksymalnie 8 partycji i nextPageToken, jeśli będzie ich więcej. Drugie wywołanie metody document.partitionQuery zwróci maksymalnie 2 partycje (łącznie 10) w polu partitionCount.

Pole sumy query_type. Zapytanie do partycjonowania. query_type może być 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, limity, 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 być 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 precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

Sygnatura czasowa w formacie „Zulu” RFC3339 UTC 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ź dotycząca: 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 dla wyników zapytania. Żądania document.runQuery muszą być wysyłane z tym samym zapytaniem, które zostało wysłane w ramach tego żądania document.partitionQuery. Kursory partycji będą uporządkowane zgodnie z tą samą kolejnością co wyniki zapytania dostarczonego do document.partitionQuery.

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

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

Pusty wynik może oznaczać, że zapytanie ma zbyt mało wyników, aby go partycjonować, lub że zapytanie nie jest jeszcze obsługiwane w ramach partycjonowania.

nextPageToken

string

Token strony, który może być używany do żądania dodatkowego zbioru wyników do wartości 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 OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.