Arsitektur Lambda
Arsitektur Lambda
Arsitektur merupakan bagian dari kebudayaan manusia yang terkait dengan berbagai aspek kehidupan, seperti seni, teknik, pengaturan ruang, geografi, dan sejarah. Oleh karena itu, pengertian dan batasan tentang arsitektur bisa berbeda-beda, tergantung dari sudut pandang yang digunakan.[1]
Arsitektur Lambda adalah cara untuk mengolah data dalam jumlah besar dengan menggunakan dua metode, yaitu pemrosesan batch (kelompok data) dan pemrosesan stream (aliran data). Pendekatan ini bertujuan untuk menyeimbangkan kecepatan, kapasitas, dan ketahanan sistem. Pemrosesan batch digunakan untuk memberikan gambaran data yang lengkap dan akurat, sementara pemrosesan stream digunakan untuk menangani data secara langsung dan real-time. Kedua hasil ini kemudian digabungkan sebelum ditampilkan. Arsitektur Lambda berkembang seiring dengan meningkatnya jumlah data besar, kebutuhan analisis waktu nyata, dan usaha untuk mengurangi waktu pemrosesan.[2]
Pengoptimalan arsitektur Lambda
Untuk mengoptimalkan data dan meningkatkan efisiensi kueri, berbagai teknik seperti rollup dan agregasi diterapkan pada data mentah. Selain itu, teknik estimasi digunakan untuk mengurangi biaya komputasi. Meskipun terkadang diperlukan komputasi ulang yang mahal untuk memastikan toleransi kesalahan, algoritme tambahan dapat ditambahkan secara selektif untuk meningkatkan efisiensi. Teknik-teknik seperti komputasi parsial dan pengelolaan sumber daya yang lebih baik dapat membantu mengurangi waktu proses.[3]
Gambaran umum
Arsitektur Lambda adalah sistem yang terdiri dari tiga bagian utama: pemrosesan batch, pemrosesan waktu nyata (kecepatan), dan lapisan penyajian untuk menjawab kueri. Sistem ini menggunakan salinan data utama yang tidak dapat diubah. Konsep ini pertama kali dijelaskan oleh Nathan Marz dalam sebuah blog yang berjudul “Bagaimana cara mengalahkan teorema CAP,” di mana dia menyebutnya "arsitektur batch/real-time."[4]
Lapisan Batch
Lapisan batch bertugas untuk memproses data dalam jumlah besar secara terdistribusi. Fokus utamanya adalah pada akurasi yang sempurna, di mana data dihitung ulang secara menyeluruh untuk memperbaiki kesalahan dan memperbarui tampilan yang sudah ada.
Lapisan Kecepatan
Lapisan kecepatan memproses aliran data secara langsung dan waktu nyata, tanpa memperhatikan kesempurnaan atau perbaikan data. Fokusnya adalah mengurangi waktu tunggu (latensi) untuk menampilkan data terbaru.
Lapisan Penyajian
Lapisan penyajian menyimpan hasil dari lapisan batch dan kecepatan, dan merespons kueri dengan menampilkan data yang sudah diproses sebelumnya atau membangun tampilan baru berdasarkan data yang diproses.
Arsitektur Lambda yang digunakan
Metamarkets, yang menyediakan analisis untuk perusahaan periklanan terprogram, menggunakan versi arsitektur Lambda dengan Druid untuk menyimpan dan menampilkan data yang berasal dari aliran data dan data yang diproses dalam batch. Yahoo juga menggunakan pendekatan serupa untuk menganalisis data periklanannya, dengan memanfaatkan Apache Storm, Apache Hadoop, dan Druid. Sementara itu, proyek Netflix Suro memiliki jalur pemrosesan data yang terpisah, meskipun tidak sepenuhnya mengikuti arsitektur Lambda. Jalur ini mungkin dirancang untuk tujuan yang berbeda dan tidak selalu memberikan tampilan yang sama. Namun, prinsip dasarnya adalah menyediakan data peristiwa real-time untuk kueri dengan latensi rendah, sementara data secara keseluruhan juga diproses melalui jalur batch. Proses batch ini digunakan untuk aplikasi yang tidak terlalu sensitif terhadap waktu dan membutuhkan pemrosesan yang lebih besar.[5]
Kritik terhadap Arsitektur Lambda
Kritik utama terhadap arsitektur Lambda berkaitan dengan kompleksitas dan keterbatasannya. Karena ada dua jalur pemrosesan yang berbeda, yaitu batch dan streaming, masing-masing memerlukan basis kode yang terpisah dan harus dijaga agar tetap sinkron. Ini berarti data yang diproses harus memberikan hasil yang sama dari kedua jalur tersebut. Namun, usaha untuk menggabungkan kedua jalur ini dalam satu sistem seringkali membuat banyak alat yang khusus untuk batch atau real-time menjadi sulit digunakan.[6]
Referensi
- ^ Gunawan, D. Enjelina K.; Prijadi, Rachmat (2011-05-01). "REAKTUALISASI RAGAM ART DECO DALAM ARSITEKTUR KONTEMPORER". MEDIA MATRASAIN (dalam bahasa Inggris). 8 (1). doi:10.35793/matrasain.v8i1.315. ISSN 2723-1720.
- ^ "Nathan Marz on Storm, Immutability in the Lambda Architecture, Clojure". InfoQ (dalam bahasa Inggris). Diakses tanggal 2024-11-21.
- ^ "Home". Metamarkets (dalam bahasa Inggris). Diakses tanggal 2024-11-21.
- ^ "How to beat the CAP theorem - thoughts from the red planet - thoughts from the red planet". nathanmarz.com (dalam bahasa Inggris). Diakses tanggal 2024-11-21.
- ^ Blog, Netflix Technology (2017-04-18). "Announcing Suro". Medium (dalam bahasa Inggris). Diakses tanggal 2024-11-21.
- ^ Kreps, Jay (2014-07-02). "Questioning the Lambda Architecture". O’Reilly Media (dalam bahasa Inggris). Diakses tanggal 2024-11-21.