ComputeSplitsBySize オペレーションを呼び出すことで、テーブル内のデータを、指定した値とほぼ同じサイズを持つ複数の論理スプリットに分割できます。スプリット間の分割点と、スプリットが存在するホストに関する情報が返されます。ほとんどの場合、このオペレーションは、コンピューティングエンジンの並列処理計画などの実行計画を決定するために使用されます。
詳細については、ComputeSplitPointsBySize を参照してください。
前提条件
OTSClient インスタンスが初期化されている。詳細については、OTSClient インスタンスの初期化 を参照してください。
データテーブルが作成され、データがデータテーブルに書き込まれている。詳細については、データテーブルの作成 を参照してください。
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 | この操作で消費されたキャパシティユニット (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 に近い複数のスプリットに論理的に分割する方法の例を示しています。
$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']);
}