Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan dan mengelola data lake tanpa server di AWS Cloud dengan menggunakan infrastruktur sebagai kode
Kirankumar Chandrashekar dan Abdel Jaidi, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan AWS yang sudah ada CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menjelaskan cara menggunakan komputasi tanpa server
SDLF adalah kumpulan sumber daya yang dapat digunakan kembali yang mempercepat pengiriman data lake perusahaan di AWS Cloud dan membantu penyebaran yang lebih cepat ke produksi. Ini digunakan untuk mengimplementasikan struktur dasar danau data dengan mengikuti praktik terbaik.
SDLF mengimplementasikan proses integrasi/penerapan berkelanjutan (CI/CD) di seluruh penerapan kode dan infrastruktur dengan menggunakan layanan AWS seperti AWS, AWS, dan AWS. CodePipeline CodeBuild CodeCommit
Pola ini menggunakan beberapa layanan tanpa server AWS untuk menyederhanakan pengelolaan data lake. Ini termasuk Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dan Amazon DynamoDB untuk penyimpanan, AWS Lambda dan AWS Glue untuk komputasi, CloudWatch dan Amazon Events, Amazon Simple Queue Service (Amazon SQS), dan AWS Step Functions untuk orkestrasi.
Layanan kode AWS CloudFormation dan AWS bertindak sebagai lapisan IAc untuk menyediakan penerapan yang dapat direproduksi dan cepat dengan pengoperasian dan administrasi yang mudah.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi.
Klien Git, diinstal dan dikonfigurasi.
Lokakarya SDLF
, terbuka di jendela browser web dan siap digunakan.
Arsitektur

Diagram arsitektur menggambarkan proses yang digerakkan oleh peristiwa dengan langkah-langkah berikut.
Setelah file ditambahkan ke bucket S3 data mentah, pemberitahuan peristiwa Amazon S3 ditempatkan dalam antrean SQS. Setiap notifikasi dikirimkan sebagai file JSON, yang berisi metadata seperti nama bucket S3, kunci objek, atau stempel waktu.
Pemberitahuan ini digunakan oleh fungsi Lambda yang merutekan peristiwa ke proses ekstraksi, transformasi, dan pemuatan (ETL) yang benar berdasarkan metadata. Fungsi Lambda juga dapat menggunakan konfigurasi kontekstual yang disimpan dalam tabel Amazon DynamoDB. Langkah ini memungkinkan decoupling dan scaling ke beberapa aplikasi di data lake.
Acara ini diarahkan ke fungsi Lambda pertama dalam proses ETL, yang mengubah dan memindahkan data dari area data mentah ke area pementasan untuk danau data. Langkah pertama adalah memperbarui katalog komprehensif. Ini adalah tabel DynamoDB yang berisi semua metadata file dari data lake. Setiap baris dalam tabel ini menyimpan metadata operasional tentang satu objek yang disimpan di Amazon S3. Panggilan sinkron dibuat ke fungsi Lambda yang melakukan transformasi cahaya, yang merupakan operasi komputasi yang murah (seperti mengonversi file dari satu format ke format lainnya), pada objek S3. Karena objek baru telah ditambahkan ke bucket S3 pementasan, katalog komprehensif diperbarui dan pesan dikirim ke antrian SQS menunggu fase berikutnya di ETL.
Aturan CloudWatch Peristiwa memicu fungsi Lambda setiap 5 menit. Fungsi ini memeriksa apakah pesan dikirim ke antrian SQS dari fase ETL sebelumnya. Jika pesan terkirim, fungsi Lambda memulai fungsi kedua dari AWS Step Functions dalam proses ETL.
Transformasi berat kemudian diterapkan pada sekumpulan file. Transformasi berat ini adalah operasi yang mahal secara komputasi, seperti panggilan sinkron ke pekerjaan AWS Glue, tugas AWS Fargate, langkah EMR Amazon, atau notebook Amazon. SageMaker Metadata tabel diekstraksi dari file output dengan menggunakan crawler AWS Glue, yang memperbarui katalog AWS Glue. Metadata file juga ditambahkan ke tabel katalog komprehensif di DynamoDB. Akhirnya, langkah kualitas data yang memanfaatkan Deequ
juga dijalankan.
Tumpukan teknologi
CloudWatch Acara Amazon
AWS CloudFormation
AWS CodePipeline
AWS CodeBuild
AWS CodeCommit
Amazon DynamoDB
AWS Glue
AWS Lambda
Amazon S3
Amazon SQS
AWS Step Functions
Alat
CloudWatch Acara Amazon — CloudWatch Acara menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan sumber daya AWS.
AWS CloudFormation — CloudFormation membantu membuat dan menyediakan penerapan infrastruktur AWS secara dapat diprediksi dan berulang kali.
AWS CodeBuild — CodeBuild adalah layanan build terkelola penuh yang mengompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
AWS CodeCommit — CodeCommit adalah layanan kontrol versi yang dihosting oleh AWS yang dapat Anda gunakan untuk menyimpan dan mengelola aset secara pribadi (seperti kode sumber dan file biner).
AWS CodePipeline — CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak Anda secara terus menerus.
Amazon DynamoDB - DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat dan dapat diprediksi dengan skalabilitas.
AWS Glue — AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang memudahkan penyiapan dan pemuatan data untuk analitik.
AWS Lambda — Lambda mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik.
Amazon S3 - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel. Amazon S3 dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan data lake.
AWS Step Functions - AWS Step Functions adalah orkestrator fungsi tanpa server yang memudahkan untuk mengurutkan fungsi AWS Lambda dan beberapa layanan AWS ke dalam aplikasi penting bisnis.
Amazon SQS — Amazon Simple Queue Service (Amazon SQS) adalah layanan antrian pesan yang dikelola sepenuhnya yang membantu Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.
Deequ
- Deequ adalah alat yang membantu Anda menghitung metrik kualitas data untuk kumpulan data besar, menentukan dan memverifikasi batasan kualitas data, dan tetap mendapat informasi tentang perubahan dalam distribusi data.
Repositori kode
Kode sumber dan sumber daya untuk SDLF tersedia di repositori AWS Labs GitHub
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan CI/CD pipeline untuk mengelola IAc untuk data lake. | Masuk ke AWS Management Console dan ikuti langkah-langkah dari bagian Penyiapan awal | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning CodeCommit repositori pada mesin lokal Anda. | Ikuti langkah-langkah dari bagian Deploying the foundation Untuk informasi selengkapnya, lihat Menghubungkan ke CodeCommit repositori dari dokumentasi. CodeCommit | DevOps insinyur |
Ubah CloudFormation template. | Gunakan workstation lokal Anda dan editor kode untuk memodifikasi CloudFormation template sesuai dengan kasus penggunaan atau persyaratan Anda. Komit mereka ke repositori Git yang dikloning secara lokal. Untuk informasi selengkapnya, lihat Bekerja dengan CloudFormation templat AWS dari CloudFormation dokumentasi AWS. | DevOps insinyur |
Dorong perubahan ke CodeCommit repositori. | Kode infrastruktur Anda sekarang berada di bawah kontrol versi dan modifikasi pada basis kode Anda dilacak. Saat Anda mendorong perubahan ke CodeCommit repositori, CodePipeline secara otomatis menerapkannya ke infrastruktur Anda dan mengirimkannya ke. CodeBuild pentingJika Anda menggunakan AWS SAM CLI di CodeBuild, jalankan perintah | DevOps insinyur |
Sumber daya terkait
Siapkan CI/CD pipeline untuk menyediakan IAc
Kontrol versi IAc
Sumber daya lainnya