Method: projects.databases.documents.partitionQuery

Mempartisi kueri dengan menampilkan kursor partisi yang dapat digunakan untuk menjalankan kueri secara paralel. Kursor partisi yang dikembalikan adalah titik terpisah yang dapat digunakan oleh documents.runQuery sebagai titik awal/akhir untuk hasil kueri.

Permintaan HTTP

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

URL menggunakan sintaks gRPC Transcoding.

Parameter jalur

Parameter
parent

string

Wajib diisi. Nama resource induk. Dalam format: projects/{projectId}/databases/{databaseId}/documents. Nama resource dokumen tidak didukung; hanya nama resource database yang dapat ditentukan.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi 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.
}
Kolom
partitionCount

string (int64 format)

Jumlah maksimum titik partisi yang diinginkan. Partisi dapat ditampilkan di beberapa halaman hasil. Angkanya harus positif. Jumlah partisi sebenarnya yang ditampilkan mungkin lebih sedikit.

Misalnya, parameter ini dapat ditetapkan ke jumlah kueri paralel yang lebih sedikit dari jumlah kueri paralel yang akan dijalankan, atau satu untuk menjalankan tugas pipeline data, yaitu satu lebih sedikit dari jumlah worker atau instance komputasi yang tersedia.

pageToken

string

Nilai nextPageToken yang ditampilkan dari panggilan sebelumnya ke documents.partitionQuery yang dapat digunakan untuk mendapatkan serangkaian hasil tambahan. Tidak ada jaminan pengurutan di antara kumpulan hasil. Dengan demikian, penggunaan beberapa kumpulan hasil akan memerlukan penggabungan kumpulan hasil yang berbeda.

Misalnya, dua panggilan berikutnya yang menggunakan pageToken mungkin menampilkan:

  • kursor B, kursor M, kursor Q
  • kursor A, kursor U, kursor W

Untuk mendapatkan kumpulan hasil lengkap yang diurutkan sehubungan dengan hasil kueri yang diberikan ke documents.partitionQuery, kumpulan hasil harus digabungkan: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

pageSize

integer

Jumlah maksimum partisi yang akan ditampilkan dalam panggilan ini, tunduk pada partitionCount.

Misalnya, jika partitionCount = 10 dan pageSize = 8, panggilan pertama ke documents.partitionQuery akan menampilkan hingga 8 partisi dan nextPageToken jika ada hasil lainnya. Panggilan kedua ke documents.partitionQuery akan menampilkan hingga 2 partisi, untuk menyelesaikan total 10 partisi yang ditentukan dalam partitionCount.

Kolom union query_type. Kueri yang akan dipartisi. query_type hanya ada berupa salah satu diantara berikut:
structuredQuery

object (StructuredQuery)

Kueri terstruktur. Kueri harus menentukan koleksi dengan semua turunan dan diurutkan berdasarkan nama menaik. Filter, urutan menurut, batas, offset, dan kursor awal/akhir tidak didukung.

Kolom union consistency_selector. Mode konsistensi untuk permintaan ini. Jika tidak disetel, defaultnya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
readTime

string (Timestamp format)

Membaca dokumen sebagaimana adanya pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat berupa stempel waktu menit penuh dalam 7 hari terakhir.

Stempel waktu dalam RFC3339 UTC "Zulu" , dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

Isi respons

Respons untuk Firestore.PartitionQuery.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Kolom
partitions[]

object (Cursor)

Hasil partisi. Setiap partisi adalah titik bagi yang dapat digunakan oleh documents.runQuery sebagai titik awal atau akhir untuk hasil kueri. Permintaan documents.runQuery harus dibuat dengan kueri yang sama dengan yang diberikan ke permintaan documents.partitionQuery ini. Kursor partisi akan diurutkan sesuai dengan urutan yang sama seperti hasil kueri yang diberikan ke documents.partitionQuery.

Misalnya, jika permintaan documents.partitionQuery menampilkan kursor partisi A dan B, menjalankan tiga kueri berikut akan menampilkan seluruh set hasil kueri asli:

  • kueri, endAt A
  • kueri, startAt A, endAt B
  • kueri, startAt B

Hasil kosong dapat menunjukkan bahwa kueri memiliki terlalu sedikit hasil untuk dipartisi, atau bahwa kueri tersebut belum didukung untuk pembuatan partisi.

nextPageToken

string

Token halaman yang dapat digunakan untuk meminta kumpulan hasil tambahan, hingga jumlah yang ditentukan oleh partitionCount dalam permintaan documents.partitionQuery. Jika kosong, tidak ada hasil lagi.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

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

Untuk mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.