Apa itu AWS Kinesis? Pola Desain, Kasus Penggunaan & Perbandingan

Diterbitkan: 2022-07-01

Kita hidup di era integrasi lintas aplikasi, notifikasi instan, dan pembaruan data instan. Dalam skenario seperti itu, menjadi lebih penting untuk membuat, memelihara, dan memodifikasi sistem waktu nyata.

Selama bertahun-tahun, ada berbagai alat berguna yang dikembangkan untuk membantu membangun dan memelihara sistem lintas platform tersebut. RabbitMQ, Kafka, dan AWS Kinesis adalah tiga alat yang telah membantu pengembang dan insinyur bekerja dengan mulus dengan data waktu nyata. Semua sistem ini diciptakan dan dipelihara, dengan mengingat tujuan yang berbeda. Oleh karena itu, mereka datang dengan manfaat dan keterbatasan yang berbeda berdasarkan pekerjaan yang ada.

Artikel ini akan membahas secara detail tentang AWS Kinesis dan cara kerjanya.

Kinesis adalah layanan streaming yang dibangun di atas AWS. Ini dapat digunakan untuk memproses semua jenis data – mulai dari log, data IoT, data video, pada dasarnya semua format data. Hal ini memungkinkan Anda untuk menjalankan model dan proses pembelajaran mesin yang berbeda pada data secara real-time saat mengalir melalui sistem Anda. Oleh karena itu, ini mengurangi kerumitan melalui database tradisional sambil meningkatkan efisiensi secara keseluruhan.

Daftar isi

Jelajahi Program MBA Populer kami

Master of Business Administration dari Golden Gate University Master of Business Administration (MBA) Liverpool Business School MBA dari Deakin Business School
MBA Pemasaran Digital dari Universitas Dekin MBA Eksekutif dari SSBM Lihat semua Program MBA

Pola Desain Pub/Sub

Sebelum kita menyelami lebih dalam bagaimana Kinesis dapat digunakan, penting untuk mengetahui lebih banyak tentang model desain yang digunakannya. Dalam hal ini, kita berbicara tentang desain penerbit dan pelanggan, yang sering disebut sebagai pola desain pub/sub. Pola desain ini dikembangkan agar Penerbit – pengirim pesan, mendorong acara ke Kinesis – bus acara. Kemudian, bus event ini berhasil mendistribusikan data input ke semua pelanggan.

Salah satu elemen kunci yang perlu diingat di sini adalah bahwa penerbit pada dasarnya tidak tahu bahwa ada pelanggan. Semua pengiriman pesan dan pengiriman pesan dikelola sepenuhnya oleh AWS Kinesis.

Dengan kata lain, pola desain pub/sub digunakan untuk komunikasi pesan yang efisien tanpa membuat desain yang banyak digabungkan. Sebaliknya, Kinesis berfokus pada pemanfaatan komponen independen dan membangun alur kerja terdistribusi secara keseluruhan dari itu.

Intinya, AWS Kinesis adalah alat streaming canggih yang menawarkan keunggulan berbeda, terutama dibandingkan dengan alat streaming waktu nyata lainnya. Salah satu manfaatnya adalah layanan terkelola, sehingga pengembang tidak perlu menangani administrasi sistem. Ini memungkinkan pengembang untuk lebih fokus pada kode dan sistem mereka dan lebih sedikit pada tugas administratif.

Sekarang, mari kita lihat beberapa kasus penggunaan Kinesis.

Kasus Penggunaan AWS Kinesis – Streaming Data

AWS Kinesis berguna untuk perusahaan besar dan kecil yang ingin mengelola dan mengintegrasikan data mereka di berbagai platform. Kinesis bermanfaat dalam skenario skala besar dan kecil bagi organisasi yang ingin mengelola dan mengintegrasikan data mereka di seluruh platform.

Mari kita lihat dua kasus penggunaan besar di mana perusahaan menggunakan AWS Kinesis untuk mengelola sejumlah besar data real-time dengan mulus.

Netflix

