Todos os produtos
Search
Central de documentação

Tablestore:Leitura de dados

Última atualização: Sep 29, 2026

Tablestore fornece a API GetRow para ler uma única linha de dados e as APIs BatchGetRow e GetRange para ler várias linhas.

Nota

A unidade básica de uma tabela é a linha, composta por colunas de chave primária e de atributo. As colunas de chave primária são obrigatórias e seus nomes e tipos devem ser idênticos em todas as linhas. Já as colunas de atributo são opcionais e podem variar em cada linha. Para mais informações, consulte Wide table model.

Observação

Ao ler dados de uma tabela com coluna de chave primária de incremento automático, forneça a chave primária completa, incluindo o valor da coluna de incremento automático. Para mais informações, consulte Auto-increment primary key column.

Importante

Caso não tenha o valor da coluna de chave primária de incremento automático, execute uma consulta de intervalo na primeira coluna de chave primária para ler os dados.

Ler uma única linha de dados

Use a operação GetRow para ler uma única linha de dados. Essa operação é útil quando você conhece a chave primária completa e precisa ler apenas algumas linhas.

Ao ler uma única linha, configure as seguintes condições para filtrar os dados:

  • Por padrão, o sistema retorna todas as colunas. Configure a operação para retornar apenas colunas específicas.

  • Use um filtro para retornar linhas que atendam a condições específicas. Para mais informações, consulte Filters.

  • Se houver várias versões de dados configuradas para a tabela, especifique o número máximo de versões a serem lidas. Você também pode ler dados de um intervalo de tempo ou com um número de versão específico. Para mais informações sobre versões de dados, consulte Data versions and lifecycle.

A operação de leitura tem dois resultados possíveis:

  • Se a linha existir, a operação retorna as colunas de chave primária e de atributo da linha.

  • Se a linha não existir, o resultado não a inclui e não gera erros.

Leitura de dados em lote

Use a operação BatchGetRow para ler várias linhas em uma única solicitação ou para ler dados de várias tabelas simultaneamente. Essa operação é útil quando você conhece as chaves primárias completas e precisa ler muitas linhas ou dados de múltiplas tabelas.

Uma operação BatchGetRow consiste em várias suboperações GetRow. O processo de construção de uma suboperação é idêntico ao da operação GetRow.

Ao ler dados em lote, configure as seguintes condições para filtrar os dados:

  • Leia dados de várias tabelas em uma única solicitação.

    Uma única solicitação lê no máximo 100 linhas.

  • Por padrão, o sistema retorna todas as colunas. Configure a operação para retornar apenas colunas específicas.

    Todas as linhas em uma leitura em lote usam as mesmas condições de parâmetro. Por exemplo, ColumnsToGet=[colA] recupera apenas a coluna colA para todas as linhas especificadas.

  • Use um filtro para recuperar linhas que atendam a condições específicas. Para mais informações, consulte Filters.

  • Se houver várias versões de dados configuradas para a tabela, especifique o número máximo de versões a serem lidas. Você também pode ler dados de um intervalo de tempo ou com um número de versão específico. Para mais informações sobre versões de dados, consulte Data versions and lifecycle.

O Tablestore executa as suboperações de uma operação BatchGetRow de forma independente e retorna o resultado de cada suboperação.

Leitura de dados em um intervalo

Use a operação GetRange para ler dados dentro de um intervalo especificado. Essa operação é útil quando é possível determinar um intervalo completo de chave primária ou um prefixo de chave.

Nota

Nas tabelas do Tablestore, todas as linhas são classificadas por chave primária. A chave primária de uma tabela é composta sequencialmente por todas as colunas de chave primária. Portanto, as linhas não são classificadas com base em uma coluna de chave primária específica.

