Stellen Sie DynamoDB-Datensätze mithilfe von Kinesis Data Streams und Firehose an Amazon S3 bereit mit AWS CDK - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie DynamoDB-Datensätze mithilfe von Kinesis Data Streams und Firehose an Amazon S3 bereit mit AWS CDK

Erstellt von Shashank Shrivastava () und Daniel Matuki da Cunha () AWS AWS

Code-Repository: Aufnahme von Amazon DynamoDB in Amazon S3

Umgebung: PoC oder Pilotprojekt

Technologien: Serverlos; Data Lakes; Datenbanken; Speicher und Backup

AWSDienste: AWSCDK; Amazon DynamoDB; Amazon Data Firehose; Amazon Kinesis Data Streams; Lambda; AWS Amazon S3

Übersicht

Dieses Muster enthält Beispielcode und eine Anwendung für die Übermittlung von Datensätzen von Amazon DynamoDB an Amazon Simple Storage Service (Amazon S3) mithilfe von Amazon Kinesis Data Streams und Amazon Data Firehose. Der Ansatz des Musters verwendet AWS Cloud Development Kit (AWS CDK) L3-Konstrukte und beinhaltet ein Beispiel dafür, wie eine Datentransformation durchgeführt wird, AWS Lambda bevor Daten an den Ziel-S3-Bucket in der Amazon Web Services (AWS) Cloud geliefert werden.

Kinesis Data Streams zeichnet Änderungen auf Elementebene in DynamoDB-Tabellen auf und repliziert sie in den erforderlichen Kinesis-Datenstrom. Ihre Anwendungen können auf den Kinesis Data Stream zugreifen und die Änderungen auf Elementebene nahezu in Echtzeit anzeigen. Kinesis Data Streams bietet auch Zugriff auf andere Amazon Kinesis Kinesis-Services wie Firehose und Amazon Managed Service für Apache Flink. Das bedeutet, dass Sie Anwendungen entwickeln können, die Echtzeit-Dashboards bereitstellen, Warnmeldungen generieren, dynamische Preisgestaltung und Werbung implementieren und anspruchsvolle Datenanalysen durchführen.

Sie können dieses Muster für Ihre Anwendungsfälle zur Datenintegration verwenden. Beispielsweise können Transportfahrzeuge oder Industrieanlagen große Datenmengen an eine DynamoDB-Tabelle senden. Diese Daten können dann transformiert und in einem in Amazon S3 gehosteten Data Lake gespeichert werden. Anschließend können Sie die Daten abfragen und verarbeiten und potenzielle Fehler vorhersagen, indem Sie serverlose Dienste wie Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition und verwenden. AWS Glue

Voraussetzungen und Einschränkungen

Voraussetzungen

Architektur

Das folgende Diagramm zeigt einen Beispiel-Workflow für die Übermittlung von Datensätzen von DynamoDB an Amazon S3 mithilfe von Kinesis Data Streams und Firehose.

Ein Beispiel-Workflow für die Übermittlung von Datensätzen von DynamoDB an Amazon S3 mithilfe von Kinesis Data Streams und Firehose.

Das Diagramm zeigt den folgenden Workflow:

  1. Daten werden mit Amazon API Gateway als Proxy für DynamoDB aufgenommen. Sie können auch jede andere Quelle verwenden, um Daten in DynamoDB aufzunehmen. 

  2. Änderungen auf Artikelebene werden nahezu in Echtzeit in Kinesis Data Streams generiert und an Amazon S3 übermittelt.

  3. Kinesis Data Streams sendet die Datensätze zur Transformation und Bereitstellung an Firehose. 

  4. Eine Lambda-Funktion konvertiert die Datensätze von einem DynamoDB-Datensatzformat in ein JSON Format, das nur die Namen und Werte der Datensatzelementattribute enthält.

Tools

AWS -Services

  • AWS Cloud Development Kit (AWS CDK)ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS Cloud-Infrastruktur im Code unterstützt.

  • AWS CDK Toolkit ist ein Cloud-Entwicklungskit für die Befehlszeile, mit dem Sie mit Ihrer AWS CDK App interagieren können.

  • AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie AWS -Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über und zu verwalten. AWS-Konten AWS-Regionen

Code-Repository

Der Code für dieses Muster ist im GitHub aws-dynamodb-kinesisfirehose-s3-Ingestion-Repository verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie die Abhängigkeiten.

Installieren Sie auf Ihrem lokalen Computer die Abhängigkeiten aus den package.json Dateien in den sample-application Verzeichnissen pattern/aws-dynamodb-kinesisstreams-s3 und, indem Sie die folgenden Befehle ausführen:

cd <project_root>/pattern/aws-dynamodb-kinesisstreams-s3
npm install && npm run build
cd <project_root>/sample-application/
npm install && npm run build

 

App-Entwickler, Allgemein AWS

Generieren Sie die CloudFormation Vorlage.

  1. Führen Sie den Befehl cd <project_root>/sample-application/ aus.

  2. Führen Sie den cdk synth Befehl aus, um die CloudFormation Vorlage zu generieren.

  3. Die AwsDynamodbKinesisfirehoseS3IngestionStack.template.json Ausgabe wird im cdk.out Verzeichnis gespeichert.

  4. Verwenden Sie AWS CDK oder AWS Management Console , um die Vorlage in zu verarbeiten CloudFormation.

App-Entwickler, AllgemeinAWS, AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Ressourcen und setzen Sie sie ein.

  1. Führen Sie den cdk diff Befehl aus, um die Ressourcentypen zu identifizieren, die durch das AWS CDK Konstrukt erstellt wurden.

  2. Führen Sie den cdk deploy Befehl aus, um die Ressourcen bereitzustellen.

App-Entwickler, AllgemeinAWS, AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Nehmen Sie Ihre Beispieldaten in die DynamoDB-Tabelle auf.

Senden Sie eine Anfrage an Ihre DynamoDB-Tabelle, indem Sie den folgenden Befehl in ausführen: AWS CLI

aws dynamodb put-item --table-name <your_table_name> --item '{"<table_partition_key>": {"S": "<partition_key_ID>"},"MessageData":{"S": "<data>"}}'

Beispiel:

aws dynamodb put-item --table-name SourceData_table --item '{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}'

Standardmäßig put-item gibt der keinen Wert als Ausgabe zurück, wenn der Vorgang erfolgreich ist. Wenn der Vorgang fehlschlägt, wird ein Fehler zurückgegeben. Die Daten werden in DynamoDB gespeichert und dann an Kinesis Data Streams und Firehose gesendet. 

Hinweis: Sie verwenden unterschiedliche Methoden, um Daten zu einer DynamoDB-Tabelle hinzuzufügen. Weitere Informationen finden Sie unter Daten in Tabellen laden in der DynamoDB-Dokumentation.

App-Developer

Stellen Sie sicher, dass ein neues Objekt im S3-Bucket erstellt wurde.

Melden Sie sich beim S3-Bucket an AWS Management Console und überwachen Sie den S3-Bucket, um sicherzustellen, dass mit den von Ihnen gesendeten Daten ein neues Objekt erstellt wurde. 

Weitere Informationen finden Sie GetObjectin der Amazon S3 S3-Dokumentation.

App-Entwickler, Allgemein AWS
AufgabeBeschreibungErforderliche Fähigkeiten

Ressourcen bereinigen.

Führen Sie den cdk destroy Befehl aus, um alle von diesem Muster verwendeten Ressourcen zu löschen.

App-Entwickler, Allgemein AWS

Zugehörige Ressourcen