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

前回の document.partitionQuery の呼び出しで返された nextPageToken 値で、追加の結果セットを取得するために使用できます。結果セット間の順序は保証されません。したがって、複数の結果セットを使用するには、異なる結果セットをマージする必要があります。

たとえば、pageToken を使用した後続の 2 つの呼び出しでは、次のような結果が返されます。

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

ドキュメント.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 リクエストも、この documentation.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

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