A operação GetRange segue o princípio de correspondência mais à esquerda. O Tablestore compara os valores em sequência, da primeira à última coluna de chave primária, para ler dados cujos valores de chave primária estejam no intervalo especificado. Por exemplo, suponha que a chave primária de uma tabela de dados consista nas colunas PK1, PK2 e PK3. Ao ler os dados, o Tablestore verifica primeiro se o valor PK1 de uma linha está no intervalo especificado para a primeira coluna. Se estiver, o Tablestore interrompe a verificação das demais colunas e retorna a linha. Caso contrário, o Tablestore continua a verificar se os valores das outras colunas de chave primária estão nos respectivos intervalos, seguindo a mesma lógica do PK1.

Ao ler dados em um intervalo, configure as seguintes condições para filtrar os dados:

  • Especifique um prefixo de chave e use os pontos virtuais INF_MIN (mínimo infinito) e INF_MAX (máximo infinito) para as outras colunas de chave primária. Também é possível especificar um intervalo completo de chave primária para ler os dados.

    Importante

    Caso não seja possível determinar o prefixo da chave, execute uma varredura completa na tabela definindo todo o intervalo de chave primária de INF_MIN a INF_MAX. Essa operação consome muitos recursos de computação, portanto, use-a com cautela.

    Se o intervalo for grande, a varredura é interrompida quando o número de linhas varridas ou o volume de dados excede um determinado limite. A operação retorna as linhas recuperadas e informações sobre a próxima chave primária. Use essas informações para iniciar outra solicitação e recuperar as linhas restantes no intervalo.

    A operação GetRange pode ser interrompida e retornar dados se uma das seguintes condições for atendida:

    • O volume de dados varridos atinge 4 MB.

    • O número de linhas varridas atinge 5.000.

    • O número de linhas retornadas atinge o limite superior.

    • O throughput de leitura é insuficiente para ler a próxima linha porque todo o throughput de leitura reservado foi consumido.

  • Leia um número máximo especificado de linhas em ordem direta ou inversa. Por exemplo, leia no máximo 5 linhas em ordem direta.

  • Por padrão, o sistema retorna todas as colunas. Configure a operação para retornar apenas colunas específicas.

  • Use um filtro para recuperar linhas que atendam a condições específicas. Para mais informações, consulte Filters.

    Todas as linhas em uma leitura de intervalo usam as mesmas condições de parâmetro. Por exemplo, ColumnsToGet=[colA] recupera apenas a coluna colA para todas as linhas no intervalo.

  • Se houver várias versões de dados configuradas para a tabela, especifique o número máximo de versões a serem lidas. Você também pode ler dados de um intervalo de tempo ou com um número de versão específico. Para mais informações sobre versões de dados, consulte Data versions and lifecycle.

Ao usar o GetRange para varrer um grande volume de dados, o Tablestore executa apenas uma varredura por solicitação. A varredura é interrompida se o número de linhas exceder 5.000 ou o tamanho dos dados exceder 4 MB. Os dados que excedem esses limites não são retornados. Use a paginação para recuperar os dados subsequentes.

Como usar

Usar o console

Use o console para consultar uma única linha ou dados em um intervalo.

  1. Faça login no Tablestore console.

  2. Na página Overview, localize a instância e clique em Instance Management na coluna Actions.

  3. Na aba Instance Details, localize a tabela na seção Data Table List e clique em Query/Search na coluna Actions.

  4. Na aba Data Management, clique em Query Data. Em seguida, selecione se deseja ler uma única linha ou dados em um intervalo.

    Ler uma única linha de dados

    1. Na caixa de diálogo Query Data, defina Query Range como Single Row Query e selecione a tabela a ser consultada.

    2. Por padrão, o sistema retorna todas as colunas. Para retornar apenas colunas de atributo específicas, desative Get All Columns e insira as colunas de atributo desejadas.

      Separe múltiplas colunas de atributo com vírgula (,).

    3. Insira o Primary Key Value da linha de destino.

      A integridade e a precisão do valor da chave primária afetam os resultados da consulta.

    4. Insira o Max Versions para especificar o número de versões a serem retornadas.

    5. Clique em OK.

    Ler dados em um intervalo

    1. Na caixa de diálogo Query Data, defina Query Range como Range Query e selecione a tabela a ser consultada.

    2. Por padrão, o sistema retorna todas as colunas. Para retornar apenas colunas de atributo específicas, desative Get All Columns e insira as colunas de atributo desejadas.

      Separe múltiplas colunas de atributo com vírgula (,).

    3. Insira as colunas de chave primária inicial e final.

    4. Importante
      • Uma consulta de intervalo avalia primeiro a primeira coluna de chave primária. Se os valores forem iguais, o sistema avalia a segunda coluna de chave primária. Essa regra se aplica a todas as colunas subsequentes.

      • O intervalo de leitura é fechado à esquerda e aberto à direita. Isso significa que o início do intervalo é inclusivo e o final é exclusivo.

    5. Insira o Max Versions para especificar o número de versões a serem retornadas.

    6. Defina a direção de classificação do resultado da consulta. Selecione Forward Query ou Backward Query.

    7. Clique em OK.

