Todos los productos
Search
Centro de documentos

Tablestore:Dividir los datos de una tabla en fragmentos lógicos de tamaño aproximado al valor especificado

Última actualización: Sep 29, 2026

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.

Nota

Para obtener más información, consulte ComputeSplitPointsBySize.

Requisitos previos

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:

  • read: el rendimiento de lectura.

  • write: el rendimiento de escritura.

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:

  • lower_bound: el valor mínimo de la clave primaria dentro del rango del fragmento.

    Pase lower_bound a GetRange para leer los datos dentro del rango.

    • Cada entrada contiene, en orden, el nombre de la clave primaria, su valor (PrimaryKeyValue) y su tipo (PrimaryKeyType).

    • PrimaryKeyType acepta los siguientes valores: PrimaryKeyTypeConst::CONST_INTEGER (INTEGER), PrimaryKeyTypeConst::CONST_STRING (cadena codificada en UTF-8), PrimaryKeyTypeConst::CONST_BINARY (BINARY), PrimaryKeyTypeConst::CONST_INF_MIN (INF_MIN, es decir, -inf) y PrimaryKeyTypeConst::CONST_INF_MAX (INF_MAX, es decir, +inf).

  • upper_bound: el valor máximo de la clave primaria dentro del rango del fragmento. Su formato es igual al de lower_bound.

    Pase upper_bound a GetRange para leer los datos dentro del rango.

  • location: el host donde reside el fragmento. Este campo puede estar vacío.

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