Method: projects.databases.documents.partitionQuery

Particiona una consulta con la devolución de cursores de partición que se pueden usar para ejecutar la consulta en paralelo. Los cursores de partición que se muestran son puntos de división que document.runQuery puede usar como puntos de partida y de destino para los resultados de la consulta.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta de acceso

Parámetros
parent

string

Obligatorio. El nombre del recurso superior. En el formato: projects/{projectId}/databases/{databaseId}/documents. No se admiten los nombres de recursos de documentos; solo se pueden especificar nombres de recursos de base 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)

La cantidad máxima deseada de puntos de partición. Las particiones se pueden mostrar en varias páginas de resultados. El número debe ser positivo. La cantidad real de particiones que se muestran puede ser menor.

Por ejemplo, esto puede establecerse en una menos que la cantidad de consultas paralelas que se ejecutarán o, en la ejecución de un trabajo de canalización de datos, una menos que la cantidad de trabajadores o instancias de procesamiento disponibles.

pageToken

string

El valor nextPageToken que se muestra a partir de una llamada anterior a document.partQuery que se puede usar para obtener un conjunto adicional de resultados. No hay garantías de orden entre los conjuntos de resultados. Por lo tanto, usar varios conjuntos de resultados requerirá la combinación de los diferentes conjuntos de resultados.

Por ejemplo, dos llamadas posteriores que usan un pageToken pueden mostrar el siguiente resultado:

  • 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 document.partQuery, los conjuntos de resultados deben combinarse: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

pageSize

integer

La cantidad máxima de particiones que se mostrarán en esta llamada, sujeta a partitionCount.

Por ejemplo, si partitionCount = 10 y pageSize = 8, la primera llamada a document.partQuery mostrará hasta 8 particiones y un nextPageToken si hay más resultados. Una segunda llamada a document.partQuery mostrará hasta 2 particiones para completar el total de 10 especificado en partitionCount.

Campo de unión query_type. La consulta que se particionará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structuredQuery

object (StructuredQuery)

Una consulta estructurada. La consulta debe especificar la colección con todos los elementos subordinados y ordenarse de forma ascendente por nombre. No se admiten otros filtros, valores de ordenamiento, límites, desplazamientos ni cursores de inicio y fin.

Campo de unión consistency_selector. El modo de coherencia para esta solicitud. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
readTime

string (Timestamp format)

Lee los documentos tal como estaban en el momento indicado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si está habilitada la recuperación de un momento determinado, 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 “Zulú”, 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 la respuesta

La respuesta para Firestore.PartitionQuery.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá 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 puede usar document.runQuery como punto de partida o finalización para los resultados de la consulta. Las solicitudes document.runQuery se deben realizar con la misma consulta proporcionada a esta solicitud document.PrepartQuery. Los cursores de partición se ordenarán de acuerdo con el mismo orden que los resultados de la consulta suministrada a document.PARTITIONQuery.

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

  • consulta, endAt A
  • consulta, startAt, endAt, B
  • consulta, startAtB

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

nextPageToken

string

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

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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