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)

원하는 최대 파티션 지점 수입니다. 파티션은 여러 결과 페이지에 걸쳐 반환될 수 있습니다. 숫자는 양수여야 합니다. 반환되는 파티션의 실제 수는 더 적을 수 있습니다.

예를 들어 이는 실행할 병렬 쿼리 수보다 1개 적게 설정되거나, 데이터 파이프라인 작업 실행 시 사용 가능한 작업자 또는 컴퓨팅 인스턴스 수보다 1개 적게 설정될 수 있습니다.

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을 반환합니다. 문서.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일 이내의 1분짜리 타임스탬프일 수도 있습니다.

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)

파티션 결과 각 파티션은 문서.runQuery에서 쿼리 결과의 시작 또는 끝점으로 사용할 수 있는 분할 지점입니다. document.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

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