Llame a la operación ComputeSplitsBySize para dividir una tabla de datos en fragmentos lógicos de un tamaño similar. La respuesta incluye los puntos de división entre los fragmentos y los hosts donde reside cada uno. Esta operación se utiliza generalmente para determinar planes de ejecución, como los planes de concurrencia, en motores de cómputo.
Para obtener más información, consulte ComputeSplitPointsBySize.
Requisitos previos
Inicialice el cliente. Para obtener más información, consulte Initialize the Tablestore client.
Cree una tabla de datos y escriba información en ella. Para obtener más información, consulte Create a data table.
Operación de API
/**
* Logically split data in a table into several splits whose sizes are close to the specified size, and return the split points between splits and prompt about hosts in which the splits reside.
* In most cases, this operation is used to determine execution plans such as concurrency plans for compute engines.
* @api
* @param [] $request The request parameters.
* @return [] The response.
* @throws OTSClientException The exception that is thrown when a parameter error occurs or the Tablestore server returns a verification error.
* @throws OTSServerException The exception that is thrown when the Tablestore server returns an error.
*/
public function computeSplitPointsBySize(array $request)
Parámetros
Información de la solicitud
Parámetros de la solicitud
|
Parámetro |
Descripción |
|
table_name |
El nombre de la tabla de datos. |
|
split_size |
El tamaño aproximado de cada fragmento. Unidad: 100 MB. |
Sintaxis de la solicitud
$result = $client->ComputeSplitsBySize([
'table_name' => '<string>', // Required. The name of the data table.
'split_size' => <integer> // Required. The approximate size of each split.
]);
Información de la respuesta
Parámetros de la respuesta
Parámetro | Descripción |
consumed | Las unidades de capacidad (CU) que consume esta operación. capacity_unit contiene las CU de lectura y escritura consumidas:
|
primary_key_schema | El esquema de clave primaria de la tabla de datos. Coincide con el esquema definido durante la creación de la tabla. |
splits | Los puntos de división entre los fragmentos. Cada fragmento contiene los siguientes campos:
|
Sintaxis de la respuesta
[
'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>'
],
// ...
]
]
Ejemplos
A continuación se muestra un ejemplo que divide una tabla de datos en fragmentos lógicos de aproximadamente 100 MB cada uno (split_size = 1). Después, imprime la ubicación y el rango de claves primarias de cada fragmento.
$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']);
}