Usar a interface de linha de comando (CLI)

Use a interface de linha de comando (CLI) para executar os seguintes comandos e ler dados.

  • Execute o comando get para ler uma única linha de dados. Para mais informações, consulte Read data.

    O exemplo a seguir lê a linha em que a primeira coluna de chave primária tem o valor "86" e a segunda tem o valor 6771.

    get --pk '["86",6771]'
  • Execute o comando scan para ler dados em um intervalo. Para mais informações, consulte Export data.

    O exemplo a seguir lê dados em ordem inversa no intervalo de chave primária entre ["86",7000] e ["86",6770] e retorna apenas a coluna pid.

    scan --begin '["86",7000]' --end '["86",6770]' --backward --columns pid

Usar um SDK

Use o Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK ou PHP SDK para ler dados. Esta seção usa o SDK Java como exemplo.

Ler uma única linha de dados

Ao ler dados, especifique a versão dos dados, as colunas a serem lidas, os filtros e os filtros de expressão regular.

  • Leia a versão mais recente dos dados e colunas específicas

    O código de exemplo a seguir mostra como ler dados da versão mais recente das colunas especificadas de uma linha em uma tabela de dados.

    private static void getRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
    
        // Specify the table name and primary key to read a row of data. 
        SingleRowQueryCriteria criteria = new SingleRowQueryCriteria("<TABLE_NAME>", primaryKey);
        // Set the MaxVersions parameter to 1 to read the latest version of data. 
        criteria.setMaxVersions(1);
        GetRowResponse getRowResponse = client.getRow(new GetRowRequest(criteria));
        Row row = getRowResponse.getRow();
    
        System.out.println("Read complete. Result:");
        System.out.println(row);
    
        // Specify the columns that you want to read. 
        criteria.addColumnsToGet("Col0");
        getRowResponse = client.getRow(new GetRowRequest(criteria));
        row = getRowResponse.getRow();
    
        System.out.println("Read complete. Result:");
        System.out.println(row);
    } 
  • Leitura de dados com um filtro

    O código de exemplo a seguir mostra como ler dados da versão mais recente de uma linha em uma tabela de dados e usar um filtro com base no valor da coluna Col0.

    private static void getRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
    
        // Specify the table name and primary key to read a row of data. 
        SingleRowQueryCriteria criteria = new SingleRowQueryCriteria("<TABLE_NAME>", primaryKey);
        // Set the MaxVersions parameter to 1 to read the latest version of data. 
        criteria.setMaxVersions(1);
    
        // Configure a filter to return a row in which the value of the Col0 column is 0. 
        SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("Col0",
                SingleColumnValueFilter.CompareOperator.EQUAL, ColumnValue.fromLong(0));
        // If the Col0 column does not exist, the row is not returned. 
        singleColumnValueFilter.setPassIfMissing(false);
        criteria.setFilter(singleColumnValueFilter);
    
        GetRowResponse getRowResponse = client.getRow(new GetRowRequest(criteria));
        Row row = getRowResponse.getRow();
    
        System.out.println("Read complete. Result:");
        System.out.println(row);
    }
  • Use um filtro de expressão regular ao ler dados

    O código de exemplo a seguir mostra como ler os dados da coluna Col1 de uma linha em uma tabela de dados e usar uma expressão regular para filtrar esses dados.

    private static void getRow(SyncClient client, String pkValue) {
        // Specify the name of the data table. 
        SingleRowQueryCriteria criteria = new SingleRowQueryCriteria("<TABLE_NAME>");
     
        // Construct the primary key. 
        PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue))
            .build();
        criteria.setPrimaryKey(primaryKey);
     
        // Set the MaxVersions parameter to 1 to read the latest version of data. 
        criteria.setMaxVersions(1);
     
        // Configure a filter. A row is returned when cast<int>(regex(Col1)) is greater than 100. 
        RegexRule regexRule = new RegexRule("t1:([0-9]+),", RegexRule.CastType.VT_INTEGER);
        SingleColumnValueRegexFilter filter =  new SingleColumnValueRegexFilter("Col1",
            regexRule,SingleColumnValueRegexFilter.CompareOperator.GREATER_THAN, ColumnValue.fromLong(100));
        criteria.setFilter(filter);
     
        GetRowResponse getRowResponse = client.getRow(new GetRowRequest(criteria));
        Row row = getRowResponse.getRow();
    
        System.out.println("Read complete. Result:");
        System.out.println(row);
    }

