Method: projects.databases.documents.partitionQuery

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

Requête HTTP

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

L'URL utilise la syntaxe de transcodage gRPC .

Paramètres du chemin

Paramètres
parent

string

Requis. Le nom de la ressource parent. Au format : projects/{projectId}/databases/{databaseId}/documents . Les noms de ressources de document ne sont pas pris en charge ; seuls les noms de ressources de base de données peuvent être spécifiés.

Corps de la demande

Le corps de la requête contient des données avec 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.
}
Des champs
partitionCount

string ( int64 format)

Le nombre maximum souhaité de points de partition. 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, cela peut être défini sur une de moins que le nombre de requêtes parallèles à exécuter, ou, lors de l'exécution d'une tâche de pipeline de données, sur une 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 de résultats supplémentaire. Il n'y a aucune garantie de classement entre les ensembles de résultats. Ainsi, l’utilisation de plusieurs ensembles de résultats nécessitera la fusion des différents ensembles de résultats.

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 jeu de résultats complet ordonné par rapport aux résultats de la requête fournie à documents.partitionQuery, les jeux de résultats doivent être fusionnés : curseur A, curseur B, curseur M, curseur Q, curseur U, curseur W.

pageSize

integer

Nombre maximum de partitions à renvoyer dans cet appel, soumis à partitionCount .

Par exemple, si partitionCount = 10 et pageSize = 8, le premier appel à documents.partitionQuery renverra jusqu'à 8 partitions et un nextPageToken s'il existe davantage de résultats. Un deuxième appel à documents.partitionQuery renverra jusqu'à 2 partitions, pour compléter le total de 10 spécifié dans partitionCount .

Champ d'union query_type . La 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 nom croissant. Les autres filtres, tris, limites, décalages et curseurs de début/fin ne sont pas pris en charge.

Champ d'union consistency_selector . Le mode de cohérence pour cette requête. S’il n’est pas défini, la cohérence est forte par défaut. consistency_selector ne peut être que l'un des éléments suivants :
readTime

string ( Timestamp format)

Lit les documents tels qu'ils étaient à un moment donné.

Il doit s'agir d'un horodatage précis à la microseconde au cours de la dernière heure, ou si la récupération ponctuelle est activée, il peut également s'agir d'un horodatage d'une minute entière au cours des 7 derniers jours.

Un horodatage au format RFC3339 UTC "Zulu", avec une résolution en nanosecondes et jusqu'à neuf chiffres fractionnaires. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z" .

Corps de réponse

La réponse pour Firestore.PartitionQuery .

En cas de succès, le corps de la réponse contient des données avec la structure suivante :

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

object ( Cursor )

Résultats des partitions. Chaque partition est un point de partage qui peut être utilisé par documents.runQuery comme point de départ ou de fin 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 selon 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 renverra l'intégralité du jeu de résultats de la requête d'origine :

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

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

nextPageToken

string

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

Portées des autorisations

Nécessite l'une des étendues OAuth suivantes :

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

Pour plus d'informations, consultez la Présentation de l'authentification .