Method: projects.databases.documents.partitionQuery

Разделяет запрос, возвращая курсоры разделов, которые можно использовать для параллельного выполнения запроса. Возвращенные курсоры разделов представляют собой точки разделения, которые Documents.runQuery может использовать в качестве начальной и конечной точек для результатов запроса.

HTTP-запрос

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

URL-адрес использует синтаксис транскодирования gRPC .

Параметры пути

Параметры
parent

string

Необходимый. Имя родительского ресурса. В формате: projects/{projectId}/databases/{databaseId}/documents . Имена ресурсов документа не поддерживаются; можно указать только имена ресурсов базы данных.

Тело запроса

Тело запроса содержит данные следующей структуры:

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.
}
Поля
partitionCount

string ( int64 format)

Желаемое максимальное количество точек разделения. Разделы могут возвращаться на нескольких страницах результатов. Число должно быть положительным. Фактическое количество возвращаемых разделов может быть меньше.

Например, это значение может быть установлено на единицу меньше, чем количество выполняемых параллельных запросов, или при выполнении задания конвейера данных — на единицу меньше, чем количество доступных рабочих или вычислительных экземпляров.

pageToken

string

Значение nextPageToken , возвращенное из предыдущего вызова document.partitionQuery, которое можно использовать для получения дополнительного набора результатов. Нет никаких гарантий упорядочения между наборами результатов. Таким образом, использование нескольких наборов результатов потребует объединения различных наборов результатов.

Например, два последующих вызова с использованием pageToken могут вернуть:

  • курсор B, курсор M, курсор Q
  • курсор A, курсор U, курсор W

Чтобы получить полный набор результатов, упорядоченный по результатам запроса, переданного в document.partitionQuery, наборы результатов следует объединить: курсор A, курсор B, курсор M, курсор Q, курсор U, курсор W.

pageSize

integer

Максимальное количество разделов, возвращаемых в этом вызове, в зависимости от partitionCount .

Например, если partitionCount = 10 и pageSize = 8, первый вызов document.partitionQuery вернет до 8 секций и nextPageToken , если существует больше результатов. Второй вызов document.partitionQuery вернет до 2 разделов, чтобы завершить общее количество 10, указанных в partitionCount .

Поле объединения query_type . Запрос на разделение. query_type может быть только одним из следующих:
structuredQuery

object ( StructuredQuery )

Структурированный запрос. Запрос должен указывать коллекцию со всеми потомками и быть упорядочен по возрастанию имени. Другие фильтры, порядок, пределы, смещения и курсоры начала/конца не поддерживаются.

Объединённое поле consistency_selector . Режим согласованности для этого запроса. Если не установлено, по умолчанию используется строгая согласованность. consistency_selector может быть только одним из следующих:
readTime

string ( Timestamp format)

Читает документы в том виде, в каком они были на данный момент.

Это должна быть временная метка с точностью до микросекунды за последний час или, если включено восстановление на определенный момент времени, дополнительно может быть временная метка с точностью до целой минуты за последние 7 дней.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

Тело ответа

Ответ на Firestore.PartitionQuery .

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Поля
partitions[]

object ( Cursor )

Результаты раздела. Каждый раздел представляет собой точку разделения, которую document.runQuery может использовать в качестве начальной или конечной точки для результатов запроса. Запросы document.runQuery должны выполняться с использованием того же запроса, который указан в этом запросе document.partitionQuery. Курсоры разделов будут упорядочены в том же порядке, что и результаты запроса, переданного в document.partitionQuery.

Например, если запрос document.partitionQuery возвращает курсоры разделов A и B, выполнение следующих трех запросов вернет весь набор результатов исходного запроса:

  • запрос, endAt A
  • запрос, начало в A, конец в B
  • запрос, начало в B

Пустой результат может указывать на то, что запрос имеет слишком мало результатов для секционирования или что запрос еще не поддерживается для секционирования.

nextPageToken

string

Токен страницы, который можно использовать для запроса дополнительного набора результатов, вплоть до числа, указанного в partitionCount в запросе document.partitionQuery. Если пусто, результатов больше нет.

Области авторизации

Требуется одна из следующих областей OAuth:

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

Для получения дополнительной информации см. Обзор аутентификации .