すべてのプロダクト
Search
ドキュメントセンター

Tablestore:テーブルのデータを指定サイズに近い論理スプリットに分割する

最終更新日:Apr 30, 2026

ComputeSplitsBySize オペレーションを呼び出して、データテーブルをほぼ同じサイズの論理スプリットに分割します。応答には、スプリット間の分割ポイントと、各スプリットが配置されているホスト情報が含まれます。このオペレーションは、コンピュートエンジンの同時実行数などの実行計画を決定する際に通常使用されます。

説明

詳細については、「ComputeSplitPointsBySize」をご参照ください。

前提条件

API オペレーション

    /**
     * テーブル内のデータを指定サイズに近い複数のスプリットに論理的に分割し、スプリット間の分割ポイントおよび各スプリットが配置されているホスト情報を返します。
     * このオペレーションは、コンピュートエンジンの同時実行数などの実行計画を決定する際に通常使用されます。
     * @api
     * @param [] $request リクエストパラメーター。
     * @return [] 応答。
     * @throws OTSClientException パラメーターのエラーが発生した場合、または Tablestore サーバーが検証エラーを返した場合にスローされる例外。
     * @throws OTSServerException Tablestore サーバーがエラーを返した場合にスローされる例外。
     */
    public function computeSplitPointsBySize(array $request)
            

パラメーター

リクエスト情報

リクエストパラメーター

パラメーター

説明

table_name

データテーブルの名前。

split_size

各スプリットの概算サイズ。単位:100 MB。

リクエスト構文

$result = $client->ComputeSplitsBySize([
    'table_name' => '<string>', // 必須。データテーブルの名前。
    'split_size' => <integer>   // 必須。各スプリットの概算サイズ。
]);     

応答情報

応答パラメーター

パラメーター

説明

consumed

このオペレーションで消費された容量単位 (CUs)。

capacity_unit には、読み取りおよび書き込みの CU 消費量が含まれます:

  • read:読み取りスループット。

  • write:書き込みスループット。

primary_key_schema

データテーブルのプライマリキースキーマ。テーブル作成時に定義されたスキーマと一致します。

splits

スプリット間の分割ポイント。各スプリットには以下のフィールドが含まれます:

  • lower_bound:スプリット範囲内の最小プライマリキー値。

    GetRange に lower_bound を渡すことで、その範囲内のデータを読み取れます。

    • 各エントリには、プライマリキー名、プライマリキー値 (PrimaryKeyValue)、プライマリキータイプ (PrimaryKeyType) が順に含まれます。

    • PrimaryKeyType は以下の値を受け付けます:PrimaryKeyTypeConst::CONST_INTEGER (INTEGER)、PrimaryKeyTypeConst::CONST_STRING (UTF-8 エンコード文字列)、PrimaryKeyTypeConst::CONST_BINARY (BINARY)、PrimaryKeyTypeConst::CONST_INF_MIN (INF_MIN、つまり -inf)、および PrimaryKeyTypeConst::CONST_INF_MAX (INF_MAX、つまり +inf)。

  • upper_bound:スプリット範囲内の最大プライマリキー値。フォーマットは lower_bound と同じです。

    GetRange に upper_bound を渡すことで、その範囲内のデータを読み取れます。

  • location:スプリットが配置されているホスト。このフィールドは空の場合があります。

応答構文

[
    '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>'
        ],
        // ...
    ]
]           

使用例

次の例では、データテーブルを約 100 MB の論理スプリットに分割 (split_size = 1) し、各スプリットの配置ホストおよびプライマリキー範囲を出力します。

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