Method: projects.databases.documents.partitionQuery

Partitionne une requête en renvoyant des curseurs de partition pouvant être utilisés pour exécuter la requête en parallèle. Les curseurs de partition renvoyés sont des points de division qui peuvent être utilisés par documents.runQuery comme points de départ/d'arrivée pour les résultats de la requête.

Requête HTTP

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

L'URL utilise la syntaxe de transcodage gRPC.

Paramètres de chemin d'accès

Paramètres
parent

string

Obligatoire. Nom de la ressource parente. Format à respecter: projects/{projectId}/databases/{databaseId}/documents. Les noms de ressources de document ne sont pas compatibles. Seuls les noms de ressources de base de données peuvent être spécifiés.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation 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.
}
Champs
partitionCount

string (int64 format)

Nombre maximal de points de partition souhaité. Les partitions peuvent être renvoyées sur plusieurs pages de résultats. Le nombre doit être positif. Le nombre réel de partitions renvoyées peut être inférieur.

Par exemple, elle peut être définie sur un de moins que le nombre de requêtes parallèles à exécuter, ou, dans le cas de l'exécution d'un job de pipeline de données, sur un de moins que le nombre de nœuds de calcul ou d'instances de calcul disponibles.

pageToken

string

Valeur nextPageToken renvoyée par un appel précédent à documents.partitionQuery, qui peut être utilisée pour obtenir un ensemble supplémentaire de résultats. Il n'existe aucune garantie de classement entre les ensembles de résultats. Par conséquent, l'utilisation de plusieurs ensembles de résultats nécessite la fusion des différents ensembles.

Par exemple, deux appels ultérieurs utilisant un pageToken peuvent renvoyer:

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

Pour obtenir un ensemble de résultats complet ordonné par rapport aux résultats de la requête fournie à documents.partitionQuery, vous devez fusionner les ensembles de résultats: curseur A, curseur B, curseur M, curseur Q, curseur U, curseur W

pageSize

integer

Nombre maximal de partitions à renvoyer dans cet appel, sous réserve de partitionCount.

Par exemple, si partitionCount = 10 et pageSize = 8, le premier appel à documents.partitionQuery renvoie jusqu'à 8 partitions et une nextPageToken s'il existe d'autres résultats. Un second appel à documents.partitionQuery renvoie jusqu'à 2 partitions pour effectuer les 10 partitions spécifiées dans partitionCount.

Champ d'union query_type. Requête à partitionner. query_type ne peut être qu'un des éléments suivants :
structuredQuery

object (StructuredQuery)

Une requête structurée La requête doit spécifier une collection avec tous les descendants et être classée par ordre croissant de nom. Les autres filtres, tris, limites, décalages et curseurs de début/fin ne sont pas acceptés.

Champ d'union consistency_selector. Mode de cohérence pour cette requête. Si ce champ n'est pas spécifié, la valeur par défaut est la cohérence forte. consistency_selector ne peut être qu'un des éléments suivants :
readTime

string (Timestamp format)

Lit les documents tels qu'ils étaient à l'époque.

Il doit s'agir d'un horodatage de précision de l'ordre de la microseconde au cours de la dernière heure. Si la récupération à un moment précis est activée, il peut également s'agir d'un horodatage d'une minute entière datant des sept derniers jours.

Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres après la virgule. Exemples: "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

Corps de la réponse

Réponse pour Firestore.PartitionQuery.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Champs
partitions[]

object (Cursor)

Partitionner les résultats. Chaque partition est un point de division qui peut être utilisé par documents.runQuery comme point de départ ou d'arrivée pour les résultats de la requête. Les requêtes documents.runQuery doivent être effectuées avec la même requête fournie à cette requête documents.partitionQuery. Les curseurs de partition seront classés dans le même ordre que les résultats de la requête fournie à documents.partitionQuery.

Par exemple, si une requête documents.partitionQuery renvoie les curseurs de partition A et B, l'exécution des trois requêtes suivantes renvoie l'ensemble de résultats complet de la requête d'origine:

  • requête, endAt A
  • requête, startAt A, finAt B
  • requête, startAt B

Un résultat vide peut indiquer que la requête a trop peu de résultats pour être partitionnée ou qu'elle n'est pas encore prise en charge pour le partitionnement.

nextPageToken

string

Jeton de page pouvant être utilisé pour demander un ensemble de résultats supplémentaire, jusqu'au nombre spécifié par partitionCount dans la requête documents.partitionQuery. Si ce champ est vide, il n'y a plus de résultats.

Champs d'application des autorisations

Nécessite l'un des champs d'application OAuth suivants :

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

Pour en savoir plus, consultez la page Présentation de l'authentification.