Todos os produtos
Search
Central de documentação

Tablestore:Read a row

Última atualização: Aug 20, 2026

Utilize o Tablestore SDK for Java para ler uma linha de uma tabela do modelo Wide Column usando sua chave primária completa.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize o cliente.

Descrição

Chame getRow para ler uma linha pela chave primária completa. É possível especificar as colunas retornadas, o intervalo de versões dos dados e as condições de filtro.

public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException
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("Row: " + response.getRow());

Parâmetros

GetRowRequest contém os seguintes parâmetros.

Nome

Tipo

Descrição

rowQueryCriteria (obrigatório)

SingleRowQueryCriteria

Critérios para leitura da linha.

transactionId (opcional)

String

ID da transação local. Defina este parâmetro somente ao ler dados em uma transação local.

Para obter informações sobre como adquirir e usar o ID, consulte Use local transactions.

Critérios de consulta de linha única

rowQueryCriteria é do tipo SingleRowQueryCriteria e contém os parâmetros abaixo.

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela.

primaryKey (obrigatório)

PrimaryKey

Chave primária da linha. Especifique todas as colunas de chave primária na mesma ordem e com os mesmos tipos definidos no esquema da tabela. As colunas de chave primária aceitam os tipos STRING, INTEGER e BINARY. Se a chave primária contiver uma coluna de incremento automático, especifique seu valor real.

maxVersions (opcional)

Integer

Número máximo de versões de dados a serem retornadas. Se houver mais versões correspondentes, o Tablestore as retorna da mais nova para a mais antiga. Defina pelo menos um entre maxVersions e timeRange.

timeRange (opcional)

TimeRange

Intervalo de versões dos dados. Apenas as versões dentro desse intervalo são retornadas. Configure pelo menos um dos parâmetros: maxVersions ou timeRange.

columnsToGet (opcional)

Set<String>

Colunas a serem retornadas. Se você não especificar este parâmetro, toda a linha será retornada. Ao defini-lo, caso a linha não possua nenhuma das colunas indicadas, o resultado será null.

filter (opcional)

Filter

Condição de filtro. Quando columnsToGet e filter forem especificados simultaneamente, o Tablestore seleciona primeiro as colunas de retorno e depois aplica o filtro.

Para detalhes sobre a configuração do filtro, veja Use filters.

Resposta

GetRowResponse inclui o seguinte campo específico da operação.

Campo

Tipo

Descrição

row

Row

Linha consultada obtida pela chamada de getRow. Retorna null se a linha não existir ou não atender à condição de filtro.

Exemplos

Ler colunas de atributo específicas

Use addColumnsToGet para definir os nomes das colunas de atributo desejadas. Somente essas colunas aparecerão na resposta.

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

Empregue setTimeRange para determinar um período temporal de versões. O sistema retornará exclusivamente as versões compreendidas nesse intervalo.

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

Aplique setFilter para estabelecer um filtro de valor de coluna. A linha só será devolvida pelo Tablestore se satisfizer a condição definida.

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