Obter todos os itens do DynamoDB em Python (boto3)

Não existe "select all" no DynamoDB — ler uma tabela inteira significa um scan que você pagina até o fim. Cada resposta carrega no máximo 1 MB; o paginator de scan embutido do boto3 segue o LastEvaluatedKey por todas as páginas por você.

Code

import boto3

client = boto3.client("dynamodb")

paginator = client.get_paginator("scan")

items = []
for page in paginator.paginate(TableName="Music"):
    items.extend(page["Items"])

print(f"Table holds {len(items)} items")

Explicação

  • O paginator é o ponto principal — uma única chamada scan NÃO retorna a tabela; ela retorna até 1 MB. client.get_paginator("scan") emite requisições subsequentes (alimentando LastEvaluatedKey de volta como ExclusiveStartKey) até a tabela se esgotar — o loop que as pessoas esquecem quando se perguntam por que os itens estão "faltando". (Fazendo na mão? Continue chamando enquanto a resposta contiver um LastEvaluatedKey.)
  • Memóriaitems guarda a tabela inteira. Para tabelas grandes, processe cada page dentro do loop (grave em um arquivo, transmita, agregue) em vez de acumular.
  • Mais rápido em tabelas grandes: parallel scan — passe Segment=i, TotalSegments=N e execute N workers (threads/processos), cada um paginando seu próprio segmento. Mesmo custo total, muito menos tempo de relógio.
  • Custo — um scan completo lê (e cobra) cada byte de cada item, toda vez que você o executa. ProjectionExpression encolhe a resposta, não a conta; não coloque um scan em um caminho quente — é para isso que existem o query e o design de padrões de acesso.
  • Os itens retornam em DynamoDB JSON ({"S": ...}). Prefere tipos nativos do Python? Use a API resource (table.scan + um loop manual de LastEvaluatedKey — a API resource não tem paginator).

Faça visualmente

Dar uma olhada em uma tabela não precisa de um script: baixe o DynoTable para navegar em qualquer tabela em uma grade paginada — ele pagina os scans por você, sem loop para errar. E antes de fazer scan e pagar, a calculadora de preços do DynamoDB mostra quanto uma leitura completa da sua tabela realmente custa.

Exemplos relacionados

References

Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Monte esta solicitação visualmente

Componha esta operação no Construtor de Consultas do DynamoDB gratuito — key condition, filtro, índice, Limit, ordem de classificação e um laço de paginação — e copie de volta como um programa executável para SDK v3, CLI ou boto3.

Abrir o Construtor de Consultas do DynamoDB

Trabalhe com o DynamoDB sem o Console

O DynoTable é um cliente desktop rápido para o DynamoDB — navegue pelas tabelas, execute consultas no estilo SQL e edite itens localmente.