Spark adalah mesin analitik big data serbaguna yang menawarkan kinerja tinggi, kemudahan penggunaan, dan universalitas tinggi.
Arsitektur
Spark menyediakan empat pustaka pemrograman utama: Spark SQL, Spark Streaming, MLlib, dan GraphX, yang dibangun di atas Spark Core, seperti ditunjukkan pada gambar berikut. Pustaka ini mendukung ekstraksi, transformasi, dan pemuatan (ETL) offline, pemrosesan analitik daring (OLAP), pemrosesan aliran, pembelajaran mesin, dan komputasi graf. Untuk informasi lebih lanjut, kunjungi situs resmi Apache Spark.
Skenario
ETL Offline
ETL Offline digunakan dalam skenario gudang data dan melibatkan proses mengekstraksi, mentransformasi, dan memuat sejumlah besar data. Proses ini biasanya memakan waktu lama dan sering dilakukan menggunakan tugas terjadwal.
OLAP
OLAP digunakan dalam skenario business intelligence (BI). Setelah analis mengirimkan kueri interaktif, Spark dengan cepat mengembalikan hasilnya. Selain Spark, mesin OLAP lainnya termasuk Presto dan Impala. Fitur utama Spark 3.0 didukung di E-MapReduce (EMR) Spark 2.4. Untuk informasi lebih lanjut tentang fitur-fitur Spark, lihat Panduan Pemrograman Spark SQL.
Pemrosesan aliran
Pemrosesan aliran digunakan dalam skenario pemrosesan data real-time, seperti pembaruan dasbor waktu nyata, manajemen risiko, rekomendasi, pemantauan, dan peringatan. Mesin pemrosesan aliran mencakup Spark Streaming dan Flink. Spark Streaming menyediakan API DStream dan Structured Streaming. Structured Streaming dapat digunakan dengan cara yang mirip dengan DataFrame dan tidak memiliki persyaratan tinggi bagi pengembang. Flink cocok untuk skenario yang memerlukan latensi rendah, sedangkan Spark Streaming cocok untuk skenario yang memerlukan throughput tinggi. Untuk informasi lebih lanjut, lihat Panduan Pemrograman Structured Streaming.
Pembelajaran mesin
MLlib adalah pustaka pembelajaran mesin yang skalabel dan mencakup algoritma untuk klasifikasi, regresi, penyaringan kolaboratif, dan agregasi. MLlib menyediakan alat seperti pemilihan model, penyetelan parameter otomatis, dan validasi silang untuk meningkatkan produktivitas. MLlib mendukung modul algoritma untuk non-pembelajaran mendalam. Untuk informasi lebih lanjut, lihat Panduan Pustaka Pembelajaran Mesin (MLlib).
Komputasi graf
GraphX adalah pustaka komputasi graf yang mendukung berbagai operator komputasi graf, seperti operator properti, operator struktural, operator join, dan operator agregasi lingkungan. Untuk informasi lebih lanjut, lihat Panduan Pemrograman GraphX.