Method: projects.databases.documents.partitionQuery

クエリの並列実行に使用できるパーティション カーソルを返してクエリを分割します。返されるパーティション カーソルは、documents.runQuery がクエリ結果の開始点または終了点として使用できる分割点です。

HTTP リクエスト

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

この URL は gRPC Transcoding 構文を使用します。

パスパラメータ

パラメータ
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 を使用した後続の 2 つの呼び出しでは、次のような結果が返されます。

  • カーソル B、カーソル M、カーソル Q
  • カーソル A、カーソル U、カーソル W

document.partitionQuery に指定したクエリの結果に基づいて並べ替えられた完全な結果セットを取得するには、カーソル A、カーソル B、カーソル M、カーソル Q、カーソル U、カーソル W の結果セットをマージする必要があります。

pageSize

integer

この呼び出しで返されるパーティションの最大数。partitionCount の対象となります。

たとえば、partitionCount = 10 かつ pageSize = 8 の場合、documents.partitionQuery の最初の呼び出しでは最大 8 個のパーティションが返され、さらに結果がある場合は nextPageToken が返されます。document.partitionQuery を 2 回呼び出すと、最大 2 つのパーティションが返されます。つまり、partitionCount で指定した合計パーティションは 10 個になります。

共用体フィールド query_type。パーティショニングするクエリ。query_type は次のいずれかになります。
structuredQuery

object (StructuredQuery)

構造化クエリ。クエリは、すべての子孫を含むコレクションを指定し、名前の昇順で並べる必要があります。その他のフィルタ、並べ替え、制限、オフセット、開始/終了カーソルはサポートされていません。

共用体フィールド consistency_selector。このリクエストの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
readTime

string (Timestamp format)

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 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)

結果を分割します。各パーティションは、documents.runQuery でクエリ結果の開始点または終了点として使用できる分割ポイントです。document.runQuery リクエストは、この documents.partitionQuery リクエストで指定したクエリと同じクエリを使用して実行する必要があります。パーティション カーソルは、documents.partitionQuery に渡されたクエリの結果と同じ順序で並べ替えられます。

たとえば、documents.partitionQuery リクエストがパーティション カーソル A と B を返す場合、次の 3 つのクエリを実行すると、元のクエリの結果セット全体が返されます。

  • クエリ、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

詳細については、認証の概要をご覧ください。