Leitura de dados em lote

O código de exemplo a seguir mostra como configurar as condições de versão, as colunas a serem lidas e os filtros para ler 10 linhas de dados.

private static void batchGetRow(SyncClient client) {
    // Specify the name of the data table. 
    MultiRowQueryCriteria multiRowQueryCriteria = new MultiRowQueryCriteria("<TABLE_NAME>");
    // Specify 10 rows that you want to read. 
    for (int i = 0; i < 10; i++) {
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("pk" + i));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        multiRowQueryCriteria.addRow(primaryKey);
    }
    // Add conditions. 
    multiRowQueryCriteria.setMaxVersions(1);
    multiRowQueryCriteria.addColumnsToGet("Col0");
    multiRowQueryCriteria.addColumnsToGet("Col1");
    SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("Col0",
            SingleColumnValueFilter.CompareOperator.EQUAL, ColumnValue.fromLong(0));
    singleColumnValueFilter.setPassIfMissing(false);
    multiRowQueryCriteria.setFilter(singleColumnValueFilter);

    BatchGetRowRequest batchGetRowRequest = new BatchGetRowRequest();
    // The BatchGetRow operation allows you to read data from multiple tables. Each multiRowQueryCriteria parameter specifies query conditions for one table. You can add multiple multiRowQueryCriteria parameters to read data from multiple tables. 
    batchGetRowRequest.addMultiRowQueryCriteria(multiRowQueryCriteria);

    BatchGetRowResponse batchGetRowResponse = client.batchGetRow(batchGetRowRequest);

    System.out.println("Whether all operations are successful:" + batchGetRowResponse.isAllSucceed());
    System.out.println("Read complete. Result:");
    for (BatchGetRowResponse.RowResult rowResult : batchGetRowResponse.getSucceedRows()) {
        System.out.println(rowResult.getRow());
    }
    if (!batchGetRowResponse.isAllSucceed()) {
        for (BatchGetRowResponse.RowResult rowResult : batchGetRowResponse.getFailedRows()) {
            System.out.println("Failed rows:" + batchGetRowRequest.getPrimaryKey(rowResult.getTableName(), rowResult.getIndex()));
            System.out.println("Cause of failures:" + rowResult.getError());
        }

        /**
         * You can use the createRequestForRetry method to construct another request to retry the operations on failed rows. In this example, only the retry request is constructed. 
         * We recommend that you use the custom retry policy in Tablestore SDKs as the retry method. This way, you can retry failed rows after batch operations are performed. After you specify the retry policy, you do not need to add retry code to call the operation. 
         */
        BatchGetRowRequest retryRequest = batchGetRowRequest.createRequestForRetry(batchGetRowResponse.getFailedRows());
    }
}

