Todos os produtos
Search
Central de documentação

Tablestore:Batch get data

Última atualização: Jun 30, 2026

Leia linhas de uma ou mais tabelas do Tablestore em uma única solicitação em lote.

Observações de uso

Uma única solicitação em lote recupera até 100 linhas.

Pré-requisitos

Inicializar o cliente do Tablestore

Método

def batch_get_row(self, request)

Request parameters

  • items (Obrigatório)List[TableInBatchGetRowItem]: Itens da leitura em lote. Cada item aceita os seguintes parâmetros.

    Parâmetro

    Tipo

    Descrição

    table_name (Obrigatório)

    str

    Nome da tabela.

    primary_keys (Obrigatório)

    List[Tuple]

    Nome e valor de cada coluna de chave primária.

    • O tipo de dados de uma coluna de chave primária pode ser STRING, INTEGER ou BINARY.

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

    max_version (Opcional)

    int

    Número máximo de versões a retornar.

    • Especifique max_version ou time_range.

    • Se houver mais versões, o Tablestore retorna as mais recentes em ordem cronológica inversa, até esse limite.

    time_range (Opcional)

    Tuple

    Intervalo de versões dos dados a ler.

    • Especifique max_version ou time_range.

    • Colunas de atributo podem ter várias versões. O sistema retorna apenas as versões dentro do intervalo especificado.

    columns_to_get (Opcional)

    List[str]

    Colunas de chave primária ou de atributo a ler.

    • Se omitido, todas as colunas serão retornadas.

    • Retorna nulo se a linha não contiver nenhuma das colunas especificadas.

    column_filter (Opcional)

    ColumnCondition

    Filtro de coluna aplicado aos resultados.

    • Ao especificar ambos, o Tablestore recupera primeiro columns_to_get e depois aplica column_filter.

Exemplo de código

Leitura de duas linhas (row1 e row2) da tabela test_table:

try:
    primary_keys = []
    # Add the primary key for the first row.
    primary_keys.append([('id', 'row1')])
    # Add the primary key for the second row.
    primary_keys.append([('id', 'row2')])

    # Construct the query condition.
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, max_version=1)

    # Call the batch_get_row method to perform a batch get operation.
    request = BatchGetRowRequest()
    request.add(batchGetRowItem)
    response = client.batch_get_row(request)

    # Process the response.
    print('* Is all succeeded: %s' % response.is_all_succeed())
    print('* Succeeded Rows: ')
    for succeed in response.get_succeed_rows():
        if succeed.row is not None:
            print('table_name: %s. primary_key: %s, attribute_columns: %s.' % (succeed.table_name, succeed.row.primary_key,
                                                                               succeed.row.attribute_columns))
        else:
            print('table_name: %s. This row does not exist.' % succeed.table_name)
    if not response.is_all_succeed():
        print('* Failed Rows: ')
        for failed in response.get_failed_rows():
            print('table_name: %s. error code: %s, error message: %s.' % (failed.table_name, failed.error_code,
                                                                          failed.error_message))
except Exception as e:
    print("Batch get row failed with error: %s" % e)

Exemplos adicionais de parâmetros:

  • Para ler de várias tabelas, adicione um TableInBatchGetRowItem para cada tabela.

    # Construct the query condition for the second table.
    primary_keys1 = [[('order_id', '90fb478c-1360-11f0-a34d-00163e30a2a9')]]
    batchGetRowItem1 = TableInBatchGetRowItem('orders_small', primary_keys=primary_keys1, max_version=1)
    request.add(batchGetRowItem1)
  • Defina um intervalo de versões para ler apenas as versões nesse período.

    # Set the version range to the last 24 hours from the current time.
    time_range = (int(time.time() * 1000 - 86400 * 1000), int(time.time() * 1000))
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, time_range=time_range)
  • Especifique as colunas de atributo a ler.

    columns_to_get = ['col1']
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, columns_to_get=columns_to_get, max_version=1)

Tópicos relacionados

Ler dados em um intervalo