Netflix menggunakan AWS Kinesis untuk memproses beberapa TB data log setiap hari. Netflix membutuhkan aplikasi terpusat yang mencatat semua data secara real-time. Dengan menggunakan Kinesis, Netflix mengembangkan Dredge, yang memperkaya konten dengan metadata secara real-time. Dengan begitu, data diproses secara instan saat melewati Kinesis. Ini menghilangkan satu langkah yang membosankan dalam memuat data ke dalam database untuk pemrosesan di masa mendatang.

Veritone

Veriton menyediakan layanan AI dan pembelajaran mesin. Ini menggunakan aliran video AWS Kinesis untuk memproses data pelanggan. Veriton juga menerapkan model ML dan AI ke konten secara real-time untuk menyempurnakannya dengan metrik dan metadata. Dengan menggunakan informasi tambahan ini, Veritone mempermudah pencarian aliran video Kinesis dengan melihat audio, pengenalan wajah, data yang ditandai, dll.

Ini hanyalah dua dari banyak contoh bagaimana perusahaan saat ini memanfaatkan AWS Kinesis untuk bekerja dengan data streaming waktu nyata secara lebih efisien.

Mari beralih ke teknis dan komponen penting dari aliran AWS Kinesis.

Pelajari kursus AI & ML dari Universitas top dunia. Dapatkan Master, PGP Eksekutif, atau Program Sertifikat Tingkat Lanjut untuk mempercepat karier Anda.

Aliran vs Firehose

AWS Kinesis menawarkan kepada pengembang dua produk utama – Kinetic Streams dan Kinesis Firehose.

Untuk bekerja dengan Kinesis Stream, Anda harus menggunakan Perpustakaan Produser Kinesis. Ini akan memungkinkan Anda untuk memasukkan semua data real-time ke dalam aliran Anda. Selanjutnya, Anda dapat menghubungkan perpustakaan ini ke hampir semua aplikasi atau proses. Namun, Kinesis Streams bukanlah layanan terkelola 100%. Jadi, tim pengembang perlu menskalakannya secara manual saat dibutuhkan. Plus, data yang dimasukkan ke dalam aliran akan tetap di sana selama tujuh hari.

Kinesis Firehose sedikit lebih sederhana untuk diterapkan. Data yang diumpankan ke Kinesis Firehose dikirim ke Amazon Redshift, Amazon S3, dan bahkan Elasticsearch – semuanya menggunakan mesin AWS Kinesis. Setelah ini, Anda dapat memprosesnya sesuai kebutuhan Anda. Jika data disimpan di Amazon S3 atau sistem penyimpanan AWS lainnya, Anda dapat membiarkannya di sana selama yang Anda mau.

Menyiapkan Streaming di Kinesis

Sebelum Anda mulai mengakses Kinesis, Anda harus menyiapkan aliran dengan mengakses AWS CLI. Di shell perintah, masukkan perintah berikut untuk membuat aliran yang disebut DataProcessingStream

–nama-stream DataProcessingStream \

–hitungan pecahan 1 \

–wilayah eu-barat-1

Membuat Pipa Streaming dengan Python

Setelah Anda mengatur aliran di Kinesis, Anda harus mulai membangun produsen dan konsumen. Komponen inti Kinesis membantu Anda membuat lapisan akses untuk mengintegrasikan sistem, perangkat lunak, dan aplikasi lain.

Dalam tutorial ini, kita akan bekerja dengan library boto3 Python untuk terhubung ke Kinesis.

Menciptakan Produser

Gunakan kode yang disebutkan di bawah ini untuk membuat produser menggunakan bahasa pemrograman Python:

impor boto3

impor json

impor log

logging.basicConfig(level = logging.INFO)

