Senin, 28 Januari 2013

Business Inteligence - OLAP, ROLAP, MOLAP


Jika Anda sering berdiskusi atau membaca mengenai teknologi OLAP (Online Analytical Processing) maka istilah MOLAP, ROLAP dan HOLAP mungkin akan cukup mendominasi pembicaraan atau literatur yang Anda baca tersebut. 

Pada kesempatan ini penulis mencoba menjelaskan perbedaan antara ketiganya dengan ilustrasi dan contoh mekanisme kerja - yang coba kami buat sesederhana mungkin.

Namun sebelumnya mari kita coba mulai dengan definisi singkat apa sebenarnya OLAP itu sendiri.


OLAP (Online Analytical Processing) 

OLAP adalah aplikasi analytical dengan kemampuan pivot menyerupai spreadsheet - seperti Microsoft Excel, OpenOffice Calc, dll. OLAP merupakan komponen penting dari aplikasi BI (Business Intelligence).

Perbedaan dengan spreadsheet adalah OLAP dirancang khusus untuk mampu menangani jumlah data besar dan memiliki ekspresi bahasa analisis yang lebih baik. Dan aplikasi OLAP ini biasanya memiliki arsitektur client / server. 

Database OLAP memiliki struktur skema tersendiri dan biasanya berupa suatu data warehouse. Namun tidak tertutup kemungkinan OLAP mengambil dari database operasional (transaksional) - ini dengan catatan database ini telah memiliki struktur rancangan yang "OLAP friendly" (Lihat Gambar).



Dua Jenis Infrastruktur OLAP Client / Server

Pada gambar di atas, terlihat OLAP Server menggunakan buffer / cache yang bersifat temporer dan permanen. Ini akan erat kaitannya dengan jenis OLAP yang akan kita bahas. Selain itu, walaupun skema infrastruktur di bagian kanan gambar memungkinkan, ini sangat tidak disarankan dengan alasan performa dan kendala perancangan cube (pivotal data) yang lebih kompleks. 

MOLAP dan ROLAP

Sekarang mari kita bahas kedua jenis OLAP pertama, yaitu MOLAP (Multi Dimensional OLAP) dan ROLAP (Relational OLAP). 

Perbedaan keduanya sangat jelas pada aspek penyimpanan datanya. Jika melihat pada gambar di atas, maka bagian tersebut adalah  "Temporary Or Permanent Cache", dimana :
  • ROLAP menggunakan Temporary Cache (SQL Result Cache)
  • MOLAP menggunakan Permanent Cache (Precomputed Storage)
Sangat jelas dan sederhana bukan ? Tetapi untuk memperjelas statement di atas maka kami coba memberikan gambaran mengenai mekanisme kerja keduanya di bawah ini. 

ROLAP (Relational OLAP)

ROLAP adalah tipe OLAP yang bergantung kepada database relasional atau RDBMS (Relational Database Management System) sebagai media penyimpanan (storage) data yang akan diolah. 

Dengan strategi tersebut maka OLAP Server terhindar dari masalah pengelolaan data storage dan hanya menerjemahkan proses query analysis (MDX) ke relational query (SQL). 

Otomatis proses optimasi ROLAP akan sangat ditentukan di sisi produk RDBMS yang digunakan misalkan dari sisi penanganan jumlah data dan strategi indexing.



Gambaran Mekanisme kerja ROLAP
Cara kerja ROLAP secara umum adalah sebagai berikut :
  • OLAP client mengirimkan query analisis ke OLAP Server.
  • OLAP server akan melakukan pemeriksaan di cache apakah sudah bisa melayani permintaan query dari client tersebut, jika sudah akan dikirimkan.
  • Jika pada cache belum terdapat data diminta, akan dilakukan query SQL ke data mart dan hasil eksekusinya disimpan di cache dan dikirimkan kepada client.
  • Demikian seterusnya.
  • Cache akan disimpan selama periode waktu tertentu dan akan dibersihkan total jika server dimatikan.
Gambar di bawah ini adalah contoh tampilan web dari  Mondrian / Pentaho Analysis yang merupakan ROLAP (bagian atas gambar). Tiap level data yang dianalisis akan dikonstruksi menjadi SQL yang terlihat pada bagian bawah gambar (klik untuk memperbesar).

