Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK

Shashank Shrivastava dan Daniel Matuki da Cunha, Amazon Web Services

Ringkasan

Pola ini menyediakan contoh kode dan aplikasi untuk mengirimkan catatan dari Amazon DynamoDB ke Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dengan menggunakan Amazon Kinesis Data Streams dan Amazon Data Firehose. Pendekatan pola menggunakan konstruksi AWS Cloud Development Kit (AWS CDK) L3 dan menyertakan contoh cara melakukan transformasi data AWS Lambda sebelum data dikirim ke bucket S3 target di Amazon Web Services ()AWS Cloud.

Kinesis Data Streams merekam modifikasi tingkat item dalam tabel DynamoDB dan mereplikasi mereka ke aliran data Kinesis yang diperlukan. Aplikasi Anda dapat mengakses Kinesis data stream dan melihat perubahan tingkat item dalam hampir waktu nyata. Kinesis Data Streams juga menyediakan akses ke layanan Amazon Kinesis lainnya, seperti Firehose dan Amazon Managed Service untuk Apache Flink. Ini berarti Anda dapat membangun aplikasi yang menyediakan dasbor waktu nyata, menghasilkan peringatan, menerapkan harga dan iklan dinamis, dan melakukan analisis data yang canggih.

Anda dapat menggunakan pola ini untuk kasus penggunaan integrasi data Anda. Misalnya, kendaraan transportasi atau peralatan industri dapat mengirim volume data yang tinggi ke tabel DynamoDB. Data ini kemudian dapat diubah dan disimpan di danau data yang dihosting di Amazon S3. Anda kemudian dapat menanyakan dan memproses data dan memprediksi potensi cacat dengan menggunakan layanan tanpa server seperti Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition, dan. AWS Glue

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS.

  • AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat AWS CLI Memulai dengan AWS CLI dokumentasi.

  • Node.js (18.x +) dan npm, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Mengunduh dan menginstal Node.js dan npm di npm dokumentasi.

  • aws-cdk (2.x +), diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat AWS CDK Memulai dengan AWS CDK dokumentasi.

  • Repositori GitHub aws-dynamodb-kinesisfirehose-s3-ingestion, dikloning dan dikonfigurasi pada mesin lokal Anda.

  • Data sampel yang ada untuk tabel DynamoDB. Data harus menggunakan format berikut: {"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}

Arsitektur

Diagram berikut menunjukkan contoh alur kerja untuk mengirimkan catatan dari DynamoDB ke Amazon S3 dengan menggunakan Kinesis Data Streams dan Firehose.

Contoh alur kerja untuk mengirimkan record dari DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose.

Diagram menunjukkan alur kerja berikut:

  1. Data dicerna menggunakan Amazon API Gateway sebagai proxy untuk DynamoDB. Anda juga dapat menggunakan sumber lain untuk menyerap data ke DynamoDB. 

  2. Perubahan tingkat item dihasilkan dalam waktu nyaris real time di Kinesis Data Streams untuk pengiriman ke Amazon S3.

  3. Kinesis Data Streams mengirimkan catatan ke Firehose untuk transformasi dan pengiriman. 

  4. Fungsi Lambda mengonversi catatan dari format rekaman DynamoDB ke format JSON, yang hanya berisi nama dan nilai atribut item rekaman.

Alat

Layanan AWS

  • AWS Cloud Development Kit (AWS CDK)adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.

  • AWS CDK Toolkit adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan AWS CDK aplikasi Anda.

  • AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub aws-dynamodb-kinesisfirehose-s3-konsumsi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal dependensi.

Di mesin lokal Anda, instal dependensi dari package.json file di sample-application direktori pattern/aws-dynamodb-kinesisstreams-s3 dan dengan menjalankan perintah berikut:

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

 

Pengembang aplikasi, AWS Umum

Hasilkan CloudFormation template.

  1. Jalankan perintah cd <project_root>/sample-application/.

  2. Jalankan cdk synth perintah untuk menghasilkan CloudFormation template.

  3. AwsDynamodbKinesisfirehoseS3IngestionStack.template.jsonOutput disimpan dalam cdk.out direktori.

  4. Gunakan AWS CDK atau AWS Management Console untuk memproses template di CloudFormation.

Pengembang aplikasi, AWS Umum, AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Periksa dan gunakan sumber daya.

  1. Jalankan cdk diff perintah untuk mengidentifikasi jenis sumber daya yang dibuat oleh AWS CDK konstruksi.

  2. Jalankan cdk deploy perintah untuk menyebarkan sumber daya.

Pengembang aplikasi, AWS Umum, AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Menyerap data sampel Anda ke dalam tabel DynamoDB.

Kirim permintaan ke tabel DynamoDB Anda dengan menjalankan perintah berikut di: AWS CLI

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

contoh:

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

Secara default, put-item tidak mengembalikan nilai apa pun sebagai output jika operasi berhasil. Jika operasi gagal, ia mengembalikan kesalahan. Data disimpan di DynamoDB dan kemudian dikirim ke Kinesis Data Streams dan Firehose. 

catatan

Anda menggunakan pendekatan yang berbeda untuk menambahkan data ke dalam tabel DynamoDB. Untuk informasi selengkapnya, lihat Memuat data ke dalam tabel dalam dokumentasi DynamoDB.

Pengembang aplikasi

Verifikasi bahwa objek baru dibuat di bucket S3.

Masuk ke AWS Management Console dan pantau bucket S3 untuk memverifikasi bahwa objek baru dibuat dengan data yang Anda kirim. 

Untuk informasi selengkapnya, lihat GetObjectdi dokumentasi Amazon S3.

Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Pembersihan sumber daya

Jalankan cdk destroy perintah untuk menghapus semua sumber daya yang digunakan oleh pola ini.

Pengembang aplikasi, AWS Umum

Sumber daya terkait