Apache Apex
Apache Apex adalah kerangka kerja pemrosesan mahadata (big data) berskala besar yang berfokus pada aliran data (stream-first). Teknologi ini dirancang untuk menangani dataset tak terbatas (unbounded) maupun terbatas (bounded) dengan latensi rendah, lewatan tinggi (throughput), serta toleransi kesalahan yang baik dalam lingkungan klaster. Pengembangan Apex dimulai pada tahun 2012 dan menjadi proyek di Apache Software Foundation pada tahun 2015.
Sistem ini dapat digunakan untuk pemrosesan data secara langsung maupun dalam kelompok, dengan arsitektur pengaliran data yang terpadu dan menyimpan keadaan proses secara berkelanjutan. Selain itu, Apache Apex mendukung pengelompokan data berdasarkan waktu kejadian serta memastikan setiap data diproses tepat satu kali tanpa pengulangan.
Model
Logika pemrosesan dalam aplikasi Apex direpresentasikan dalam bentuk graf asiklik terarah atau Directed Acyclic Graph (DAG), yang terdiri dari operator dan aliran data. Aliran data adalah rangkaian kejadian atau kumpulan data yang tidak terbatas, sedangkan operator merupakan unit fungsional dasar yang digunakan sebagai sumber data, tujuan akhir, atau untuk melakukan transformasi data.
Berdasarkan pendekatan DAG, logika pemrosesan yang kompleks dapat disusun secara berurutan maupun paralel. Karena graf bersifat asiklik, keluaran dari suatu operator hanya dapat dikirim ke operator di tingkat berikutnya. Untuk alur pemrosesan yang membutuhkan perulangan, disediakan operator penundaan khusus yang memungkinkan keluaran dari suatu operator dikembalikan sebagai masukan ke operator sebelumnya. Yang mana mekanisme ini yang sering digunakan dalam pemelajaran mesin. Selain itu, mesin pemrosesan Apex juga menyediakan antarmuka modul, yang memungkinkan pembuatan operator gabungan yang mewakili bagian DAG yang dapat digunakan kembali.
Mesin pemrosesan Apex menyediakan antarmuka pemrograman tingkat rendah yang memungkinkan pengembang menyusun alur pemrosesan dengan menggabungkan operator dan aliran data ke dalam graf asiklik terarah (DAG). Antarmuka ini memberikan fleksibilitas dan kendali penuh terhadap pemrosesan data. Pengembang dapat menentukan operator secara langsung serta mengatur berbagai atribut seperti batasan sumber daya, hubungan antar-komponen, hingga metode pengodean aliran data. Namun, karena sifatnya yang sangat terperinci, antarmuka ini cenderung lebih panjang dan kompleks jika digunakan untuk skenario yang tidak memerlukan fleksibilitas tingkat tinggi.
Untuk menyederhanakan proses pengembangan, Apex juga menyediakan antarmuka pemrograman tingkat tinggi dalam bentuk pustaka khusus. Melalui pendekatan ini, pengembang dapat merancang aplikasi menggunakan gaya deklaratif yang lebih ringkas, mirip dengan cara kerja sistem pemrosesan data lainnya seperti Apache Spark dan Apache Flink. Alih-alih menentukan operator satu per satu, pengembang cukup mendefinisikan sumber data, proses transformasi, dan tujuan akhir dengan merangkai pemanggilan metode pada antarmuka aliran data. Secara internal, antarmuka ini tetap menerjemahkan perintah ke dalam struktur DAG tingkat rendah, sehingga pengembang tidak perlu memahami kelas operator secara mendetail. Antarmuka ini lebih cocok untuk kasus penggunaan yang tidak memerlukan pengaturan lanjutan.[3]
Referensi
- ^ Apache Apex Downloads, diakses tanggal 4 July 2019
- ^ "Apache Apex - Apache Attic". Diakses tanggal 2 December 2019.
- ^ Big Data Analytics. Cham: Springer International Publishing. 2019. hlm. 184–184. ISBN 978-3-319-77524-1.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.