Method: projects.databases.documents.partitionQuery

Esegue il partizionamento di una query restituendo cursori di partizione che possono essere utilizzati per eseguire la query in parallelo. I cursori di partizione restituiti sono punti di suddivisione che possono essere utilizzati da documents.runQuery come punti di partenza/arrivo per i risultati della query.

Richiesta HTTP

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri del percorso

Parametri
parent

string

Obbligatoria. Il nome della risorsa padre. Nel formato: projects/{projectId}/databases/{databaseId}/documents. I nomi delle risorse del documento non sono supportati; è possibile specificare solo i nomi delle risorse di database.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione 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.
}
Campi
partitionCount

string (int64 format)

Il numero massimo di punti di partizione desiderato. Le partizioni possono essere restituite su più pagine di risultati. Il numero deve essere positivo. Il numero effettivo di partizioni restituite potrebbe essere inferiore.

Ad esempio, questo valore potrebbe essere impostato su uno in meno rispetto al numero di query parallele da eseguire o, durante l'esecuzione di un job di pipeline di dati, su uno in meno rispetto al numero di worker o istanze di calcolo disponibili.

pageToken

string

Il valore nextPageToken restituito da una chiamata precedente a documents.partitionQuery che può essere utilizzato per ottenere un insieme aggiuntivo di risultati. L'ordinamento tra i vari insiemi di risultati non è garantito. Pertanto, l'utilizzo di più insiemi di risultati richiederà l'unione dei diversi insiemi di risultati.

Ad esempio, due chiamate successive che utilizzano un pageToken potrebbero restituire:

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

Per ottenere un set di risultati completo ordinato rispetto ai risultati della query fornita a documents.partitionQuery, gli insiemi di risultati devono essere uniti: cursore A, cursore B, cursore M, cursore Q, cursore U, cursore W

pageSize

integer

Il numero massimo di partizioni da restituire in questa chiamata, soggetto a partitionCount.

Ad esempio, se partitionCount = 10 e pageSize = 8, la prima chiamata a documents.partitionQuery restituirà fino a 8 partizioni e nextPageToken se sono disponibili più risultati. Una seconda chiamata a documents.partitionQuery restituirà fino a 2 partizioni, per completare il totale di 10 specificate in partitionCount.

Campo di unione query_type. La query da partizionare. query_type può essere solo uno dei seguenti:
structuredQuery

object (StructuredQuery)

Una query strutturata. La query deve specificare la raccolta con tutti i discendenti ed essere ordinata in base al nome in ordine crescente. Altri filtri, Ordina per, limiti, offset e cursori di inizio e fine non sono supportati.

Campo di unione consistency_selector. La modalità di coerenza per questa richiesta. Se non viene configurato, il valore predefinito è elevata coerenza. consistency_selector può essere solo uno dei seguenti:
readTime

string (Timestamp format)

Legge i documenti così come erano al momento specificato.

Deve essere un timestamp con precisione in microsecondi risalente all'ultima ora oppure, se il recupero point-in-time è abilitato, può essere anche un timestamp di un minuto intero compreso negli ultimi 7 giorni.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

Corpo della risposta

La risposta per Firestore.PartitionQuery.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Campi
partitions[]

object (Cursor)

Risultati del partizionamento. Ogni partizione è un punto di suddivisione che può essere utilizzato da documents.runQuery come punto iniziale o finale per i risultati della query. Le richieste documents.runQuery devono essere effettuate con la stessa query fornita a questa richiesta documents.partitionQuery. I cursori di partizione verranno ordinati in base allo stesso ordine dei risultati della query forniti a documents.partitionQuery.

Ad esempio, se una richiesta documents.partitionQuery restituisce i cursori di partizione A e B, l'esecuzione delle tre query seguenti restituirà l'intero set di risultati della query originale:

  • query, endAt A
  • query, startAt A, endAt B
  • query, startAt B

Un risultato vuoto potrebbe indicare che la query ha un numero insufficiente di risultati per essere partizionata o che la query non è ancora supportata per il partizionamento.

nextPageToken

string

Un token di pagina che può essere utilizzato per richiedere un set aggiuntivo di risultati, fino al numero specificato da partitionCount nella richiesta documents.partitionQuery. Se vuoto, non ci sono altri risultati.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

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

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.