Todos os produtos
Search
Central de documentação

Tablestore:Split data for parallel scans

Última atualização: Aug 20, 2026

O Tablestore SDK for Java divide logicamente todos os dados de uma tabela em splits de tamanho especificado e retorna o intervalo de chave primária e a dica de localização de cada split.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição

O Tablestore divide logicamente a tabela em splits com tamanho aproximado especificado no servidor. Cada split inclui seu intervalo de chave primária (lowerBound / upperBound) e uma dica de localização da máquina que hospeda o split (location). Passe esses intervalos de chave primária para RangeRowQueryCriteria e processe os splits em paralelo por meio da leitura de dados por intervalo ou da leitura de dados com iterador.

public ComputeSplitsBySizeResponse computeSplitsBySize(ComputeSplitsBySizeRequest request) throws TableStoreException, ClientException

O exemplo a seguir divide a tabela split_demo em splits de aproximadamente 200 MB e exibe a localização e o intervalo de chave primária de cada split.

String tableName = "split_demo";

// Divide the full data of the table into splits of approximately 200 MB (2 * 100 MB).
ComputeSplitsBySizeRequest request =
        new ComputeSplitsBySizeRequest(tableName, 2);

ComputeSplitsBySizeResponse response = client.computeSplitsBySize(request);

System.out.println("PrimaryKeySchema: " + response.getPrimaryKeySchema());
List<Split> splits = response.getSplits();
System.out.println("Splits size: " + splits.size());

Iterator<Split> iterator = splits.iterator();
while (iterator.hasNext()) {
    Split split = iterator.next();
    // The primary key ranges returned by getLowerBound() and getUpperBound() can be passed directly
    // to RangeRowQueryCriteria for parallel reads with getRange or createRangeIterator.
    System.out.println("Location: " + split.getLocation());
    System.out.println("LowerBound: " + split.getLowerBound().jsonize());
    System.out.println("UpperBound: " + split.getUpperBound().jsonize());
}

Parâmetros

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela.

splitSize (obrigatório)

long

Tamanho aproximado de cada split, em unidades de 100 MB. Por exemplo, ao passar 2, os dados são divididos em splits de 200 MB cada.

Resposta

Resultado da divisão

ComputeSplitsBySizeResponse contém os seguintes campos específicos da operação.

Nome

Tipo

Descrição

splits

List<Split>

Splits lógicos. Use getSplits() para obter a lista.

primaryKeySchema

List<PrimaryKeySchema>

Esquema de chave primária da tabela. Use getPrimaryKeySchema() para obter o valor.

Informações do split

Cada elemento em ComputeSplitsBySizeResponse.splits[] é do tipo Split.

Nome

Tipo

Descrição

lowerBound

PrimaryKey

Limite inferior do intervalo de chave primária do split.

upperBound

PrimaryKey

Limite superior do intervalo de chave primária do split.

location

String

Dica de localização da máquina que armazena o split. O valor pode ser uma string vazia.