ComputeSplitsBySize API を呼び出して、データテーブルをほぼ同じサイズの複数の論理スプリットに分割します。レスポンスには、スプリット間のスプリットポイントと、各スプリットが存在するホストが含まれます。このオペレーションは、通常、コンピューティングエンジン向けの、同時実行プランなどの実行計画を決定するために使用します。
詳細については、「ComputeSplitsBySize」をご参照ください。
前提条件
-
クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。
-
データテーブルが作成され、データが書き込まれていること。詳細については、「データテーブルを作成する」をご参照ください。
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 が含まれます:
|
primary_key_schema | データテーブルのプライマリキースキーマ。テーブル作成時に定義されたスキーマと一致します。 |
splits | 論理スプリットのリスト。各スプリットには、次のフィールドが含まれます:
|
レスポンス構文
[
'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']);
}