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

추가 결과 집합을 가져오는 데 사용할 수 있는 documents.partitionQuery에 대한 이전 호출에서 반환된 nextPageToken 값입니다. 결과 집합 간의 순서는 보장되지 않습니다. 따라서 여러 결과 집합을 사용하려면 서로 다른 결과 집합을 병합해야 합니다.

예를 들어 pageToken을 사용한 두 번의 후속 호출은 다음을 반환할 수 있습니다.

  • 커서 B, 커서 M, 커서 Q
  • 커서 A, 커서 U, 커서 W

documents.partitionQuery에 제공된 쿼리의 결과를 기준으로 정렬된 전체 결과 집합을 가져오려면 커서 A, 커서 B, 커서 M, 커서 Q, 커서 U, 커서 W 등 결과 집합을 병합해야 합니다.

pageSize

integer

이 호출에서 반환할 최대 파티션 수이며 partitionCount이 적용됩니다.

예를 들어 partitionCount = 10이고 pageSize = 8이면 documents.partitionQuery에 대한 첫 번째 호출은 최대 8개의 파티션을 반환하고 결과가 더 있으면 nextPageToken를 반환합니다. documents.partitionQuery를 두 번째로 호출하면 최대 2개의 파티션이 반환되어 partitionCount에 지정된 총 파티션 10개를 완료합니다.

통합 필드 query_type. 파티션을 나눌 쿼리입니다. query_type은 다음 중 하나여야 합니다.
structuredQuery

object (StructuredQuery)

구조화된 쿼리입니다. 쿼리는 모든 하위 항목이 포함된 컬렉션을 지정해야 하며 이름 오름차순으로 정렬해야 합니다. 다른 필터, 정렬 기준, 제한, 오프셋, 시작/끝 커서는 지원되지 않습니다.

통합 필드 consistency_selector. 이 요청의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
readTime

string (Timestamp format)

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

응답 본문

Firestore.PartitionQuery의 응답입니다.

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

JSON 표현
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
입력란
partitions[]

object (Cursor)

파티션 결과 각 파티션은 documents.runQuery에서 쿼리 결과의 시작 또는 끝점으로 사용할 수 있는 분할 지점입니다. documents.runQuery 요청은 이 documents.partitionQuery 요청에 제공된 것과 동일한 쿼리를 사용하여 생성해야 합니다. 파티션 커서는 documents.partitionQuery에 제공된 쿼리 결과와 동일한 순서에 따라 정렬됩니다.

예를 들어 documents.partitionQuery 요청이 파티션 커서 A와 B를 반환하는 경우 다음 세 개의 쿼리를 실행하면 원래 쿼리의 전체 결과 집합이 반환됩니다.

  • 검색어, endAt A
  • 검색어, startAt A, endAt B
  • 검색어, startAt B

빈 결과는 쿼리에 파티셔닝할 결과가 너무 적거나 쿼리가 아직 파티션 나누기에 지원되지 않음을 나타낼 수 있습니다.

nextPageToken

string

추가 결과 집합을 요청하는 데 사용할 수 있는 페이지 토큰으로, documents.partitionQuery 요청에서 partitionCount로 지정된 수까지 가능합니다. 비워 두면 더 이상 결과가 없습니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.