Todos os produtos
Search
Central de documentação

Tablestore:Dividir dados de uma tabela em várias divisões lógicas com tamanhos aproximadamente iguais ao valor especificado

Última atualização: Jul 03, 2026

Use a operação ComputeSplitsBySize para dividir uma tabela de dados em divisões lógicas de tamanho aproximadamente igual. A resposta inclui os pontos de divisão entre as partes e os hosts onde cada divisão está localizada. Essa operação geralmente define planos de execução, como planos de concorrência, para mecanismos de computação.

Nota

Para mais informações, consulte ComputeSplitPointsBySize.

Pré-requisitos

Operação 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

Informações da solicitação

Parâmetros da solicitação

Parâmetro

Descrição

table_name

Nome da tabela de dados.

split_size

Tamanho aproximado de cada divisão. Unidade: 100 MB.

Sintaxe da solicitação

$result = $client->ComputeSplitsBySize([
    'table_name' => '<string>', // Required. The name of the data table.
    'split_size' => <integer>   // Required. The approximate size of each split.
]);     

Informações da resposta

Parâmetros da resposta

Parâmetro

Descrição

consumed

Unidades de capacidade (CUs) consumidas por esta operação.

capacity_unit contém as CUs de leitura e escrita consumidas:

  • read: throughput de leitura.

  • write: throughput de escrita.

primary_key_schema

Esquema de chave primária da tabela de dados, correspondente ao esquema definido na criação da tabela.

splits

Pontos de divisão entre as partes. Cada divisão contém os seguintes campos:

  • lower_bound: valor mínimo da chave primária no intervalo da divisão.

    Passe lower_bound para GetRange para ler dados dentro do intervalo.

    • Cada entrada contém, em sequência, o nome da chave primária, o valor da chave primária (PrimaryKeyValue) e o tipo da chave primária (PrimaryKeyType).

    • PrimaryKeyType aceita os seguintes valores: PrimaryKeyTypeConst::CONST_INTEGER (INTEGER), PrimaryKeyTypeConst::CONST_STRING (string codificada em UTF-8), PrimaryKeyTypeConst::CONST_BINARY (BINARY), PrimaryKeyTypeConst::CONST_INF_MIN (INF_MIN, ou seja, -inf) e PrimaryKeyTypeConst::CONST_INF_MAX (INF_MAX, ou seja, +inf).

  • upper_bound: valor máximo da chave primária no intervalo da divisão. O formato é o mesmo de lower_bound.

    Passe upper_bound para GetRange para ler dados dentro do intervalo.

  • location: host onde a divisão está localizada. Este campo pode estar vazio.

Sintaxe da resposta

[
    '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>'
        ],
        // ...
    ]
]           

Exemplos

O exemplo a seguir divide uma tabela de dados em divisões lógicas de aproximadamente 100 MB cada (split_size = 1) e imprime a localização e o intervalo de chave primária de cada divisão.

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