Arsitektur Lambda: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan |
Tidak ada ringkasan suntingan |
||
(27 revisi perantara oleh 7 pengguna tidak ditampilkan) | |||
Baris 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. Arsitektur Lambda mengandalkan model data yang menggunakan sumber data yang hanya dapat ditambahkan, bukan diubah. Model ini berfungsi sebagai sistem pencatatan yang menyerap dan memproses peristiwa dengan stempel waktu, di mana peristiwa baru ditambahkan ke data yang sudah ada tanpa menggantikan data yang lama. Status sistem ditentukan berdasarkan urutan data sesuai dengan waktu alami peristiwa-peristiwa tersebut terjadi.<ref>{{Cite web|title=Nathan Marz on Storm, Immutability in the Lambda Architecture, Clojure|url=https://www.infoq.com/interviews/marz-lambda-architecture/|website=InfoQ|language=en|access-date=2024-11-21}}</ref> ▼
== Arsitektur lambda ==▼
▲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.
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,
== Arsitektur Lambda yang digunakan ==
▲== Pengoptimalan arsitektur lambda ==
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!|Yahoo]] juga menggunakan pendekatan serupa untuk menganalisis data periklanannya. Sementara itu, proyek [[Netflix]] Suro memiliki jalur pemrosesan data yang terpisah, meskipun tidak sepenuhnya mengikuti arsitektur Lambda. Jalur ini 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.<ref name=":1">{{Cite web|last=Blog|first=Netflix Technology|date=2017-04-18|title=Announcing Suro|url=https://netflixtechblog.com/announcing-suro-backbone-of-netflixs-data-pipeline-5c660ca917b6|website=Medium|language=en|access-date=2024-11-25}}</ref>
▲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.
=== Komputasi waktu nyata ===
Komputasi waktu nyata merujuk pada pemrosesan data secara langsung dan cepat seiring data tersebut dihasilkan. Meskipun pemrosesan data secara ''offline'' atau ''batch'' masih mendominasi sebagian besar penggunaan, ada tren yang berkembang dalam pemrosesan aliran data secara waktu nyata. Konsumen aliran data waktu nyata sering digunakan untuk memberikan umpan balik instan, melakukan analisis eksploratif, dan menghasilkan wawasan operasional yang cepat. Sebagai contoh, ringkasan log dari data yang dihasilkan aplikasi merupakan salah satu jenis penggunaan dalam kategori ini.<ref name=":1" />
== 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 khusus untuk ''batch'' atau ''real-time'' menjadi sulit digunakan.<ref name=":0">{{Cite web|last=Kreps|first=Jay|date=2014-07-02|title=Questioning the Lambda Architecture|url=https://www.oreilly.com/radar/questioning-the-lambda-architecture/|website=O’Reilly Media|language=en-US|access-date=2024-11-21}}</ref>
Arsitektur Kappa, diperkenalkan oleh Jay Kreps, adalah pendekatan untuk pemrosesan data yang sepenuhnya berbasis ''streaming'' dengan menggunakan satu basis kode tunggal. Dalam pembahasan teknis tentang keuntungan menggunakan pendekatan ini, dijelaskan bahwa kerangka kerja ''streaming'' fleksibel, seperti Apache Samza, bisa memberikan keuntungan serupa dengan pemrosesan ''batch'', namun tanpa ada penundaan. Kerangka kerja seperti ini memungkinkan pengumpulan dan pemrosesan data dalam jumlah besar secara efisien, bahkan untuk data yang datang dalam potongan besar (jendela data), serta mampu menangani pemblokiran dan menyimpan status data.<ref name=":0" />
== Referensi ==
<references />
[[Kategori:Arsitektur perangkat lunak|lambda]]
[[Kategori:Pengolahan data]]
|