Ler dados em um intervalo

  • Leia dados dentro de um intervalo definido

    O código de exemplo a seguir mostra como ler dados cujos valores de chave primária estão no intervalo especificado na direção direta. Se o valor do parâmetro nextStartPrimaryKey estiver vazio na resposta, o sistema lê todos os dados no intervalo. Caso contrário, inicie outra solicitação até que todos os dados sejam retornados.

    private static void getRange(SyncClient client, String startPkValue, String endPkValue) {
        // Specify the name of the data table. 
        RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria("<TABLE_NAME>");
    
        // Specify the start primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(startPkValue));
        rangeRowQueryCriteria.setInclusiveStartPrimaryKey(primaryKeyBuilder.build());
    
        // Specify the end primary key. 
        primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(endPkValue));
        rangeRowQueryCriteria.setExclusiveEndPrimaryKey(primaryKeyBuilder.build());
    
        rangeRowQueryCriteria.setMaxVersions(1);
    
        System.out.println("GetRange result:");
        while (true) {
            GetRangeResponse getRangeResponse = client.getRange(new GetRangeRequest(rangeRowQueryCriteria));
            for (Row row : getRangeResponse.getRows()) {
                System.out.println(row);
            }
    
            // If the value of the nextStartPrimaryKey parameter is not null, continue the read operation. 
            if (getRangeResponse.getNextStartPrimaryKey() != null) {
                rangeRowQueryCriteria.setInclusiveStartPrimaryKey(getRangeResponse.getNextStartPrimaryKey());
            } else {
                break;
            }
        }
    }         
  • Leia dados com base em um intervalo definido pela primeira coluna de chave primária

    O código de exemplo a seguir mostra como ler dados dentro do intervalo determinado pelo valor da primeira coluna de chave primária na direção direta. Neste exemplo, o valor inicial da segunda coluna de chave primária é definido como INF_MIN e o valor final como INF_MAX. Se o valor do parâmetro nextStartPrimaryKey for nulo na resposta, o sistema lê todos os dados no intervalo. Caso contrário, inicie outra solicitação até que todos os dados sejam retornados.

    private static void getRange(SyncClient client, String startPkValue, String endPkValue) {
        // Specify the name of the data table. 
        RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria("<TABLE_NAME>");
        // Specify the start primary key. In this example, two primary key columns are used. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk1", PrimaryKeyValue.fromString(startPkValue));// Set the value of the first primary key column to a specific value. 
        primaryKeyBuilder.addPrimaryKeyColumn("pk2", PrimaryKeyValue.INF_MIN);// Set the value of the second primary key column to an infinitely small value. 
        rangeRowQueryCriteria.setInclusiveStartPrimaryKey(primaryKeyBuilder.build());
    
        // Specify the end primary key. 
        primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk1", PrimaryKeyValue.fromString(endPkValue));// Set the value of the first primary key column to a specific value. 
        primaryKeyBuilder.addPrimaryKeyColumn("pk2", PrimaryKeyValue.INF_MAX);// Set the value of the second primary key column to an infinitely great value. 
        rangeRowQueryCriteria.setExclusiveEndPrimaryKey(primaryKeyBuilder.build());
    
        rangeRowQueryCriteria.setMaxVersions(1);
    
        System.out.println("GetRange result:");
        while (true) {
            GetRangeResponse getRangeResponse = client.getRange(new GetRangeRequest(rangeRowQueryCriteria));
            for (Row row : getRangeResponse.getRows()) {
                System.out.println(row);
            }
    
            // If the value of the nextStartPrimaryKey parameter is not null, continue the read operation. 
            if (getRangeResponse.getNextStartPrimaryKey() != null) {
                rangeRowQueryCriteria.setInclusiveStartPrimaryKey(getRangeResponse.getNextStartPrimaryKey());
            } else {
                break;
            }
        }
    }    
  • Leia dados dentro de um intervalo definido e aplique um filtro de expressão regular a uma coluna específica

    O código de exemplo a seguir mostra como ler dados cujos valores de chave primária estão no intervalo de ["pk:2020-01-01.log", "pk:2021-01-01.log") da coluna Col1 e usar uma expressão regular para filtrar esses dados.

    private static void getRange(SyncClient client) {
        // Specify the name of the data table. 
        RangeRowQueryCriteria criteria = new RangeRowQueryCriteria("<TABLE_NAME>");
     
        // Specify ["pk:2020-01-01.log", "pk:2021-01-01.log") as the range of the primary key of the data that you want to read. The range is a left-closed, right-open interval. 
        PrimaryKey pk0 = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("2020-01-01.log"))
            .build();
        PrimaryKey pk1 = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("2021-01-01.log"))
            .build();
        criteria.setInclusiveStartPrimaryKey(pk0);
        criteria.setExclusiveEndPrimaryKey(pk1);
     
        // Set the MaxVersions parameter to 1 to read the latest version of data. 
        criteria.setMaxVersions(1);
     
        // Configure a filter. A row is returned when cast<int>(regex(Col1)) is greater than 100. 
        RegexRule regexRule = new RegexRule("t1:([0-9]+),", RegexRule.CastType.VT_INTEGER);
        SingleColumnValueRegexFilter filter =  new SingleColumnValueRegexFilter("Col1",
            regexRule,SingleColumnValueRegexFilter.CompareOperator.GREATER_THAN,ColumnValue.fromLong(100));
        criteria.setFilter(filter);
    
        while (true) {
            GetRangeResponse resp = client.getRange(new GetRangeRequest(criteria));
            for (Row row : resp.getRows()) {
                // do something
                System.out.println(row);
            }
            if (resp.getNextStartPrimaryKey() != null) {
                criteria.setInclusiveStartPrimaryKey(resp.getNextStartPrimaryKey());
            } else {
                break;
            }
       }
    }

