指定大小計算分片
使用ComputeSplitsBySize接口可以將全表數(shù)據(jù)邏輯上劃分成若干接近指定大小的分片,并返回這些分片之間的分割點以及分片所在機器的提示。一般用于計算引擎規(guī)劃并發(fā)度等執(zhí)行計劃。
API說明請參見ComputeSplitPointsBySize。
前提條件
已初始化Client。具體操作,請參見初始化OTSClient。
已創(chuàng)建數(shù)據(jù)表并寫入數(shù)據(jù)。具體操作,請參見創(chuàng)建數(shù)據(jù)表。
接口
/**
* 將全表的數(shù)據(jù)在邏輯上劃分成接近指定大小的若干分片,返回這些分片之間的分割點以及分片所在機器的提示。
* 一般用于計算引擎規(guī)劃并發(fā)度等執(zhí)行計劃。
* @api
* @param [] $request 請求參數(shù)。
* @return [] 請求返回。
* @throws OTSClientException 當參數(shù)檢查出錯或服務(wù)端返回校驗出錯時拋出異常。
* @throws OTSServerException 當OTS服務(wù)端返回錯誤時拋出異常。
*/
public function computeSplitPointsBySize(array $request)
參數(shù)
請求信息
請求參數(shù)
參數(shù) | 說明 |
table_name | 數(shù)據(jù)表名稱。 |
split_size | 每個分片的近似大小。 單位為百兆(即100 MB)。 |
請求格式
$result = $client->ComputeSplitsBySize([
'table_name' => '<string>', //設(shè)置數(shù)據(jù)表名稱,必須設(shè)置。
'split_size' => <integer> //設(shè)置分片大小,必須設(shè)置。
]);
響應(yīng)信息
響應(yīng)參數(shù)
參數(shù) | 說明 |
consumed | 本次操作消耗服務(wù)能力單元的值。 capacity_unit表示使用的讀寫單元。
|
primary_key_schema | 數(shù)據(jù)表的主鍵定義,與創(chuàng)建數(shù)據(jù)表時的主鍵定義相同。 |
splits | 分片之間的分割點,包括如下內(nèi)容:
|
結(jié)果格式
[
'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>'
],
// ...
]
]
示例
以下示例用于將全表數(shù)據(jù)在邏輯上劃分成接近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']);
}