Mondrian's JPivot dan Log SQL

Keuntungan dari ROLAP ini adalah tidak memerlukan storage tambahan. Namun kelemahannya adalah  jika data untuk suatu cube sangat besar (masif) maka performa pengambilan data akan cukup buruk.

MOLAP (Multi Dimensional OLAP) 

MOLAP adalah tipe OLAP yang memiliki storage sendiri, yang isinya merupakan precomputed agregasi data - sum, count, min, max, dan sebagainya - yang terlibat pada berbagai level detil. Storage ini berupa format yang hanya dikenali oleh MOLAP server tersebut dan telah khusus dioptimalkan untuk penggunaan oleh aplikasi tersebut.



Cara kerja MOLAP secara umum dibagi ke dalam dua tahap sebagai berikut :
  • Tahap konstruksi dan populasi data, pada tahap ini sumber data akan dibaca, dilakukan perhitungan agegrasi (summary group) pada berbagai level dimensi, dan hasilnya akan disimpan di storage MOLAP. Jika objek data diperumpamakan dengantable, maka untuk satu cube akan banyak fragmen table yang isinya adalah detil agregasi dari level tertentu.
  • Tahap query atau layanan permintaan data analisis, pada tahap ini OLAP Server akan melayani permintaan query dari client dan membaca data dari storage MOLAP. Table yang akan dibaca adalah suatu fragmen yang akan disesuaikan dengan permintaan dari client. Pada fase query ini, jika OLAP Server terputus dengan data source tidak apa-apa karena sudah tidak ada kaitannya.

Gambar di bawah ini adalah ilustrasi sebuah pivot view yang berasal dari MOLAP server. Fragmen-fragmen table, yaitu data olahan (precomputed aggregate) penyusun pivot tadi tampak di samping kanan gambar (klik untuk memperbesar). 



Ilustrasi Pivot di MOLAP dan Fragmen Table Penyusunnya

Keuntungan dari MOLAP ini yang paling jelas adalah performa kecepatan akses yang sangat baik. Namun kelemahannya adalah jika kombinasi agregasi data yang dihasilkan untuk semua level, maka ukuran penyimpanan akan bisa lebih besar daripada sumbernya sendiri.

Atas alasan inilah biasanya MOLAP memiliki batasan sendiri untuk jumlah row dan kombinasi level agregasi yang diijinkan. 

Jadi bagaimana kelemahan ini ? Padahal MOLAP adalah pilihan yang ideal jika mempertimbangkan performa sebagai prioritas penggunaan system ? HOLAP adalah jawabannya !

HOLAP (Hybrid OLAP)

HOLAP hadir untuk mengatasi kelemahan dari ROLAP dan MOLAP, kelemahan tersebut adalah :
  • Performa ROLAP tidak begitu baik karena agregasi selalu dilakukan ulang apabila cache sudah expired.
  • Keterbatasan storage dari MOLAP jika digunakan untuk menyimpan kombinasi agregasi pada semua level.
Jadi HOLAP merupakan kombinasi atau "jalan tengah" antara keduanya dimana HOLAP akan menyimpan data precomputed aggregate pada media penyimpanan (storage) HOLAP sendiri. 

Yang disimpan pada storage HOLAP adalah data untuk beberapa level teratas atau high level view. Sedangkan untuk level yang lebih rendah atau lebih rinci akan disimpan di database relasional. Ilustrasi dari penjelasan tersebut bisa dilihat pada gambar di bawah ini (klik untuk memperbesar).


Ilustrasi Pivot di HOLAP dan Media Penyimpanannya

Kesimpulan

Dari uraian di atas dapat diambil kesimpulan perbedaan ROLAP, MOLAP dan MOLAP disarikan dalam tabel matrix berikut ini :

 OLAP Type Penyimpanan RDBMS  Penyimpanan Internal Performa Pembacaan Pre-Komputasi
 ROLAP Ya Tidak  Tergantung RDBMS Tidak *
 MOLAP Tidak  Ya Sangat Baik Ya
 HOLAP Ya Ya Sangat Baik Ya
Keterangan :
* pada beberapa sistem ROLAP terdapat aggregate table yang fungsinya mirip dengan MOLAP.

2 komentar: