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

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

最終更新日:Sep 30, 2026

ComputeSplitsBySize API を呼び出して、データテーブルをほぼ同じサイズの複数の論理スプリットに分割します。レスポンスには、スプリット間のスプリットポイントと、各スプリットが存在するホストが含まれます。このオペレーションは、通常、コンピューティングエンジン向けの、同時実行プランなどの実行計画を決定するために使用します。

説明

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

前提条件

API オペレーション

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

パラメーター

リクエスト情報

リクエストパラメーター

パラメーター

説明

table_name

データテーブルの名前。

split_size

各スプリットのおおよそのサイズを 100 MB 単位で指定します。たとえば、1 を指定するとサイズは 100 MB になります。

リクエスト構文

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

レスポンス情報

レスポンスパラメーター

パラメーター

説明

consumed

このオペレーションで消費されたキャパシティーユニット (CU)。

capacity_unit には、消費された読み込みおよび書き込み CU が含まれます:

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

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

primary_key_schema

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

splits

論理スプリットのリスト。各スプリットには、次のフィールドが含まれます:

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

    GetRange に下限を渡して、範囲内のデータを読み取ります。

    • 各エントリには、プライマリキー名、プライマリキー値 (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:スプリット範囲内のプライマリキーの最大値。フォーマットは下限と同じです。

    GetRange に上限を渡して、範囲内のデータを読み取ります。

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