Descrição de faturamento

A cobrança baseia-se no número de Capacity Units (CUs) que uma operação consome. As cobranças por CUs de leitura e gravação medidos são separadas das cobranças por CUs de leitura e gravação reservados. O tipo de instância determina se os CUs medidos ou reservados são consumidos.

Nota

Para mais informações sobre tipos de instância e CUs, consulte Instances e Read/write throughput.

A leitura de dados consome Read Capacity Units (RCUs), mas não Write Capacity Units (WCUs). O cálculo dos RCUs consumidos ocorre da seguinte forma:

  • RCUs consumidos por uma operação GetRow

    O número de RCUs consumidos baseia-se no tamanho total dos dados lidos, que é a soma dos tamanhos de dados da chave primária e das colunas de atributo recuperadas. Esse tamanho total é dividido por 4 KB e arredondado para o número inteiro mais próximo. Se a linha especificada não existir, a operação consome um RCU.

  • RCUs consumidos por uma operação BatchGetRow

    O cálculo dos RCUs para uma operação BatchGetRow trata cada RowInBatchGetRowRequest como uma operação GetRow separada.

  • RCUs consumidos por uma operação GetRange

    O número de RCUs consumidos baseia-se no tamanho total de todos os dados varridos, que é a soma dos tamanhos de dados das chaves primárias e das colunas de atributo varridas para todas as linhas no intervalo. Esse tamanho total é dividido por 4 KB e arredondado para o número inteiro mais próximo. Por exemplo, se uma varredura abranger 10 linhas e o tamanho combinado da chave primária e das colunas de atributo varridas para cada linha for de 330 bytes, o tamanho total dos dados será de 3,3 KB (10 linhas × 330 bytes). Essa operação consome 1 RCU.