Todos os produtos
Search
Central de documentação

Tablestore:Iteratively read data

Última atualização: Jun 30, 2026

Use o .NET SDK para ler dados do Tablestore de forma iterativa.

Pré-requisitos

Inicializar um cliente Tablestore

Método

public IEnumerable<Row> GetRangeIterator(GetIteratorRequest request)

O GetIteratorRequest inclui os seguintes parâmetros.

Parâmetro

Tipo

Descrição

tableName (Obrigatório)

string

Nome da tabela.

inclusiveStartPrimaryKey (Obrigatório)

PrimaryKey

Chave primária inicial, que contém os nomes e valores das colunas de chave primária.

  • Os resultados incluem a linha correspondente à chave primária inicial.

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

  • Na leitura progressiva, a chave primária inicial deve ser menor que a final.

  • Na leitura regressiva, a chave primária inicial deve ser maior que a final.

  • Use ColumnValue.INF_MIN para representar o valor mínimo infinito e ColumnValue.INF_MAX para o valor máximo infinito.

exclusiveEndPrimaryKey (Obrigatório)

PrimaryKey

Chave primária final, que contém os nomes e valores das colunas de chave primária.

  • Os resultados não incluem a linha correspondente à chave primária final.

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

  • Use ColumnValue.INF_MIN para representar o valor mínimo infinito e ColumnValue.INF_MAX para o valor máximo infinito.

direction (Obrigatório)

GetRangeDirection

Direção da leitura.

  • GetRangeDirection.Forward: realiza uma leitura progressiva.

  • GetRangeDirection.Backward: realiza uma leitura regressiva.

consumedCapacityUnitCounter (Obrigatório)

CapacityUnit

Objeto que rastreia as unidades de capacidade consumidas pela operação.

limit (Opcional)

int

Número máximo de linhas a serem lidas. O valor deve ser maior que 0.

columnsToGet (Opcional)

HashSet<string>

Colunas a serem lidas. Especifique colunas de chave primária ou colunas de atributo.

  • Se este parâmetro não for definido, toda a linha será retornada.

  • Se definido, qualquer linha sem nenhuma das colunas especificadas será omitida dos resultados.

condition (Opcional)

IColumnCondition

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

  • Quando columnsToGet e condition são especificados, o Tablestore recupera as colunas selecionadas antes de aplicar a condição de filtro.

Exemplos de código

O exemplo a seguir lê dados iterativamente da tabela test_table, começando pelo valor de chave primária "row1".

try
{
    // Set the start primary key.
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    // Set the end primary key. The result does not include the end primary key.
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };

    // Create a CapacityUnit object to track the capacity units consumed during iteration.
    CapacityUnit capacityUnit = new CapacityUnit(0, 0);

    // Create the request for the iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);

    // Call GetRangeIterator to get the iterator.
    IEnumerable<Row> iterator = client.GetRangeIterator(getIteratorRequest);
    foreach (var row in iterator)
    {
        Console.WriteLine(row);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Get range iterator failed, exception: {ex.Message}");
}

Os exemplos a seguir mostram como configurar diferentes parâmetros para leituras iterativas.

  • Defina a direção da leitura.

    // Set the start primary key. For a backward read, the start primary key must be greater than the end primary key.
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };
    // Set the end primary key. The result does not include the end primary key.
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    
    // Create the request for the iterator and set the direction to backward.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Backward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);
  • Defina o número máximo de linhas a serem lidas.

    int limit = 20;
    
    // Create the request for the iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, null, limit);
  • Especifique as colunas de atributo a serem lidas.

    HashSet<string> columnsToGet = new HashSet<string> { "col2" };
    
    // Create the request for the iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, columnsToGet);