Method: projects.databases.documents.partitionQuery

Particiona una consulta devolviendo cursores de partición que se pueden usar para ejecutar la consulta en paralelo. Los cursores de partición devueltos son puntos de división que documents.runQuery puede utilizar como puntos de inicio/finalización de los resultados de la consulta.

solicitud HTTP

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

La URL utiliza la sintaxis de transcodificación gRPC .

Parámetros de ruta

Parámetros
parent

string

Requerido. El nombre del recurso principal. En el formato: projects/{projectId}/databases/{databaseId}/documents . No se admiten nombres de recursos de documentos; sólo se pueden especificar nombres de recursos de bases de datos.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación 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.
}
Campos
partitionCount

string ( int64 format)

El número máximo deseado de puntos de partición. Las particiones pueden devolverse en varias páginas de resultados. El número debe ser positivo. El número real de particiones devueltas puede ser menor.

Por ejemplo, esto se puede establecer en uno menos que el número de consultas paralelas que se ejecutarán o, al ejecutar un trabajo de canalización de datos, uno menos que el número de trabajadores o instancias informáticas disponibles.

pageToken

string

El valor nextPageToken devuelto por una llamada anterior a documents.partitionQuery que puede usarse para obtener un conjunto adicional de resultados. No hay garantías de pedido entre conjuntos de resultados. Por lo tanto, utilizar múltiples conjuntos de resultados requerirá fusionar los diferentes conjuntos de resultados.

Por ejemplo, dos llamadas posteriores utilizando un pageToken pueden devolver:

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

Para obtener un conjunto de resultados completo ordenado con respecto a los resultados de la consulta suministrada a documents.partitionQuery, los conjuntos de resultados deben fusionarse: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

pageSize

integer

El número máximo de particiones que se devolverán en esta llamada, sujeto a partitionCount .

Por ejemplo, si partitionCount = 10 y pageSize = 8, la primera llamada a documents.partitionQuery devolverá hasta 8 particiones y un nextPageToken si existen más resultados. Una segunda llamada a documents.partitionQuery devolverá hasta 2 particiones, para completar el total de 10 especificadas en partitionCount .

Campo de unión query_type . La consulta para particionar. query_type puede ser solo uno de los siguientes:
structuredQuery

object ( StructuredQuery )

Una consulta estructurada. La consulta debe especificar una colección con todos los descendientes y ordenarse por nombre de forma ascendente. No se admiten otros filtros, orden por orden, límites, compensaciones y cursores de inicio/fin.

consistency_selector del campo de unión. El modo de coherencia para esta solicitud. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
readTime

string ( Timestamp format)

Lee documentos tal como estaban en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

Una marca de tiempo en formato RFC3339 UTC "Zulu", con resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z" .

Cuerpo de respuesta

La respuesta para Firestore.PartitionQuery .

Si tiene éxito, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Campos
partitions[]

object ( Cursor )

Resultados de la partición. Cada partición es un punto de división que documents.runQuery puede utilizar como punto inicial o final para los resultados de la consulta. Las solicitudes de document.runQuery deben realizarse con la misma consulta proporcionada a esta solicitud de document.partitionQuery. Los cursores de partición se ordenarán según el mismo orden que los resultados de la consulta proporcionada a documents.partitionQuery.

Por ejemplo, si una solicitud document.partitionQuery devuelve los cursores de partición A y B, ejecutar las tres consultas siguientes devolverá el conjunto de resultados completo de la consulta original:

  • consulta, final en A
  • consulta, inicio en A, final en B
  • consulta, inicio en B

Un resultado vacío puede indicar que la consulta tiene muy pocos resultados para particionarse o que la consulta aún no es compatible con la partición.

nextPageToken

string

Un token de página que se puede utilizar para solicitar un conjunto adicional de resultados, hasta el número especificado por partitionCount en la solicitud document.partitionQuery. Si está en blanco, no hay más resultados.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

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

Para obtener más información, consulte Descripción general de la autenticación .