As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Entregue registros do DynamoDB para o Amazon S3 usando o Kinesis Data Streams e o Firehose com AWS CDK
Criado por Shashank Shrivastava (AWS) e Daniel Matuki da Cunha () AWS
Repositório de código: ingestão do Amazon DynamoDB no Amazon | Ambiente: PoC ou piloto | Tecnologias: sem servidor; lagos de dados; bancos de dados; armazenamento e backup |
AWSserviços: AWSCDK; Amazon DynamoDB; Amazon Data Firehose; Amazon AWS Kinesis Data Streams; Lambda; Amazon S3 |
Resumo
Esse padrão fornece um código de amostra e um aplicativo para entrega de registros do Amazon DynamoDB para o Amazon Simple Storage Service (Amazon S3) usando o Amazon Kinesis Data Streams e o Amazon Data Firehose. A abordagem do padrão usa construções AWS Cloud Development Kit (AWS CDK) L3 e inclui um exemplo de como realizar a transformação de dados AWS Lambda antes que os dados sejam entregues ao bucket S3 de destino na Amazon Web Services ()AWS Cloud.
O Kinesis Data Streams registra alterações no nível de item em tabelas do DynamoDB e as replica no fluxo de dados do Kinesis requerido. Seus aplicativos podem acessar o fluxo de dados do Kinesis e visualizar as alterações no nível do item em tempo quase real. O Kinesis Data Streams também fornece acesso a outros serviços do Amazon Kinesis, como Firehose e Amazon Managed Service para Apache Flink. Isso significa desenvolver aplicativos para fornecer painéis em tempo real, gerar alertas, implementar definições de preço e de publicidade dinâmicas, além de executar análises de dados sofisticadas.
Você pode usar esse padrão para seus casos de uso de integração de dados. Por exemplo, veículos de transporte ou equipamentos industriais podem enviar grandes volumes de dados para uma tabela do DynamoDB. Esses dados podem então ser transformados e armazenados em um data lake hospedado no Amazon S3. Em seguida, você pode consultar e processar os dados e prever possíveis defeitos usando serviços sem servidor, como Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition e. AWS Glue
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
AWS Command Line Interface (AWS CLI), instalado e configurado. Para obter mais informações, consulte Introdução ao AWS CLI na AWS CLI documentação.
Node.js (18.x+) e npm, instalados e configurados. Para obter mais informações, consulte Como baixar e instalar o Node.js e o npm
na documentação do npm
.aws-cdk (2.x+), instalado e configurado. Para obter mais informações, consulte Introdução ao AWS CDK na AWS CDK documentação.
O repositório GitHub aws-dynamodb-kinesisfirehose-sde 3 ingestões
, clonado e configurado em sua máquina local. Dados de amostra existentes para a tabela do DynamoDB. Deve usar o seguinte formato:
{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}
Arquitetura
O diagrama a seguir mostra um exemplo de fluxo de trabalho para entrega de registros do DynamoDB para o Amazon S3 usando o Kinesis Data Streams e o Firehose.
O diagrama mostra o seguinte fluxo de trabalho:
Os dados são ingeridos usando o Amazon API Gateway como proxy para o DynamoDB. Você também pode usar qualquer outra origem para ingerir dados no DynamoDB.
As alterações no nível do item são geradas quase em tempo real no Kinesis Data Streams para entrega ao Amazon S3.
O Kinesis Data Streams envia os registros para a Firehose para transformação e entrega.
Uma função Lambda converte os registros de um formato de registro do DynamoDB em JSON formato, que contém somente os nomes e valores dos atributos do item de registro.
Ferramentas
Serviços da AWS
AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura de AWS nuvem em código.
AWS CDK O Toolkit é um kit de desenvolvimento em nuvem de linha de comando que ajuda você a interagir com seu AWS CDK aplicativo.
AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.
AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
Repositório de código
O código desse padrão está disponível no repositório de GitHub aws-dynamodb-kinesisfirehose-s3 ingestões.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Instale as dependências. | Em sua máquina local, instale as dependências dos arquivos
| Desenvolvedor de aplicativos, Geral AWS |
Gere o CloudFormation modelo. |
| Desenvolvedor de aplicativos, geralAWS, AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Verifique e implante os recursos. |
| Desenvolvedor de aplicativos, geralAWS, AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Inclua dados de amostra na tabela do DynamoDB. | Envie uma solicitação para sua tabela do DynamoDB executando o seguinte comando em: AWS CLI
exemplo:
Por padrão, o Observação: você usa abordagens diferentes para adicionar dados em uma tabela do DynamoDB. Para obter mais informações, consulte Carregar dados em tabelas na documentação do DynamoDB. | Desenvolvedor de aplicativos |
Verifique se um novo objeto é criado no bucket do S3. | Faça login AWS Management Console e monitore o bucket do S3 para verificar se um novo objeto foi criado com os dados que você enviou. Para obter mais informações, consulte GetObjecta documentação do Amazon S3. | Desenvolvedor de aplicativos, Geral AWS |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Limpar os recursos. | Execute o comando | Desenvolvedor de aplicativos, Geral AWS |