Skenario 3: Mempersiapkan data clickstream untuk proses wawasan data - Solusi Data Pengaliran di AWS dengan Amazon Kinesis

Skenario 3: Mempersiapkan data clickstream untuk proses wawasan data

Fast Sneakers adalah butik fesyen dengan fokus pada sepatu trendi. Harga untuk sepasang sepatu dapat naik atau turun tergantung pada persediaan dan tren, misalnya siapa selebriti atau bintang olahraga yang terlihat mengenakan sepatu bermerek di TV tadi malam. Penting bagi Fast Sneakers untuk melacak dan menganalisis tren tersebut guna memaksimalkan pendapatan mereka.

Fast Sneakers tidak ingin menimbulkan overhead tambahan ke dalam proyek dengan infrastruktur baru yang perlu dipelihara. Mereka ingin dapat membagi pengembangan ke pihak-pihak yang sesuai, sehingga rekayasawan data dapat fokus pada transformasi data dan ilmuwan data mereka dapat mengerjakan fungsi ML-nya secara independen.

Untuk bereaksi dengan cepat dan menyesuaikan harga sesuai permintaan secara otomatis, Fast Sneakers mengalirkan peristiwa penting (seperti data klik minat dan pembelian), mentransformasikan dan melengkapi data peristiwa ini, lalu mengumpankan data peristiwa ini ke sebuah model ML. Model ML-nya mampu menentukan apakah penyesuaian harga diperlukan. Hal ini memungkinkan Fast Sneakers mengubah harga mereka secara otomatis untuk memaksimalkan keuntungan pada produk mereka.

Penyesuaian harga waktu nyata Fast Sneakers

Penyesuaian harga waktu nyata Fast Sneakers

Diagram arsitektur ini menunjukkan solusi pengaliran waktu nyata yang dibuat Fast Sneakers menggunakan Kinesis Data Streams, AWS Glue, dan DynamoDB Streams. Dengan memanfaatkan layanan ini, mereka memiliki solusi yang elastis dan dapat diandalkan tanpa perlu menghabiskan waktu untuk menyiapkan dan memelihara infrastruktur pendukung. Mereka dapat menghabiskan waktu mereka pada berbagai hal yang menghasilkan nilai bagi perusahaan mereka dengan berfokus pada tugas Extract, Transform, Load (ETL) pengaliran dan model machine learning mereka.

Untuk lebih memahami arsitektur dan teknologi yang digunakan dalam beban kerja mereka, berikut ini adalah beberapa detail layanan yang digunakan.

Pengaliran AWS Glue dan AWS Glue

AWS Glue adalah layanan ETL terkelola penuh yang dapat Anda gunakan untuk mengatalogkan data Anda, membersihkannya, memperkaya, dan memindahkannya dengan andal di antara penyimpanan data. Dengan AWS Glue, Anda dapat secara signifikan mengurangi biaya, kompleksitas, dan waktu yang dihabiskan untuk membuat tugas ETL. AWS Glue bersifat nirserver, jadi tidak ada infrastruktur yang perlu disiapkan atau dikelola. Anda hanya membayar sumber daya yang digunakan saat tugas Anda berjalan.

Dengan memanfaatkan AWS Glue, Anda dapat membuat aplikasi konsumen dengan tugas ETL pengaliran AWS Glue. Hal ini memungkinkan Anda menggunakan Apache Spark dan penulisan modul berbasis Spark lainnya untuk mengonsumsi dan memproses data peristiwa Anda. Bagian selanjutnya dari dokumen ini lebih mendalami skenario ini.

AWS Glue Data Catalog

AWS Glue Data Catalog berisi referensi ke data yang digunakan sebagai sumber dan target tugas ETL Anda di AWS Glue. AWS Glue Data Catalog adalah indeks ke lokasi, skema, dan metrik runtime data Anda. Anda dapat menggunakan informasi dalam Data Catalog untuk membuat dan memantau tugas ETL Anda. Informasi dalam Data Catalog disimpan sebagai tabel metadata, yang masing-masing menentukan penyimpanan data tunggal. Dengan menyiapkan crawler, Anda dapat secara otomatis menilai berbagai jenis penyimpanan data, termasuk DynamoDB, S3, dan Java Database Connectivity (JDBC) yang terhubung penyimpanan, mengekstrak metadata dan skema, lalu membuat definisi tabel di AWS Glue Data Catalog.

