All Products
Search
Document Center

Tablestore:Pisahkan data dalam tabel menjadi beberapa split logis yang ukurannya kira-kira sama dengan nilai yang ditentukan

Last Updated:Apr 30, 2026

Panggil operasi ComputeSplitsBySize untuk membagi data dalam tabel menjadi split logis dengan ukuran yang kira-kira sama. Respons operasi ini mencakup titik pemisahan antar-split serta host tempat masing-masing split berada. Operasi ini umumnya digunakan untuk menentukan rencana eksekusi, seperti rencana konkurensi, bagi Mesin komputasi.

Catatan

Untuk informasi lebih lanjut, lihat ComputeSplitPointsBySize.

Prasyarat

Operasi API

    /**
     * Secara logis membagi data dalam tabel menjadi beberapa split yang ukurannya mendekati ukuran yang ditentukan, lalu mengembalikan titik pemisahan antar-split dan memberikan informasi tentang host tempat split tersebut berada.
     * Dalam kebanyakan kasus, operasi ini digunakan untuk menentukan rencana eksekusi seperti rencana konkurensi bagi Mesin komputasi.
     * @api
     * @param [] $request Parameter permintaan.
     * @return [] Respons.
     * @throws OTSClientException Pengecualian yang dilemparkan ketika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi.
     * @throws OTSServerException Pengecualian yang dilemparkan ketika server Tablestore mengembalikan kesalahan.
     */
    public function computeSplitPointsBySize(array $request)
            

Parameter

Informasi permintaan

Parameter permintaan

Parameter

Deskripsi

table_name

Nama tabel data.

split_size

Ukuran perkiraan setiap split. Satuan: 100 MB.

Sintaksis permintaan

$result = $client->ComputeSplitsBySize([
    'table_name' => '<string>', // Wajib diisi. Nama tabel data.
    'split_size' => <integer>   // Wajib diisi. Ukuran perkiraan setiap split.
]);     

Informasi respons

Parameter respons

Parameter

Deskripsi

consumed

Unit kapasitas (CUs) yang dikonsumsi oleh operasi ini.

capacity_unit berisi CU baca dan tulis yang dikonsumsi:

  • read: throughput baca.

  • write: throughput tulis.

primary_key_schema

Skema primary key dari tabel data, yang sesuai dengan skema yang ditentukan saat pembuatan tabel.

splits

Titik pemisahan antar-split. Setiap split berisi bidang-bidang berikut:

  • lower_bound: nilai primary key minimum dalam rentang split.

    Teruskan lower_bound ke GetRange untuk membaca data dalam rentang tersebut.

    • Setiap entri berisi nama primary key, nilai primary key (PrimaryKeyValue), dan tipe primary key (PrimaryKeyType) secara berurutan.

    • PrimaryKeyType menerima nilai-nilai berikut: PrimaryKeyTypeConst::CONST_INTEGER (INTEGER), PrimaryKeyTypeConst::CONST_STRING (string terenkripsi UTF-8), PrimaryKeyTypeConst::CONST_BINARY (BINARY), PrimaryKeyTypeConst::CONST_INF_MIN (INF_MIN, yaitu -inf), dan PrimaryKeyTypeConst::CONST_INF_MAX (INF_MAX, yaitu +inf).

  • upper_bound: nilai primary key maksimum dalam rentang split. Formatnya sama dengan lower_bound.

    Teruskan upper_bound ke GetRange untuk membaca data dalam rentang tersebut.

  • location: host tempat split berada. Bidang ini bisa jadi kosong.

Sintaksis respons

[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key_schema' => [
        ['<string>', <PrimaryKeyType>],
        ['<string>', <PrimaryKeyType>, <PrimaryKeyOption>]
    ]
    'splits' => [
        [ 
            'lower_bound' => [
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>],
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
            ],
            'upper_bound' => [
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>],
                ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
            ],
            'location' => '<string>'
        ],
        // ...
    ]
]           

Contoh

Contoh berikut membagi data dalam tabel menjadi split logis dengan ukuran masing-masing sekitar 100 MB (split_size = 1), lalu mencetak lokasi dan rentang primary key setiap split.

    $result = $client->ComputeSplitsBySize([
        'table_name' => 'MyTable', 
        'split_size' => 1
    ]);
    foreach($result['splits'] as $split) {
        print_r($split['location']);    
        print_r($split['lower_bound']);    
        print_r($split['upper_bound']);    
    }