Operação de varredura do DynamoDB

Operação de varredura do DynamoDB
As operações de varredura são indiscutivelmente os instrumentos mais francos em uma lista de ferramentas do DynamoDB. Uma operação de varredura no AWS DynamoDB lê todos os itens da tabela ou o índice secundário no qual é usado. Pode pegar qualquer coisa dentro de seu caminho. Assim, uma operação de varredura, por padrão, retorna todos os atributos de dados para cada item em sua tabela ou índice.

Você pode alterar a natureza padrão das operações de varredura usando o parâmetro Projeção Expression, pois isso retorna apenas os atributos especificados e nem tudo no índice ou tabela. Notavelmente, cada solicitação de varredura só pode retornar até 1 mb de dados de itens e nada mais. Além disso, o DynamoDB pode aplicar uma expressão de filtro a qualquer conjunto de dados e restringir os resultados antes de entregar os resultados ao usuário.

Este guia elabora como você pode usar a operação de varredura no DynamoDB. Ele explica quando usar a operação de varredura do DynamoDB, como as expressões de filtro funcionam, a consistência de leitura das varreduras e varreduras paralelas.

Mas antes de chegarmos a isso, é vital usar a operação de varredura somente quando você tem certeza de que precisa. Ele opera em toda a tabela e pode usar toda a sua capacidade de leitura quando usado nas tabelas de tamanho real. Além disso, quando usado no caminho crítico de um aplicativo, ele pode ser lento ao retornar os resultados.

Situações em que você deve usar uma varredura em tabelas e índices do DynamoDB

Usar a operação de varredura no DynamoDB faz sentido nos seguintes cenários:

  • Quando sua mesa é muito pequena
  • Ao usar índices secundários globais para configurar as filas de trabalho
  • Ao exportar todos os dados de uma determinada tabela para outro sistema de armazenamento

Executando uma varredura básica em uma tabela de dynamoDB

Operações de varredura são fáceis de lidar. Tudo o que você precisa fazer é especificar sua tabela_name ao lado do comando AWS DynamoDB Scan. Um simples utilitário de varredura deve ficar assim:

$ AWS DynamoDB Scan \
--Nome da tabela emplyedata \
$ Local

O resultado é mostrado no seguinte. Observe que é truncado ser breve o suficiente para ilustração, pois mostrar todos os 35 itens neste artigo podem ser complicados.

A operação de varredura no DynamoDB usando as expressões de filtro

A resposta anterior retorna todos os 35 itens que estão contidos na tabela. No entanto, você pode usar o parâmetro de expressão -projeção para especificar os atributos em que você está interessado. Também conhecido como expressões de filtro, esse recurso permite refinar seus resultados e determinar os itens específicos dentro da tabela que você encontra na resposta. Os resultados que você não precisa não estarão na resposta.

Você deve aplicar apenas o parâmetro de expressão do filtro depois de terminar sua varredura completa e ter os resultados com você. No entanto, tanto as expressões de projeção quanto as varreduras completas do DynamoDB consumirão as quantidades iguais da sua capacidade de leitura. E embora os limites de varredura geralmente tenham um máximo de 1 MB de dados, esse cálculo acontece antes de avaliar os resultados da expressão do filtro.

Certifique -se de especificar todos os atributos que você precisa na expressão do filtro. Os atributos podem incluir chaves de partição e teclas de classificação. Expressões de filtro compartilham a mesma sintaxe que as expressões de condição.

Por exemplo, o utilitário de interface da linha de comando da AWS a seguir digitaliza a tabela Employeedata e retorna os detalhes dos itens que foram de última hora.

AWS DynamoDB Scan \
--Nome da tabela Employeedata \
--Expressão de filtro "LastEmployed =: Name" \
--Expression-attribute-values ​​'": name": "s": "user ab"'

Executando uma operação de varredura que exceda 1 MB de limite de dados

Dissemos uma e outra vez que a operação de varredura do DynamoDB tem um limite de dados de 1 MB. Mas o que acontece quando as varreduras atingem o limite de dados de 1 MB? Se você atingir o limite de 1 MB durante uma varredura, a resposta conterá uma tecla "NextToken".

Use o valor fornecido na tecla "NextToken" com o - -iniciando opção para continuar sua função de varredura de onde ele parou. Você pode testar essa funcionalidade com o - - máx Opção Limite. Neste exemplo, em vez de tentar uma varredura completa, examinamos nossa tabela empregada, mas atingimos o limite do item a um máximo de 1, como mostrado no seguinte:

$ AWS DynamoDB Scan \
--Nome de tabela UserEDerStable \
--Max-itens 1 \
$ Local

A resposta contém apenas um item. No entanto, você também encontrará uma chave "NextToken" nos resultados para permitir que você continue com a varredura de onde ela parou. Consulte a captura de tela a seguir:

A resposta anterior produz apenas um item de uma tabela que contém 35 itens. Você pode terminar a varredura usando a tecla NextToken fornecida.

Usando varreduras paralelas

As principais razões pelas quais o DynamoDB continua sendo um banco de dados popular são sua velocidade, flexibilidade e escalabilidade. Curiosamente, o uso da operação de varredura também permite exportar o conteúdo para análise de dados ou armazenamento a frio.

Recursos do DynamoDB Segmentos que permite que as varreduras paralelas digitalizem grandes quantidades de dados sem depender de um único processo de varredura em cada tabela. Este recurso permite especificar o número de Segmentos que você deseja que uma tabela seja dividida e os pedidos para cada segmento. Isso permite que os gerentes de dados digitalizem os dados de uma determinada tabela em paralelo.

Embora nossa tabela empregada que seja usada neste tutorial não tenha uma grande quantidade de dados, podemos dividi -lo em quatro segmentos e usá -lo para esta ilustração. Você pode estruturar seu comando de varredura definindo o número de segmentos e o número do segmento que você pretende digitalizar. Enquanto os segmentos são indexados zero, o uso de 0 na sua especificação de segmento pode ser uma tarefa difícil.

$ AWS DynamoDB Scan \
--Nome da tabela Employeedata \
--Total-Segmments 4 \
--Segmento 1 \
$ Local

Os resultados contêm apenas os itens que se enquadram no primeiro segmento. A resposta se parece com isso. Observe que os resultados são truncados para a brevidade e apresentam apenas os primeiros e os últimos itens no primeiro segmento.

Conclusão

Isso é tudo sobre a operação de varredura do dynamoDB. Embora seja sem dúvida uma das operações mais fáceis do AWS DynamoDB, você deve usá -lo com moderação, pois pode consumir toda a sua alocação de capacidade de consumo. Novamente, verifique se você sabe quando pode usar as diferentes aplicações da operação de varredura.