Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Entregue registros de DynamoDB a Amazon S3 mediante Kinesis Data Streams y Firehose con AWS CDK
Creado por Shashank Shrivastava (AWS) y Daniel Matuki da Cunha (AWS)
Resumen
Este patrón proporciona un código de muestra y una aplicación para entregar registros de Amazon DynamoDB a Amazon Simple Storage Service (Amazon S3) mediante Amazon Kinesis Data Streams y Amazon Data Firehose. El enfoque del patrón utiliza construcciones de AWS Cloud Development Kit (AWS CDK) nivel 3 e incluye un ejemplo de cómo realizar la transformación de datos AWS Lambda antes de que los datos se entreguen al depósito S3 de destino en la nube de Amazon Web Services (AWS).
Kinesis Data Streams captura modificaciones a nivel de elemento en cualquier tabla de DynamoDB y las replica en una secuencia de datos de Kinesis. Sus aplicaciones pueden acceder al flujo de datos de Kinesis y ver los cambios a nivel de elemento casi en tiempo real. Kinesis Data Streams también proporciona acceso a otros servicios de Amazon Kinesis, como Firehose y Amazon Managed Service para Apache Flink. Puede crear aplicaciones que proporcionen paneles en tiempo real, generen alertas, apliquen precios y publicidad dinámicos y realicen análisis de datos sofisticados.
Puede usar este patrón para sus casos de uso de integración de datos. Por ejemplo, los vehículos de transporte o equipos industriales pueden enviar grandes volúmenes de datos a una tabla de DynamoDB. Estos datos se pueden transformar y almacenar en un lago de datos alojado en Amazon S3. A continuación, puede consultar y procesar los datos y predecir cualquier posible defecto mediante servicios sin servidor como Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition y. AWS Glue
Requisitos previos y limitaciones
Requisitos previos
Un activo. Cuenta de AWS
AWS Command Line Interface (AWS CLI), instalado y configurado. Para obtener más información, consulte Primeros pasos con AWS CLIél en la AWS CLI documentación.
Node.js (18.x+) y npm, instalados y configurados. Para obtener más información, consulte Descargar e instalar Node.js y npm
en la documentación de npm
.aws-cdk (2.x+), instalado y configurado. Para obtener más información, consulte Introducción a la documentación. AWS CDK AWS CDK
El repositorio GitHub aws-dynamodb-kinesisfirehose-sde 3 ingestas
, clonado y configurado en su máquina local. Datos de ejemplo existentes para la tabla de DynamoDB. Los datos deben utilizar el siguiente formato:
{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}
Arquitectura
El siguiente diagrama muestra un ejemplo de flujo de trabajo para entregar registros de DynamoDB a Amazon S3 mediante Kinesis Data Streams y Firehose.

En el diagrama, se muestra el siguiente flujo de trabajo:
Los datos se incorporan mediante Amazon API Gateway como proxy de DynamoDB. También puede usar cualquier otro origen para incorporar datos en DynamoDB.
Los cambios a nivel de elemento se generan prácticamente en tiempo real en Kinesis Data Streams para su entrega a Amazon S3.
Kinesis Data Streams envía los registros a Firehose para su transformación y entrega.
Una función de Lambda convierte los registros de un formato de registro de DynamoDB a un formato JSON, que contiene solo los nombres y valores de los atributos de los elementos del registro.
Herramientas
Servicios de AWS
AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la infraestructura de la nube de AWS en código.
AWS CDK Toolkit es un kit de desarrollo en la nube de línea de comandos que le ayuda a interactuar con su AWS CDK aplicación.
AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que te ayuda a interactuar Servicios de AWS mediante los comandos de tu shell de línea de comandos.
AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el territorio y. Cuentas de AWS Regiones de AWS
Repositorio de código
El código de este patrón está disponible en el repositorio de GitHub aws-dynamodb-kinesisfirehose-s3 ingestas.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Instale las dependencias. | En su máquina local, instale las dependencias de los archivos
| Desarrollador de aplicaciones, AWS general |
Genere la plantilla CloudFormation . |
| Desarrollador de aplicaciones, AWS general, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Compruebe e implemente los recursos. |
| Desarrollador de aplicaciones, AWS general, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Incorpore sus datos de muestra en la tabla de DynamoDB. | Envíe una solicitud a la tabla de DynamoDB ejecutando el siguiente comando en: AWS CLI
ejemplo:
De forma predeterminada, notaSe utilizan diferentes enfoques para añadir datos a una tabla de DynamoDB. Para obtener más información, consulte Cargar datos en tablas en la documentación de DynamoDB. | Desarrollador de aplicaciones |
Verifique que se crea un objeto nuevo en el bucket de S3. | Inicie sesión en el bucket de S3 AWS Management Console y supervise el mismo para comprobar que se ha creado un objeto nuevo con los datos que ha enviado. Para obtener más información, consulte GetObjectla documentación de Amazon S3. | Desarrollador de aplicaciones, AWS general |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Limpiar recursos. | Ejecute el comando | Desarrollador de aplicaciones, AWS general |
Recursos relacionados
s3- static-site-stack .ts
(GitHub repositorio) aws-apigateway-dynamodb módulo
(GitHub repositorio) aws-kinesisstreams-kinesisfirehose-sMódulo 3
(GitHub repositorio) Cambiar la captura de datos para DynamoDB Streams (documentación de DynamoDB)
Uso de Kinesis Data Streams para capturar los cambios en DynamoDB (documentación de DynamoDB)