Method: projects.databases.documents.partitionQuery

Particiona uma consulta retornando cursores de partição que podem ser usados ​​para executar a consulta em paralelo. Os cursores de partição retornados são pontos de divisão que podem ser usados ​​pordocuments.runQuery como pontos inicial/final para os resultados da consulta.

Solicitação HTTP

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

A URL usa sintaxe de transcodificação gRPC .

Parâmetros de caminho

Parâmetros
parent

string

Obrigatório. O nome do recurso pai. No formato: projects/{projectId}/databases/{databaseId}/documents . Nomes de recursos de documentos não são suportados; apenas nomes de recursos de banco de dados podem ser especificados.

Solicitar corpo

O corpo da solicitação contém dados com a seguinte estrutura:

Representação 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)

O número máximo desejado de pontos de partição. As partições podem ser retornadas em várias páginas de resultados. O número deve ser positivo. O número real de partições retornadas pode ser menor.

Por exemplo, isso pode ser definido como um a menos que o número de consultas paralelas a serem executadas ou, na execução de um trabalho de pipeline de dados, um a menos que o número de trabalhadores ou instâncias de computação disponíveis.

pageToken

string

O valor nextPageToken retornado de uma chamada anterior paradocuments.partitionQuery que pode ser usado para obter um conjunto adicional de resultados. Não há garantias de ordenação entre conjuntos de resultados. Assim, o uso de vários conjuntos de resultados exigirá a fusão dos diferentes conjuntos de resultados.

Por exemplo, duas chamadas subsequentes usando um pageToken podem retornar:

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

Para obter um conjunto de resultados completo ordenado em relação aos resultados da consulta fornecida adocuments.partitionQuery, os conjuntos de resultados devem ser mesclados: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

pageSize

integer

O número máximo de partições a serem retornadas nesta chamada, sujeito a partitionCount .

Por exemplo, se partitionCount = 10 e pageSize = 8, a primeira chamada paradocuments.partitionQuery retornará até 8 partições e um nextPageToken se existirem mais resultados. Uma segunda chamada paradocuments.partitionQuery retornará até 2 partições, para completar o total de 10 especificado em partitionCount .

Campo de união query_type . A consulta a particionar. query_type pode ser apenas um dos seguintes:
structuredQuery

object ( StructuredQuery )

Uma consulta estruturada. A consulta deve especificar a coleção com todos os descendentes e ser ordenada por nome crescente. Outros filtros, ordenar por, limites, deslocamentos e cursores de início/fim não são suportados.

Campo de união consistency_selector . O modo de consistência para esta solicitação. Se não for definido, o padrão é consistência forte. consistency_selector pode ser apenas um dos seguintes:
readTime

string ( Timestamp format)

Lê documentos como eles estavam no momento determinado.

Deve ser um carimbo de data/hora com precisão de microssegundos da última hora ou, se a recuperação pontual estiver ativada, também pode ser um carimbo de hora de um minuto inteiro dos últimos 7 dias.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z" .

Corpo de resposta

A resposta para Firestore.PartitionQuery .

Se for bem-sucedido, o corpo da resposta conterá dados com a seguinte estrutura:

Representação JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Campos
partitions[]

object ( Cursor )

Resultados da partição. Cada partição é um ponto de divisão que pode ser usado pordocuments.runQuery como ponto inicial ou final para os resultados da consulta. As solicitaçõesdocuments.runQuery devem ser feitas com a mesma consulta fornecida para esta solicitaçãodocuments.partitionQuery. Os cursores de partição serão ordenados de acordo com a mesma ordem dos resultados da consulta fornecida adocuments.partitionQuery.

Por exemplo, se uma solicitaçãodocuments.partitionQuery retornar os cursores de partição A e B, a execução das três consultas a seguir retornará todo o conjunto de resultados da consulta original:

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

Um resultado vazio pode indicar que a consulta tem poucos resultados para ser particionada ou que a consulta ainda não tem suporte para particionamento.

nextPageToken

string

Um token de página que pode ser usado para solicitar um conjunto adicional de resultados, até o número especificado por partitionCount na solicitaçãodocuments.partitionQuery. Se estiver em branco, não há mais resultados.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .