Todos os produtos
Search
Central de documentação

Tablestore:Dividir dados em shards de um tamanho específico

Última atualização: Jun 23, 2026

Você pode chamar a operação ComputeSplitsBySize para dividir dados de uma tabela em shards lógicos cujos tamanhos são aproximadamente o valor especificado. As informações sobre os pontos de divisão entre os shards e os hosts nos quais os shards residem são retornadas. Na maioria dos casos, essa operação é usada para implementar planos em mecanismos de computação, como planos de concorrência.

null

Para mais informações, consulte ComputeSplitPointsBySize.

Pré-requisitos

Inicializar um cliente

Parâmetros

Parâmetro

Descrição

tableName

O nome da tabela.

splitSize

O tamanho especificado de cada shard.

Unidade: 100 MB.

Exemplo

O código a seguir fornece um exemplo de como dividir dados de uma tabela em shards lógicos cujos tamanhos são aproximadamente 200 MB:

private static void describeTable(SyncClient client) {
    // Specify the name of the table. Split the data in the table into logical shards and specify that the size ofeach shard is approximately 200 MB.
    ComputeSplitsBySizeRequest request = new ComputeSplitsBySizeRequest("<TABLE_NAME>", 2);
    ComputeSplitsBySizeResponse response = client.computeSplitsBySize(request);
    System.out.println("ConsumedCapacity=" + response.getConsumedCapacity().jsonize());
    System.out.println("PrimaryKeySchema=" + response.getPrimaryKeySchema());
    System.out.println("RequestId=" + response.getRequestId());
    System.out.println("TraceId=" + response.getTraceId());
    List<Split> splits = response.getSplits();
    System.out.println("splits.size=" + splits.size());
    Iterator<Split> iterator = splits.iterator();
    while (iterator.hasNext()) {
        Split split = iterator.next();
        System.out.println("split.getLocation()=" + split.getLocation());
        // You can inject the split.getLowerBound() and split.getUpperBound() functions into the RangeRowQueryCriteria class, and pass the RangeRowQueryCriteria class to perform the getRange() or createRangeIterator() operation.
        System.out.println("split.getLowerBound()=" + split.getLowerBound().jsonize());
        System.out.println("split.getUpperBound()=" + split.getUpperBound().jsonize());
    }
}