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
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());
}
}