Tablestore fornece a API GetRow para ler uma única linha de dados e as APIs BatchGetRow e GetRange para ler várias linhas.
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.
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.
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.
ImportanteCaso 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
Usar a interface de linha de comando (CLI)
Usar um SDK
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.
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.