Membangun analitik real-time (Bagian 2)

Membangun analitik real-time (Bagian 2)
[ad_1]
Di Bagian 1, saya membahas meningkatnya permintaan untuk analitik real-time di dunia yang serba cepat saat ini, di mana hasil instan dan wawasan langsung sangat penting. Dia membandingkan analitik real-time dengan analitik tradisional, menyoroti kesegaran data dan kecepatan wawasan sebagai karakteristik utama. Artikel tersebut menyoroti kebutuhan untuk memilih arsitektur data yang sesuai untuk analitik waktu nyata dan mengangkat pertimbangan seperti peristiwa per detik, latensi, ukuran kumpulan data, kinerja kueri, kerumitan kueri, ketersediaan aliran data, menggabungkan beberapa aliran peristiwa, dan integrasi waktu nyata . dan data sejarah. Dan saya menggoda bagian 2 artikel selanjutnya, yang membahas tentang merancang solusi arsitektur yang sesuai untuk analitik waktu nyata.
blok bangunan
Untuk memanfaatkan analitik real-time secara efektif, database yang kuat hanyalah bagian dari persamaan. Prosesnya dimulai dengan kemampuan untuk menghubungkan, mengangkut, dan mengelola data secara real time. Ini memperkenalkan komponen fundamental pertama kami: streaming acara.
Penyiaran acara
Dalam skenario di mana ketanggapan waktu-nyata sangat penting, sifat pipa data batch yang membosankan tidak mencukupi, mengakibatkan peningkatan antrean pengiriman pesan. Pengiriman pesan jadul mengandalkan alat seperti ActiveMQ, RabbitMQ, dan TIBCO. Namun, pendekatan modern untuk tantangan ini adalah event streaming, yang diimplementasikan menggunakan platform seperti Apache Kafka dan Amazon Kinesis.
Apache Kafka dan Amazon Kinesis mengatasi batasan penskalaan antrian email konvensional dengan memfasilitasi kemampuan pub/sub volume tinggi. Hal ini memungkinkan pengumpulan dan pengiriman aliran besar data peristiwa dari berbagai sumber (disebut produsen dalam terminologi Amazon) ke beberapa sink (atau konsumen dalam bahasa Amazon), semuanya dalam waktu nyata.
Sistem ini mengumpulkan data secara langsung dari berbagai sumber seperti database, sensor, dan layanan cloud, semuanya dalam bentuk aliran peristiwa, lalu mendistribusikan data ini ke aplikasi lain, database, dan layanan real-time.
Mengingat skalabilitasnya yang tinggi (mis. Apache Kafka dari LinkedIn dapat menangani lebih dari 7 triliun pesan per hari) dan kemampuan untuk memproses beberapa sumber data bersamaan, streaming peristiwa telah menjadi mode pengiriman data standar saat data real-time diperlukan. oleh nominasi.
Dengan pengambilan data real-time, pertanyaan selanjutnya menjadi: bagaimana Anda menganalisis data real-time ini secara efektif?
Database analitik waktu-nyata
Agar analisis real-time menjadi efektif, diperlukan database khusus. Yang dapat memanfaatkan kekuatan data streaming Apache Kafka dan Amazon Kinesis dan memberikan wawasan instan. Di sinilah Apache Druid masuk.
Apache Druid, database analitik real-time yang kuat yang dirancang khusus untuk streaming data, telah menjadi opsi pilihan untuk membangun aplikasi analitik real-time. Mampu menyerap aliran yang sebenarnya, ini dapat menangani agregasi skala besar lintas terabyte hingga petabyte data sambil mempertahankan kinerja sub-detik di bawah beban. Selain itu, berkat integrasi bawaannya dengan Apache Kafka dan Amazon Kinesis, ini adalah pilihan yang lebih disukai saat wawasan cepat dari data baru adalah yang terpenting.
Saat memilih database analitik untuk streaming data, pertimbangan seperti skala, latensi, dan integritas data sangat penting. Pertanyaan yang harus diajukan antara lain: apakah bisa menangani semua penyiaran acara? Apakah dapat mencerna dan menghubungkan beberapa topik Kafka (atau fragmen Kinesis)? Apakah ini mendukung penyerapan berbasis peristiwa? Jika terputus, dapatkah mencegah kehilangan atau duplikat data? Apache Druid memenuhi semua kriteria ini, menawarkan lebih banyak fungsionalitas.
Druid dirancang dari bawah ke atas untuk mencerna peristiwa dengan cepat dan langsung mengkueri saat terjadi. Tidak seperti sistem lain yang meniru aliran dengan mengirimkan kumpulan file data secara berurutan, Druid mencerna data peristiwa demi peristiwa. Tidak perlu konektor ke Kafka atau Kinesis, dan Druid menjamin integritas data dengan mendukung semantik tepat satu kali.
Mirip dengan Apache Kafka, Apache Druid secara khusus dirancang untuk menangani volume besar data peristiwa berskala Internet. Dengan arsitektur berbasis layanannya, Druid dapat secara mandiri menskalakan penyerapan dan pemrosesan permintaan ke tingkat yang hampir tidak terbatas. Dengan memetakan tugas penyerapan ke partisi Kafka, Druid menskalakan dengan mulus ke klaster Kafka yang sedang berkembang, memastikan kinerja dan skalabilitas yang optimal.
Semakin umum melihat perusahaan menyerap jutaan peristiwa per detik ke dalam Druid. Misalnya, Confluent, pelopor Kafka, membangun platform observasi mereka menggunakan Druid dan berhasil menyerap lebih dari 5 juta peristiwa per detik dari Kafka. Ini mencontohkan skalabilitas dan efisiensi Druid yang luar biasa dalam menangani aliran acara bervolume tinggi.
Namun, analitik waktu nyata membutuhkan lebih dari sekadar data waktu nyata. Untuk mendapatkan wawasan yang bermakna dari pola dan perilaku waktu nyata, penting untuk mengkorelasikannya dengan data historis. Salah satu kekuatan utama Druid, seperti yang ditunjukkan pada diagram di atas, adalah kemampuannya untuk memberikan informasi real-time dan historis secara mulus melalui satu kueri SQL. Dengan kemampuan pengelolaan data yang efisien, Druid dapat menangani volume data hingga petabyte di latar belakang, memungkinkan analisis dan pemahaman menyeluruh tentang lanskap data.
Saat semua elemen ini digabungkan, Anda mendapatkan arsitektur data yang sangat dapat diskalakan untuk analitik waktu nyata. Arsitektur ini adalah pilihan utama bagi ribuan arsitek data saat mereka membutuhkan skalabilitas tinggi, latensi rendah, dan kemampuan untuk melakukan agregasi kompleks pada data real-time. Ini menawarkan solusi kuat yang mampu memenuhi tuntutan pemrosesan data real-time dalam jumlah besar sambil mempertahankan kinerja puncak dan mengaktifkan analitik tingkat lanjut.
Ilustrasi: bagaimana Netflix menjamin pengalaman pengguna yang luar biasa
Analitik real-time adalah faktor penting yang memungkinkan Netflix memberikan pengalaman luar biasa yang konsisten kepada basis penggunanya yang luas lebih dari 200 juta, yang secara kolektif mengonsumsi 250 juta jam konten setiap hari. Untuk mencapai hal ini, Netflix telah mengembangkan aplikasi yang dapat diamati yang memungkinkan pemantauan waktu nyata lebih dari 300 juta perangkat.
Dengan memanfaatkan log real-time yang diperoleh dari perangkat pemutaran dan mengalirkannya melalui Apache Kafka, Netflix dapat menangkap dan menyerap log ini ke Apache Druid berdasarkan peristiwa demi peristiwa. Saluran data ini memungkinkan Netflix mengekstrak wawasan dan metrik berharga yang memfasilitasi pemahaman komprehensif tentang kinerja perangkat pengguna selama aktivitas browsing dan bermain.
Infrastruktur Netflix menghasilkan volume yang luar biasa lebih dari 2 juta kejadian per detik, yang diproses dengan lancar oleh sistem data mereka. Dengan kueri sub-detik atas 1,5 triliun baris data yang mengesankan, teknisi Netflix memiliki kemampuan untuk secara akurat mengidentifikasi anomali dalam infrastruktur, aktivitas titik akhir, dan aliran konten mereka. Ini memungkinkan mereka untuk memecahkan masalah secara proaktif dan mengoptimalkan operasi mereka untuk pengalaman pengguna yang lebih baik.
Parth Brahmbhatt, Insinyur Perangkat Lunak Senior, Netflix merangkumnya dengan sangat baik:
“Druid adalah pilihan kami untuk apa pun yang memerlukan latensi sub-detik, dasbor pengguna interaktif apa pun, laporan apa pun di mana Anda mengharapkan seseorang di ujung sana menunggu tanggapan. Jika Anda ingin latensi super cepat dan rendah, kurang dari satu detik, disitulah kami merekomendasikan Druid.
[ad_2]