sesi = boto3.Session(region_name='eu-west-1′)

klien = sesi.klien('kinesis')

test_data = {'data_tag': 'DataOne', 'skor': '10', 'char': 'Database Warrior'}

respon = klien.put_record(

StreamName='DataProcessingStream',

Data=json.dumps({

“data_tag”: test_data['data_tag'],

“skor”: test_data['skor'],

"char": test_data['char']

}),

PartitionKey='a01′

)

logging.info(“Masukkan Skor Data Baru: %s”, test_data)

Untuk menarik data, Anda memerlukan skrip lain untuk mendengarkan data yang diumpankan ke produsen. Untuk itu, Anda dapat menggunakan ShardIterator untuk mendapatkan akses ke semua data yang dimasukkan ke Kinesis. Dengan cara ini, Anda dapat mengakses catatan waktu nyata dan masa depan di Kinesis.

Menciptakan Konsumen

Gunakan kode yang disebutkan di bawah ini untuk membuat konsumen Python:

impor boto3

impor json

sistem impor

impor log

logging.basicConfig(level = logging.INFO)

sesi = boto3.Session(region_name='eu-west-1′)

klien = sesi.klien('kinesis')

aws_kinesis_stream = client.describe_stream(StreamName='DataProcessingStream)

shard_id = aws_kinesis_stream['StreamDescription']['Shards'][0]['ShardId']

stream_response = client.get_shard_iterator(

StreamName='DataProcessingStream',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

iterator = stream_response['ShardIterator']

sementara Benar:

mencoba:

aws_kinesis_response = client.get_records(ShardIterator=iterator, Batas=5)

iterator = aws_kinesis_response['NextShardIterator']

untuk dicatat di aws_kinesis_response['Records']:

jika 'Data' di record dan len(record['Data']) > 0:

logging.info(“Menerima Skor Data Baru: %s”, json.loads(record['Data']))

kecuali KeyboardInterrupt:

sistem.keluar()

Dalam contoh di atas, kami hanya mencetak data.

Masalah dengan Pipa Kinesis

Kinesis benar-benar bermanfaat, tetapi itu tidak datang tanpa tantangan dan kekurangan. Salah satu tantangan signifikan yang akan Anda hadapi saat bekerja dengan Kinesis bisa disebut 'observabilitas'.

Saat Anda bekerja dengan beberapa komponen AWS, sistem yang Anda buat akan menjadi semakin kompleks. Misalnya, jika Anda menggunakan fungsi Lambda sebagai produsen dan konsumen dan menghubungkannya ke sistem penyimpanan AWS yang berbeda, akan menjadi sangat sulit untuk mengelola dan melacak dependensi dan kesalahan.

Baca Artikel Populer Kami Terkait MBA

Gaji Analis Keuangan – Baru dan Berpengalaman Pertanyaan dan Jawaban Wawancara Teratas untuk SDM Pilihan Karir Pemasaran MBA di AS
Pilihan Karir Terbaik Di AS Setelah MBA Dalam Sumber Daya Manusia 7 Pilihan Karir Teratas dalam Penjualan Pekerjaan Keuangan dengan Pembayaran Tertinggi di AS: Rata-rata hingga Tertinggi
7 Pilihan Karir Terbaik di bidang Keuangan di AS : Harus Dibaca 5 Tren Pemasaran Teratas di 2022 Gaji MBA di Amerika Serikat pada 2022 [Semua Spesialisasi]

Kesimpulannya

Tidak diragukan lagi bahwa streaming data dan bekerja dengan data real-time adalah kebutuhan saat ini, dan hanya akan meningkat karena dunia kita menghasilkan lebih banyak data. Jadi, jika Anda tertarik untuk menguasai trik Kinesis, kursus profesional bisa membantu.

Master of Science dalam Pembelajaran Mesin dan AI upGrad , ditawarkan dengan kolaborasi IIIT-B dan LJMU, adalah kursus komprehensif 18 bulan yang dirancang untuk membantu Anda memulai dengan dasar-dasar eksplorasi data dan mencapai semua konsep penting NLP, Deep Pembelajaran, Penguatan Pembelajaran, dan banyak lagi. Terlebih lagi – Anda dapat mengerjakan proyek industri, dukungan karir 360 derajat, bimbingan pribadi, peluang jaringan rekan, dan banyak lagi untuk membantu Anda menguasai Machine Learning & AI.

1. Bisakah AWS Kinesis menarik data?

Amazon Kinesis adalah solusi streaming data real-time yang skalabel dan tahan lama yang bekerja dengan terus-menerus menangkap GB data secara real-time dari ribuan sumber.

2. Bisakah satu aliran Kinesis memiliki banyak konsumen?

Ya, menggunakan shard iterator, Anda dapat menyediakan banyak konsumen dalam satu aliran Kinesis.

3. Jenis antrian apa yang bekerja dengan AWS Kinesis?

AWS Kinesis adalah FIFO - First In First Out - dalam operasi dan proses datanya.