All Products
Search
Document Center

Tablestore:Pisahkan data dalam tabel menjadi beberapa pemisahan logis yang ukurannya mendekati nilai yang ditentukan

Last Updated:Jul 06, 2025

Anda dapat memanggil operasi ComputeSplitsBySize untuk membagi data dalam tabel menjadi beberapa pemisahan logis yang ukurannya mendekati nilai yang ditentukan. Informasi mengenai titik-titik pemisah di antara pemisahan dan host tempat pemisahan tersebut berada akan dikembalikan. Operasi ini biasanya digunakan untuk menentukan rencana eksekusi, seperti rencana konkurensi untuk mesin komputasi.

Catatan

Untuk informasi lebih lanjut, lihat ComputeSplitPointsBySize.

Prasyarat

  • Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Instance OTSClient.

  • Sebuah tabel data telah dibuat dan data telah ditulis ke tabel tersebut. Untuk informasi lebih lanjut, lihat Buat Tabel Data.

Operasi API

    /**
     * Pisahkan secara logis data dalam tabel menjadi beberapa pemisahan yang ukurannya mendekati ukuran yang ditentukan, dan kembalikan titik-titik pemisah di antara pemisahan serta prompt tentang host tempat pemisahan tersebut berada.
     * Dalam kebanyakan kasus, operasi ini digunakan untuk menentukan rencana eksekusi seperti rencana konkurensi untuk mesin komputasi.
     * @api
     * @param [] $request Parameter permintaan.
     * @return [] Respons.
     * @throws OTSClientException Pengecualian yang dilempar ketika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi.
     * @throws OTSServerException Pengecualian yang dilempar 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 yang ditentukan untuk setiap pemisahan.

Satuan: 100 MB.

Sintaks permintaan

$result = $client->ComputeSplitsBySize([
    'table_name' => '<string>', // Tentukan nama tabel data. Parameter ini wajib.
    'split_size' => <integer>   // Tentukan ukuran setiap pemisahan. Parameter ini wajib.
]);     

Informasi respons

Parameter respons

Parameter

Deskripsi

consumed

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

capacity_unit menunjukkan jumlah CUs baca dan tulis yang dikonsumsi.

  • read: throughput baca.

  • write: throughput tulis.

primary_key_schema

Skema kunci utama untuk tabel data, yang sama dengan skema yang ditentukan saat tabel data dibuat.

splits

Titik-titik pemisah di antara pemisahan. Parameter ini mencakup item konfigurasi berikut:

  • lower_bound: nilai minimum dalam rentang kunci utama.

    Nilai lower_bound dapat diteruskan ke GetRange untuk membaca data berdasarkan rentang.

    • Setiap item berisi nama kunci utama, nilai kunci utama (PrimaryKeyValue), dan tipe kunci utama (PrimaryKeyType) secara berurutan.

    • Anda dapat menetapkan PrimaryKeyType ke PrimaryKeyTypeConst::CONST_INTEGER yang menentukan nilai INTEGER, PrimaryKeyTypeConst::CONST_STRING yang menentukan string yang dikodekan UTF-8, PrimaryKeyTypeConst::CONST_BINARY yang menentukan nilai BINARY, PrimaryKeyTypeConst::CONST_INF_MIN yang menentukan nilai INF_MIN(-inf), atau PrimaryKeyTypeConst::CONST_INF_MAX yang menentukan nilai INF_MAX(inf).

  • upper_bound: nilai maksimum dalam rentang kunci utama. Format upper_bound sama dengan format lower_bound.

    Nilai upper_bound dapat diteruskan ke GetRange untuk membaca data berdasarkan rentang.

  • location: mesin tempat titik pemisah berada. Nilai parameter ini bisa kosong.

Sintaks 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

Berikut adalah contoh kode sampel yang menunjukkan cara membagi data dalam tabel menjadi beberapa pemisahan yang ukurannya mendekati 100 MB:

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