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:Sep 30, 2026

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

Catatan

Untuk informasi selengkapnya, lihat ComputeSplitPointsBySize.

Prasyarat

Operasi API

    /**
     * Secara logis membagi data dalam tabel menjadi beberapa split yang ukurannya mendekati ukuran yang ditentukan, lalu mengembalikan titik pemisah antar-split dan memberikan informasi tentang host tempat split tersebut berada. 
     * Dalam sebagian besar kasus, operasi ini digunakan untuk menentukan rencana eksekusi seperti rencana konkurensi bagi Mesin komputasi. 
     * @api
     * @param [] $request Parameter permintaan. 
     * @return [] Tanggapan. 
     * @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. Nama tabel data.
    'split_size' => <integer>   // Wajib. Ukuran perkiraan setiap split.
]);     

Informasi tanggapan

Parameter tanggapan

Parameter

Deskripsi

consumed

Unit kapasitas (CUs) yang dikonsumsi oleh operasi ini.

capacity_unit mencakup 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 didefinisikan saat pembuatan tabel.

splits

Titik pemisah 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 yang dikodekan 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 saja kosong.

Sintaksis tanggapan

[
    '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 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']);    
    }