Todos os produtos
Search
Central de documentação

Tablestore:Read a row

Última atualização: Jul 08, 2026

O Tablestore SDK for Java lê uma única linha de uma tabela de dados pela chave primária. Use as opções de solicitação para limitar as colunas retornadas, restringir o intervalo de versões ou filtrar valores de coluna.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Definição do método

public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException

Lê uma única linha de uma tabela de dados pela chave primária. Especifique as condições de consulta em SingleRowQueryCriteria e obtenha o resultado com response.getRow().

Nota

Defina pelo menos um dos parâmetros: maxVersions ou timeRange. Caso contrário, o servidor retornará um erro de parâmetro.

O exemplo a seguir lê a linha com chave primária row1 da tabela get_row_demo e retorna apenas a versão mais recente de cada coluna.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("RequestId: " + response.getRequestId());
System.out.println("Read CU: " + response.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
System.out.println("Row: " + response.getRow());

Parâmetros

Configure os seguintes parâmetros em SingleRowQueryCriteria:

Name

Type

Description

tableName (required)

String

Nome da tabela de dados de leitura.

primaryKey (required)

PrimaryKey

Colunas de chave primária e seus valores.

  • Os tipos de coluna de chave primária suportados são STRING, INTEGER e BINARY.

  • A quantidade e os tipos das colunas de chave primária devem corresponder ao esquema da tabela.

  • Se a tabela tiver uma coluna de incremento automático, forneça a chave primária completa com o valor real dessa coluna.

maxVersions (one of two)

OptionalValue<Integer>

Número máximo de versões a retornar. Defina pelo menos um entre maxVersions ou timeRange.

Retorna até essa quantidade de versões, da mais recente para a mais antiga.

timeRange (one of two)

OptionalValue<TimeRange>

Intervalo de versões a retornar. Configure pelo menos um dos parâmetros: maxVersions ou timeRange.

Cada coluna de atributo pode ter múltiplas versões. Definir um intervalo de tempo retorna apenas as versões dentro desse período.

columnsToGet (optional)

Set<String>

Colunas para leitura. A lista pode incluir colunas de chave primária e de atributo.

  • Se columnsToGet não for definido, a linha inteira será retornada.

  • Se columnsToGet estiver configurado, mas a linha não contiver nenhuma das colunas especificadas, o Tablestore retornará null.

filter (optional)

OptionalValue<Filter>

Condição de filtro. Para mais informações, consulte Usar filtros.

Ao configurar simultaneamente columnsToGet e filter, o Tablestore seleciona primeiro as colunas por columnsToGet e depois aplica o filter.

Exemplos

Ler colunas de atributo específicas

Use addColumnsToGet para especificar os nomes das colunas de atributo a ler. Apenas essas colunas serão retornadas.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

// Read only col1 and col2
criteria.addColumnsToGet("col1");
criteria.addColumnsToGet("col2");

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (selected columns): " + response.getRow());

Ler por intervalo de versões

Use setTimeRange para especificar um intervalo de tempo de versões. Apenas as versões dentro do intervalo serão retornadas.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);

// Read all versions from the past day
long now = System.currentTimeMillis();
criteria.setTimeRange(new TimeRange(now - 86400 * 1000L, now));
criteria.setMaxVersions(Integer.MAX_VALUE);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (time range): " + response.getRow());

Ler com filtro

Use setFilter para definir um filtro de valor de coluna. O Tablestore retorna a linha apenas se ela corresponder à condição do filtro.

String tableName = "get_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);

// Return the row only when col1 equals "val1"
SingleColumnValueFilter filter = new SingleColumnValueFilter(
        "col1",
        SingleColumnValueFilter.CompareOperator.EQUAL,
        ColumnValue.fromString("val1"));
// Skip the row when the column is missing
filter.setPassIfMissing(false);
criteria.setFilter(filter);

GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (filtered): " + response.getRow());

Referências