Untuk bekerja dengan Amazon Kinesis Data Streams dalam tugas ETL pengaliran AWS Glue, praktik terbaiknya adalah menentukan aliran Anda dalam tabel di basis data AWS Glue Data Catalog. Anda menentukan tabel bersumber aliran dengan aliran Kinesis, yang merupakan salah satu dari banyak format yang didukung (CSV, JSON, ORC, Parquet, Avro, atau format pelanggan dengan Grok). Anda dapat secara manual memasukkan skema, atau Anda dapat membuat langkah ini ditentukan oleh tugas AWS Glue Anda selama runtime tugas.

Tugas ETL pengaliran AWS Glue

AWS Glue menjalankan tugas ETL Anda di lingkungan nirserver Apache Spark. AWS Glue menjalankan tugas ini pada sumber daya virtual yang disediakan dan dikelolanya dalam akun layanannya sendiri. Selain mampu menjalankan tugas berbasis Apache Spark, AWS Glue menyediakan tingkat fungsionalitas tambahan selain Spark dengan DynamicFrames.

DynamicFrames adalah tabel terdistribusi yang mendukung data nested seperti struktur dan array. Setiap catatan mendeskripsikan diri sendiri, dan dirancang untuk fleksibilitas skema dengan data semi-terstruktur. Sebuah catatan dalam DynamicFrame berisi data dan skema yang mendeskripsikan data. Apache Spark DataFrames dan DynamicFrames didukung dalam skrip ETL Anda, dan Anda dapat mengonversinya secara bolak-balik. DynamicFrames menyediakan satu set transformasi canggih untuk pembersihan data dan ETL.

Dengan menggunakan Spark Streaming di Tugas AWS Glue Anda, Anda dapat membuat tugas ETL pengaliran yang berjalan terus-menerus, dan mengonsumsi data dari sumber pengaliran seperti Amazon Kinesis Data Streams, Apache Kafka, dan Amazon MSK. Tugas ini dapat membersihkan, menggabungkan, dan mentransformasikan data, lalu memuat hasilnya ke penyimpanan termasuk penyimpanan data Amazon S3, Amazon DynamoDB, atau JDBC.

AWS Glue memproses dan menulis data dalam periode 100 detik, secara default. Hal ini memungkinkan data diproses secara efisien, dan memungkinkan agregasi dilakukan pada data yang tiba lebih lambat dari yang diharapkan. Anda dapat mengonfigurasi rentang periode ini dengan menyesuaikannya untuk mengakomodasi kecepatan dalam respons vs. keakuratan agregasi Anda. Tugas pengaliran AWS Glue menggunakan titik pemeriksaan untuk melacak data yang telah dibaca dari Kinesis Data Stream. Untuk panduan tentang membuat tugas ETL pengaliran di AWS Glue, Anda dapat merujuk ke Menambahkan Tugas ETL Pengaliran di AWS Glue

Amazon DynamoDB

Amazon DynamoDB adalah basis data kunci-nilai dan dokumen yang memberikan performa milidetik satu digit dalam segala skala. Basis data ini terkelola penuh, multi-aktif, multi-Wilayah dan tahan lama dengan keamanan, pencadangan, dan pemulihan bawaan, serta caching dalam memori untuk aplikasi skala internet. DynamoDB dapat menangani lebih dari sepuluh triliun permintaan per hari dan mampu mendukung beban puncak sebesar lebih dari 20 juta permintaan per detik.

Ubah tangkapan data untuk aliran DynamoDB

Aliran DynamoDB adalah alur informasi yang diurutkan tentang perubahan pada item dalam tabel DynamoDB. Ketika Anda mengaktifkan aliran pada sebuah tabel, DynamoDB menangkap informasi tentang setiap modifikasi pada item data dalam tabel ini. DynamoDB berjalan di AWS Lambda agar Anda dapat membuat pemicu—potongan kode yang secara otomatis merespons peristiwa di aliran DynamoDB. Dengan pemicu, Anda dapat membangun aplikasi yang bereaksi terhadap modifikasi data dalam tabel DynamoDB.

Saat aliran diaktifkan pada sebuah tabel, Anda dapat mengaitkan Amazon Resource Name (ARN) aliran dengan fungsi Lambda yang Anda tulis. Segera setelah item dalam tabel dimodifikasi, catatan baru muncul di aliran tabel. AWS Lambda akan melakukan polling terhadap aliran ini dan memanggil fungsi Lambda Anda secara sinkron ketika mendeteksi catatan aliran baru.

