Dalam proses monitoring proses bisnis, pengumpulan data sangat diperlukan. Hal tersebut dilakukan dalam upaya memperoleh gambaran riil kondisi proses bisnis yang terjadi dalam lingkup organisasi. Keberhasilan pengembangan dan penggunaan sistem monitoring tidak dapat terlepas dari kualitas data yang diperoleh dari sistem pendukung lain yang berkaitan dengan proses bisnis yang terjadi. Data tersebut akan digunakan/bermanfaat bagi pemangku kepentingan (stakeholders) yang terlibat dalam proses bisnis maupun dalam pengambilan keputusan.
Sistem Monitoring membutuhkan data-data dari berbagai sumber data, lalu data-data yang ditarik tersebut disimpan di dalam data warehouse. Sehingga, Sistem Monitoring akan dapat dengan mudah menarik data sesuai dengan kebutuhan pada data warehouse. Agar data yang berbeda format tersebut dapat seragam, maka dari itu diperlukan proses ETL (Extract, Transform, Load). ETL merupakan sekumpulan proses yang harus dilalui dalam pembentukan data warehouse. Tujuan ETL adalah mengumpulkan, menyaring, mengolah dan menggabungkan data-data yang relevan dari berbagai sumber untuk disimpan ke dalam data warehouse.
Proses ETL sendiri terdiri dari extracting, transforming, dan loading, Berikut adalah penjelasan dari tiap proses :
Extract adalah proses memilih dan mengambil data dari satu atau beberapa sumber dan membaca/mengakses data yang dipilih tersebut. Proses ini dapat menggunakan query, atau aplikasi ETL. Sebaiknya sebelum proses extract kita lakukan, akan lebih mudah jika user sudah mendefinisikan kebutuhan terhadap sumber data yang akan kita butuhkan.
Pada Proses ini data yang telah diambil pada proses extract akan dibersihkan dan mengubah data dari bentuk asli menjadi bentuk yang sesuai dengan kebutuhan data warehouse. Kendala yang biasanya terjadi pada proses transform adalah sulitnya menggabungkan data dari beberapa sistem yang harus dibersihkan sehingga data bersifat konsisten.
Load adalah proses terakhir yang berfungsi untuk memasukkan data ke dalam target akhir, yaitu ke dalam data warehouse. Cara untuk memasukkan data adalah dengan menjalankan SQL script secara periodik.Pada proses ini akan mengubah data kedalam bentuk Dimensional Data Store agar format data cocok untuk diterapkan pada proses analisis dan telah terintegrasi dengan beberapa sumber data. Proses Load yang termasuk proses terakhir dalam ETL akan sampai ke berbagai macam output yang sesuai dengan skemanya, yaitu terdiri dari proses load-up data, load-insert data, dan load bulk data.
Data warehouse tidak mungkin ada tanpa adanya proses ETL karena Proses ETL merupakan suatu landasan dari sebuah data warehouse. Proses ETL ini sangat penting karena sangat berperan terhadap kualitas data dalam data warehouse, sehingga data warehouse nantinya dapat digunakan untuk keperluan business intelligence atau aktivitas analisis yang lain. Dikatakan sebuah proses ETL berjalan dengan benar, jika pada proses itu melibatkan beberapa hal yaitu akan adanya proses mengekstraksi data dari sebuah sumber, mempertahankan kualitas data tersebut, menerapkan aturan-aturan standar, dan menyajikan data dalam berbagai bentuk, sehingga dapat digunakan dalam proses pengambilan keputusan.
Ada beberapa tools yang digunakan dalam proses ETL, salah satunya adalah Data Collection Engine (DCE) yang berfungsi untuk mengumpulkan, menyaring, mengolah dan menggabungkan data-data yang relevan dari berbagai sumber untuk disimpan ke dalam data warehouse.
Untuk memonitor proses penarikan data ke dalam data warehouse, maka diperlukan sebuah dashboard yang dapat mengontrol aktivitas dan proses penarikan data. Dengan adanya dashboard monitoring penarikan data, dapat diketahui waktu terakhir data pada warehouse tersebut di update. Sehingga data yang tersedia pada sistem monitoring merupakan data yang paling update. Selain itu berikut ini adalah kegunaan lain dari dashboard monitoring DCE (Data Collection Engine).
Secara umum, dashboard monitoring juga bertujuan untuk menjaga kualitas data. Dashboard melakukan monitoring hasil penarikan data dari sejumlah instrumen dan mampu memberikan analisa terhadap hasil penarikan data yang dilakukan.
Fitur pencarian cepat dan pengelolaan resource didesain secara efisien, antara lain menggunakan elasticsearch. Elasticsearch merupakan Search Server yang didasarkan pada Apache Lucene Library yang dikembangkan menggunakan Bahasa Pemrograman JAVA. Teknologi ini digunakan sebagai server untuk melakukan pencarian terhadap suatu resource. Dengan adanya Elasticsearch maka hal-hal yang berkaitan dengan pencarian, terutama pencarian yang berat, tidak perlu melakukan query ke database server tetapi dialihkan ke Elasticsearch.
Pada elasticsearch, untuk mengumpulkan data resource yang nantinya akan dicari, dilakukan dengan melalui proses yang dinamakan indexing yaitu proses mengisikan data ke Elasticsearch dengan field-field tertentu untuk suatu resource. Resource adalah tabel yang ada pada database relasional. Apa yang kita simpan pada tabel pasti suatu saat akan kita cari datanya, untuk beberapa kasus yang query-nya memakan sumber daya yang berat maka dialihkan ke Elasticsearch.
Beberapa poin penting dari Elasticsearch adalah :
Elasticsearch merupakan Distributed Search Engine, proses pencarian dapat dilakukan secara paralel oleh banyak server. Jumlah server dapat ditambah atau dikurangi secara flexible sesuai dengan kebutuhan.
Pada Data Collection Engine dilengkapi dengan fitur eksport data berupa (CSV, Excel, API, XML, JSON) atau simpan ke database, untuk mendukung kebutuhan olah data dan analisa lebih lanjut.
Data Collection Engine dilengkapi dengan user management, sehingga memungkinkan pengguna dapat mengakses sistem sesuai dengan role nya masing-masing.
Fitur ini mampu melakukan penjadwalan rekapitulasi otomatis (jam, harian, mingguan atau waktu spesifik) untuk memperbarui data pada aplikasi yang dikembangkan. Sehingga, data yang dibutuhkan merupakan data yang up to date serta meminimalisir apabila user lupa dalam mengupdate data. Selain rekapan otomatis yang terjadwal, dapat juga secara manual tanpa ada penjadwalan.
Dengan adanya Data Collection Engine, akan memudahkan proses penarikan data tanpa perlu melakukan coding terlebih dahulu.
Aplikasi yang mempunyai informasi mengenai unduhan yang berhasil dan gagal. Selain itu, aplikasi juga dapat melakukan/melanjutkan unduhan yang terganggu, baik secara otomatis maupun secara manual.
Teknologi yang digunakan Data Collection Engine (DCE) ini diantaranya adalah:
Penarikan Data | Logstash Logstash adalah mesin pengumpul data yang berbasis open source dengan kemampuan pipelining secara real-time. Logstash dapat secara dinamis menyatukan data dari berbagai sumber dan melakukan normalisasi data ke dalam target yang telah ditentukan. Membersihkan dan menyesuaikan semua data untuk berbagai tujuan, baik berupa analisis maupun visualisasi dan reporting untuk pengambilan keputusan eksekutif. |
Indexing | Elasticsearch Merupakan search engine full-text yang bisa diakses melalui RESTful API. Search engine ini berorientasi dokumen (hampir seperti MongoDB) artinya engine ini akan menyimpan objek atau dokumen daripada menyimpan data dengan representasi baris dan kolom. Dokumen yang disimpan tersebut akan di serialisasi sebagai JSON ketika diakses. |
Dashboard Administrator | Kibana Kibana merupakan teknologi open source untuk visualisasi data dari index Elasticsearch. Pengguna dapat membuat grafik dalam berbagai bentuk untuk melakukan pengolahan dan representasi dari data yang berjumlah sangat besar. |
Dashboard Public | Laravolt Laravolt adalah sebuah platform pengembangan aplikasi web yang dibangun di atas framework Laravel. Laravel menyediakan fungsionalitas yang dibutuhkan untuk membangun sebuah aplikasi web mulai dari authorization, authentication, templating engine, CSRF protection, XSS protection, SQL Injection protection, scheduler, hingga queue. Laravolt kemudian memanfaatkan fungsi-fungsi tersebut dan membungkusnya dalam sebuah modul (package) yang siap pakai (plug and play) sehingga proses pengembangan aplikasi bisa lebih cepat. Modul-modul yang dimiliki Laravolt antara lain: CMS, user management, media manager, database backup, form builder, log viewer, audit trail, dan lain-lain.Keunggulan lain dari Laravolt adalah kemudahan untuk memodifikasi ataupun menambahkan fitur ke dalam sebuah modul tanpa harus mengubah secara langsung kode sumber modul yang bersangkutan. Hal ini dimungkinkan karena Laravolt telah menerapkan design pattern secara modern dalam setiap arsitektur modulnya.Dari sisi antarmuka (UI), Laravolt memanfaatkan Semantic-UI untuk menghasilkan tampilan yang modern dan konsisten. Semantic-UI sendiri adalah sebuah UI library yang menyediakan ratusan komponen siap pakai untuk membangun sebuah aplikasi web. Dengan Laravolt dan Semantic-UI, programmer bisa langsung fokus ke pengembangan fitur tanpa perlu menghabiskan banyak waktu untuk menyiapkan kerangka aplikasi ataupun mengutak-atik CSS dan JavaScript untuk mempercantik tampilan. |
Secara keseluruhan, arsitektur teknologi yang digunakan dapat digambarkan dalam diagram berikut:
Pada gambar diatas dapat dijelaskan sebagai berikut:
Data Collection Engine (DCE) sangat penting bagi organisasi yang telah memiliki banyak data dari banyak sistem.