Aplikasi DCE (Data Collector Engine)


PT Javan Cipta Solusi membuat sistem penarikan data collector engine (DCE) yang mengumpulkan seluruh data dengan berbagai instrumen penarikan yang dilengkapi dengan dashboard penarikan data untuk mendukung monev PBJ.


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.

Data Collection Engine (DCE) dan Data Warehouse

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 :

1. Extract

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.

2. Transform

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.

3. Load

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. 

Posisi DCE dalam alur Datawarehouse

Dashboard Data Collection Engine (DCE)

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). 

  • Memudahkan user apabila terdapat penarikan data yang tidak sesuai dengan kebutuhan
  • Mengontrol cepat lambatnya penarikan data
  • Mengontrol waktu muat rata-rata
  • Memudahkan user mendeteksi kegagalan dalam proses penarikan data
  • Memonitor load data pada setiap penarikan yang dilakukan
  • Melihat jumlah data yang tersimpan, dan sebagainya.  

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

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 :

  • Proses pencarian dokumen dengan menggunakan ElasticSearch menjadi sangat mudah dan efisien. 
  • Dapat melakukan full-text search, meng-handle synonyms dan menilai dokumen berdasarkan relevansinya
  • Men-generate analytics dan agregations dari data yang sama
  • Dapat melakukan proses pencarian secara real-time tanpa big batch-processing jobs

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. 

Fitur Pendukung

Fitur Eksport Data 

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. 

User Management

Data Collection Engine dilengkapi dengan user management, sehingga memungkinkan pengguna dapat mengakses sistem sesuai dengan role nya masing-masing. 

Rekap Otomatis

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. 

Penarikan Data dengan Mudah

Dengan adanya Data Collection Engine, akan memudahkan proses penarikan data tanpa perlu melakukan coding terlebih dahulu. 

Informasi Unduhan

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.

Arsitektur Teknologi

Teknologi yang digunakan Data Collection Engine (DCE) ini diantaranya adalah:

Penarikan DataLogstash
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.
IndexingElasticsearch
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 AdministratorKibana
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 PublicLaravolt
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:

  1. Sumber data berasal dari Berbagai sistem.
  2. Logstash melakukan penarikan data dari sumber data secara periodik.
  3. Elastic membuat index, yaitu masing2 1 index untuk setiap sumber data.
  4. Visualisasi oleh admin dilakukan menggunakan Kibana, sekaligus untuk membuat desain dashboard yang dapat diakses oleh publik.
  5. Publik mengakses web yang dikembangkan menggunakan laravolt, yang mengakses dashboard dari kibana menggunakan iframe.

Data Collection Engine (DCE) sangat penting bagi organisasi yang telah memiliki banyak data dari banyak sistem.