Big data merupakan istilah khusus yang digunakan untuk data yang melebihi kapasitas pemrosesan database konvensional. Hal itu karena data itu berjumlah terlalu besar, bergerak terlalu cepat, dan tidak sesuai dengan kemampuan struktural dari arsitektur database tradisional.
Big data disiapkan oleh perusahaan-perusahaan besar, firma maupun organisasi. Data-data ini diambil, diolah, dan digunakan oleh perusahaan untuk kepentingan tertentu. Nah, keseluruhan proses untuk mengumpulkan, merapikan, menganalisis big data yang disebut dengan big data analytics.
Untuk melakukannya, diperlukan arsitektur big data yang komprehensif dan relevan sesuai kebutuhan. Arsitektur yang digunakan bisa berbeda tergantung jenis data yang diolah, serta peruntukan hasil pengolahan data tersebut. Berikut gambaran umum arsitektur big data:
Data source adalah sumber data untuk big Data. Data umumnya dipompa masuk Big Data dengan menggunakan API ataupun dengan operasional file system seperti transfer file. Ada dua jenis data source yaitu streaming data source dan bulk data source.
Data aggregator adalah tool atau software yang mengumpulkan dan menyalurkan data dari sumber ke beberapa jenis pengolahan data di Big data.
Ada dua jenis data aggregator berdasarkan cara kerjanya, yaitu pull-based data aggregator dan push-based data aggregator. Pull-based data aggregator mengumpulkan data dan memberikan data tersebut kepada siapa saja yang meminta tanpa registrasi sebelumnya, mirip seperti Java Messaging Queue.
Sementara Push-based data aggregator mengumpulkan data dan mengirim data ke sistem lain yang sudah terhubung dan bisa menerima data dari data aggregator.
Realtime streaming processor adalah salah satu sistem pengolahan di big data yang umum ditemukan. Fungsinya adalah untuk menganalisis data yang bersifat realtime dan streaming. Contohnya adalah menghitung hashtag yang muncul di semua tweet di twitter.
Sifat dari pemrosesan ini haruslah ringan, dan cepat. Oleh karena itu, analisis data secara kompleks jarang sekali dilakukan. Output dari pemrosesan ini adalah gambaran umum dari data yang didapatkan dan tidak terlalu detail.
HDFS atau Hadoop dalam arsitektur big data lebih ditekankan sebagai tempat penyimpanan data yang sangat besar. Hadoop menjadi tempat semua data sehingga bisa dianalisis oleh berbagai tools untuk berbagai kepentingan sehingga bisa didapatkan hasil yang cukup detail dan bisa memenuhi kebutuhan user.
Non-realtime processor adalah proses pengolahan data untuk data yang lebih besar dalam HDFS. Pemrosesan ini menggunakan berbagai jenis tool sesuai kebutuhan. Contoh tool yang sering digunakan antara lain Hive dan Pig untuk Map Reduce, Apache Mahout dan Apache Spark untuk machine learning dan artificial intelligence. Hasil dari pemrosesan ini dimasukkan ke dalam data store untuk kemudian bisa di lihat di level aplikasi.
Data store adalah tools untuk menyimpan data hasil pemrosesan baik realtime maupun non-realtime. Datastore disini bisa berupa RDBMS ataupun jenis NoSQL lainnya. Namun, datastore yang umum dipakai adalah NoSQL berbasis Document.
Apps atau aplikasi mengakses data yang berada di data store untuk kemudian disajikan kepada user. Jenis aplikasi disini sangat bervariasi bisa berupa web, desktop ataupun mobile. Pada umumnya, aplikasi hanya melakukan visualisasi dari data yang sudah dianalisis sebelumnya.