全部产品
Search
文档中心

Tablestore:ComputeSplitPointsBySize

更新时间:Jul 02, 2025

Membagi data dalam tabel menjadi beberapa pemisahan logis dengan ukuran mendekati nilai yang ditentukan. Titik-titik pemisah antara pemisahan serta informasi host tempat pemisahan berada akan dikembalikan. Operasi ini digunakan oleh mesin komputasi untuk menentukan rencana eksekusi, seperti rencana konkurensi.

Sintaks permintaan

message ComputeSplitPointsBySizeRequest {
    required string table_name = 1;
    required int64 split_size = 2; // dalam 100MB
    optional int64 split_size_unit_in_byte = 3;
    optional int32 split_point_limit = 4;
}

Parameter

Tipe

Diperlukan

Deskripsi

table_name

string

Ya

Nama tabel yang datanya ingin Anda bagi.

split_size

int64

Ya

Ukuran perkiraan setiap pemisahan. Satuan: megabyte.

split_size_unit_in_byte

int64

Tidak

Satuan ukuran yang digunakan dalam pemisahan. Parameter ini digunakan dalam perhitungan titik pemisah untuk memastikan akurasi perhitungan.

split_point_limit

int32

Tidak

Batas jumlah titik pemisah. Parameter ini digunakan untuk mengontrol hasil yang dikembalikan dari perhitungan titik pemisah.

Sintaks respons

message ComputeSplitPointsBySizeResponse {
    required ConsumedCapacity consumed = 1;
    repeated PrimaryKeySchema schema = 2;

    /**
     * Titik-titik pemisah antar pemisahan, dalam urutan meningkat
     *
     * Pemisahan adalah rentang berturut-turut dari kunci primer,
     * yang ukuran datanya sekitar split_size yang ditentukan dalam permintaan.
     * Ukuran tersebut mungkin sulit untuk tepat.
     *
     * Titik pemisah adalah array kolom kunci primer sesuai skema tabel,
     * yang tidak pernah lebih panjang dari skema tabel.
     * -inf di akhir akan dihilangkan untuk mengurangi muatan transmisi.
     */
    repeated bytes split_points = 3;

    /**
     * Lokasi tempat pemisahan berada.
     *
     * Dengan sifat terkelola TableStore, lokasi ini tidak lebih dari petunjuk.
     * Jika suatu lokasi tidak cocok untuk dilihat, string kosong akan ditempatkan.
     */
     repeated SplitLocation locations = 4;
}

Parameter

Tipe

Deskripsi

consumed

ConsumedCapacity

Jumlah unit kapasitas (CUs) yang dikonsumsi oleh permintaan ini.

schema

PrimaryKeySchema

Skema tabel. Skema ini sama dengan skema yang didefinisikan saat tabel dibuat.

split_points

repeated bytes

Titik-titik pemisah antar pemisahan. Titik-titik pemisah harus meningkat secara monoton antara pemisahan-pemisahan ini. Setiap titik pemisah adalah baris data dalam format PlainBuffer dan hanya berisi kunci primer. -inf terakhir dari setiap titik pemisah tidak ditransmisikan. Ini membantu mengurangi jumlah data yang ditransmisikan.

locations

repeated SplitLocation

Informasi tentang host tempat titik-titik pemisah berada. Anda dapat membiarkan parameter ini kosong.

Sebagai contoh, jika sebuah tabel memiliki tiga kolom kunci primer dan tipe data kolom kunci primer pertama adalah string, hasil pemisahan setelah memanggil operasi ini adalah sebagai berikut: (-inf,-inf,-inf) hingga ("a",-inf,-inf), ("a",-inf,-inf) hingga ("b",-inf,-inf), ("b",-inf,-inf) hingga ("c",-inf,-inf), ("c",-inf,-inf) hingga ("d",-inf,-inf), dan ("d",-inf,-inf) hingga (+inf,+inf,+inf). Tiga pemisahan pertama berada di mesin-A, sedangkan dua pemisahan lainnya berada di mesin-B. Dalam hal ini, nilai split_points adalah [("a"),("b"),("c"),("d")], dan nilai locations adalah "machine-A"*3, "machine-B"*2.

Menggunakan SDK Tablestore

Tablestore SDK for Java: Pisahkan data ke dalam shard dengan ukuran tertentu

Konsumsi CU

Jumlah CU baca yang dikonsumsi sama dengan jumlah pemisahan. Tidak ada CU tulis yang dikonsumsi.