Method: projects.databases.documents.partitionQuery

Partitioniert eine Abfrage durch Rückgabe von Partitions-Cursorn, mit denen die Abfrage parallel ausgeführt werden kann. Die zurückgegebenen Partitions-Cursor sind Aufteilungspunkte, die von „documents.runQuery“ als Start-/Endpunkte für die Abfrageergebnisse verwendet werden können.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Pfadparameter

Parameter
parent

string

Erforderlich. Der Name der übergeordneten Ressource. Im Format: projects/{projectId}/databases/{databaseId}/documents. Dokumentressourcennamen werden nicht unterstützt. Es können nur Namen für Datenbankressourcen angegeben werden.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "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.
}
Felder
partitionCount

string (int64 format)

Die gewünschte maximale Anzahl von Partitionspunkten. Die Partitionen können über mehrere Ergebnisseiten hinweg zurückgegeben werden. Die Zahl muss positiv sein. Die tatsächliche Anzahl der zurückgegebenen Partitionen kann geringer sein.

Dieser kann beispielsweise auf ein weniger als die Anzahl der auszuführenden parallelen Abfragen oder beim Ausführen eines Datenpipelinejobs um eins weniger als die Anzahl der verfügbaren Worker oder Recheninstanzen festgelegt werden.

pageToken

string

Der nextPageToken-Wert, der von einem vorherigen Aufruf von „documents.partitionQuery“ zurückgegeben wurde und zum Abrufen eines zusätzlichen Satzes von Ergebnissen verwendet werden kann. Es gibt keine Garantien für die Reihenfolge zwischen den Ergebnissätzen. Wenn also mehrere Ergebnissätze verwendet werden, müssen die verschiedenen Ergebnissätze zusammengeführt werden.

Beispiel: Zwei aufeinanderfolgende Aufrufe mit einem pageToken können Folgendes zurückgeben:

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

Um einen vollständigen Ergebnissatz zu erhalten, sortiert nach den Ergebnissen der an „document.partitionQuery“ bereitgestellten Abfrage, müssen die Ergebnissätze zusammengeführt werden: Cursor A, Cursor B, Cursor M, Cursor Q, Cursor U, Cursor W.

pageSize

integer

Die maximale Anzahl von Partitionen, die in diesem Aufruf zurückgegeben werden sollen, vorbehaltlich partitionCount.

Wenn beispielsweise partitionCount = 10 und pageSize = 8 ist, gibt der erste Aufruf von „documents.partitionQuery“ bis zu acht Partitionen und einen nextPageToken zurück, wenn mehr Ergebnisse vorhanden sind. Beim zweiten Aufruf von „documents.partitionQuery“ werden bis zu 2 Partitionen zurückgegeben, um die in partitionCount angegebenen insgesamt 10 Partitionen zu erhalten.

Union-Feld query_type. Die zu partitionierende Abfrage. Für query_type ist nur einer der folgenden Werte zulässig:
structuredQuery

object (StructuredQuery)

Eine strukturierte Abfrage. In der Abfrage muss eine Sammlung mit allen Nachfolgerelementen angegeben und nach Namen aufsteigend sortiert werden. Andere Filter, Sortierungen nach, Grenzwerte, Offsets und Start-/End-Cursor werden nicht unterstützt.

Union-Feld consistency_selector. Der Konsistenzmodus für diese Anfrage. Wenn nichts festgelegt ist, wird standardmäßig „Strong Consistency“ verwendet. Für consistency_selector ist nur einer der folgenden Werte zulässig:
readTime

string (Timestamp format)

Liest Dokumente so, wie sie zum jeweiligen Zeitpunkt waren.

Dabei muss es sich um einen Zeitstempel mit einer Genauigkeit von Mikrosekunden innerhalb der letzten Stunde handeln. Wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist, kann zusätzlich ein Zeitstempel einer ganzen Minute innerhalb der letzten 7 Tage angegeben werden.

Ein Zeitstempel im Format RFC3339 UTC „Zulu“ mit Nanosekundenauflösung und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

Antworttext

Die Antwort für Firestore.PartitionQuery.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Felder
partitions[]

object (Cursor)

Partitionsergebnisse. Jede Partition ist ein Split-Point, der von „documents.runQuery“ als Start- oder Endpunkt für die Abfrageergebnisse verwendet werden kann. Die „documents.runQuery“-Anfragen müssen mit der Abfrage durchgeführt werden, die an diese „document.partitionQuery“-Anfrage gesendet wurde. Die Partitions-Cursor werden in der gleichen Reihenfolge sortiert wie die Ergebnisse der an „document.partitionQuery“ übergebenen Abfrage.

Wenn zum Beispiel eine „document.partitionQuery“-Anfrage die Partitionscursor A und B zurückgibt, wird bei der Ausführung der folgenden drei Abfragen der gesamte Ergebnissatz der ursprünglichen Abfrage zurückgegeben:

  • Abfrage, EndeA
  • Abfrage, StartAt A, endAt B
  • Abfrage, startAt B

Ein leeres Ergebnis kann darauf hindeuten, dass die Abfrage zu wenige Ergebnisse zum Partitionieren hat oder dass die Partitionierung der Abfrage noch nicht unterstützt wird.

nextPageToken

string

Ein Seitentoken, mit dem eine zusätzliche Ergebnismenge angefordert werden kann, bis zu der durch partitionCount in der „document.partitionQuery“-Anfrage angegebenen Anzahl. Wenn das Feld leer ist, gibt es keine weiteren Ergebnisse.

Autorisierungsbereiche

Erfordert einen der folgenden OAuth-Bereiche:

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

Weitere Informationen finden Sie in der Authentifizierungsübersicht.