Tous les produits
Search
Centre de documentation

Tablestore:Lecture itérative des données

Dernière mise à jour :Aug 19, 2026

Utilisez le SDK .NET pour lire les données de Tablestore de manière itérative.

Prérequis

Initialiser un client Tablestore

Méthode

public IEnumerable<Row> GetRangeIterator(GetIteratorRequest request)

L'objet GetIteratorRequest inclut les paramètres suivants.

Paramètre

Type

Description

tableName (obligatoire)

string

Nom de la table.

inclusiveStartPrimaryKey (obligatoire)

PrimaryKey

Clé primaire de début, comprenant les noms et les valeurs des colonnes de clé primaire.

  • Les résultats incluent la ligne correspondant à la clé primaire de début.

  • Le nombre et les types de colonnes de clé primaire doivent correspondre au schéma de la table.

  • Pour une lecture vers l'avant, la clé primaire de début doit être inférieure à la clé primaire de fin.

  • Pour une lecture vers l'arrière, la clé primaire de début doit être supérieure à la clé primaire de fin.

  • Utilisez ColumnValue.INF_MIN pour représenter la valeur minimale infinie et ColumnValue.INF_MAX pour représenter la valeur maximale infinie.

exclusiveEndPrimaryKey (obligatoire)

PrimaryKey

Clé primaire de fin, comprenant les noms et les valeurs des colonnes de clé primaire.

  • Les résultats n'incluent pas la ligne correspondant à la clé primaire de fin.

  • Le nombre et les types de colonnes de clé primaire doivent correspondre au schéma de la table.

  • Utilisez ColumnValue.INF_MIN pour représenter la valeur minimale infinie et ColumnValue.INF_MAX pour représenter la valeur maximale infinie.

direction (obligatoire)

GetRangeDirection

Sens de lecture.

  • GetRangeDirection.Forward : lecture vers l'avant.

  • GetRangeDirection.Backward : lecture vers l'arrière.

consumedCapacityUnitCounter (obligatoire)

CapacityUnit

Objet permettant de suivre les unités de capacité consommées par l'opération.

limit (facultatif)

int

Nombre maximal de lignes à lire. La valeur doit être supérieure à 0.

columnsToGet (facultatif)

HashSet<string>

Colonnes à lire. Vous pouvez spécifier des colonnes de clé primaire ou des colonnes d'attribut.

  • Si ce paramètre n'est pas défini, la ligne entière est renvoyée.

  • S'il est défini, toute ligne ne contenant aucune des colonnes spécifiées est omise des résultats.

condition (facultatif)

IColumnCondition

Condition de filtrage. Pour plus d'informations, consultez la rubrique Filtre.

  • Lorsque les paramètres columnsToGet et condition sont tous deux spécifiés, Tablestore récupère les colonnes sélectionnées avant d'appliquer la condition de filtrage.

Exemple de code

L'exemple suivant lit de manière itérative les données de la table test_table, en commençant par la valeur de clé primaire « 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}");
}

Les exemples suivants montrent comment configurer différents paramètres pour les lectures itératives.

  • Définissez le sens de lecture.

    // 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);
  • Définissez le nombre maximal de lignes à lire.

    int limit = 20;
    
    // Create the request for the iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, null, limit);
  • Spécifiez les colonnes d'attribut à lire.

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