Titik akhir layanan Amazon SageMaker dan Amazon SageMaker

Amazon SageMaker adalah platform terkelola penuh yang mendukung developer dan ilmuwan data dengan kemampuan untuk membangun, melatih, dan men-deploy model ML dengan cepat dan pada skala apa pun. SageMaker berisi modul yang dapat digunakan bersama-sama atau sendiri untuk membangun, melatih, dan men-deploy model ML Anda. Dengan titik akhir layanan Amazon SageMaker, Anda dapat membuat titik akhir host terkelola untuk inferensi waktu nyata dengan model yang di-deploy yang Anda kembangkan di dalam atau di luar Amazon SageMaker.

Dengan memanfaatkan SDK AWS, Anda dapat memanggil titik akhir SageMaker yang meneruskan informasi jenis konten beserta konten lalu menerima prediksi waktu nyata berdasarkan data yang diteruskan. Hal ini memungkinkan Anda menjaga desain dan pengembangan model ML secara terpisah dari kode Anda yang melakukan tindakan pada hasil yang diinferensi.

Hal ini memungkinkan ilmuwan data Anda fokus pada ML, dan developer yang menggunakan model ML ini dapat fokus pada cara menggunakannya dalam kode mereka. Untuk informasi selengkapnya tentang cara memanggil titik akhir di SageMaker, lihat InvokeEnpoint dalam Referensi API Amazon SageMaker.

Menginferensi wawasan data secara waktu nyata

Diagram arsitektur sebelumnya menunjukkan bahwa aplikasi web Fast Sneakers yang ada menambahkan Kinesis Data Stream yang berisi peristiwa clickstream, yang menyediakan data lalu lintas dan peristiwa dari situs web. Katalog produk, yang berisi informasi seperti kategorisasi, atribut produk, dan harga, serta tabel pesanan, yang memiliki data seperti item yang dipesan, penagihan, pengiriman, dan sebagainya, adalah tabel DynamoDB terpisah. Sumber aliran data dan tabel DynamoDB yang sesuai akan memiliki metadata dan skema yang didefinisikan dalam AWS Glue Data Catalog yang akan digunakan oleh tugas ETL pengaliran AWS Glue.

Dengan memanfaatkan Apache Spark, Spark Streaming, dan DynamicFrames dalam tugas ETL pengaliran AWS Glue mereka, Fast Sneakers dapat mengekstrak data dari aliran data dan mentransformasikannya, dengan menggabungkan data dari tabel produk dan pesanan. Dengan data terhidrasi dari transformasi ini, set data yang digunakan untuk mendapatkan hasil inferensi akan dikirim ke tabel DynamoDB.

DynamoDB Stream untuk tabel ini akan memicu fungsi Lambda untuk setiap catatan baru yang ditulis. Fungsi Lambda mengirimkan catatan yang ditransformasi sebelumnya ke SageMaker Endpoint dengan SDK AWS untuk menginferensi, jika ada, penyesuaian harga apa yang diperlukan untuk suatu produk. Jika model ML mengidentifikasi bahwa penyesuaian terhadap harga diperlukan, fungsi Lambda menulis perubahan harga pada produk dalam tabel DynamoDB katalog.

Ringkasan

Amazon Kinesis Data Streams memudahkan pengumpulan, pemrosesan, dan analisis data pengaliran waktu nyata agar Anda dapat memperoleh wawasan secara tepat waktu dan bereaksi cepat terhadap informasi baru. Dikombinasikan dengan layanan integrasi data nirserver AWS Glue, Anda dapat membuat aplikasi pengaliran peristiwa waktu nyata yang mempersiapkan dan menggabungkan data untuk ML.

Karena Kinesis Data Streams dan layanan AWS Glue terkelola penuh, AWS menghilangkan pekerjaan berat yang tidak terdiferensiasi dalam mengelola infrastruktur untuk platform big data Anda, sehingga memungkinkan Anda fokus untuk menghasilkan wawasan data berdasarkan data Anda.

Fast Sneakers dapat memanfaatkan pemrosesan peristiwa waktu nyata dan ML untuk memungkinkan situs web mereka membuat penyesuaian harga waktu nyata yang sepenuhnya otomatis, untuk memaksimalkan stok produk mereka. Hal ini menghasilkan nilai terbanyak bagi bisnis mereka sambil menghindari kebutuhan untuk membuat dan memelihara platform big data.