Tuesday 27 December 2011

OLAP (Online Analytical Processing)

Apa itu OLAP? Bagi orang yang mendalami gudang data, tentu mengenal OLAP. Kali ini, aku mau mencoba memberikan sedikit materi tentang OLAP, silakan menyimak :)
OLAP adalah singkatan dari online analytical processing yaitu suatu analytical multidimensional modeling (data modeling) untuk pemrosesan database yang dirancang khusus untuk mampu menangani data dengan jumlah/volume besar dengan kalkulasi (perhitungan) yang kompleks untuk dapat menampilkan berbagai macam bentuk laporan, analisis trends, dan query. OLAP dirancang untuk menyediakan kinerja yang baik untuk query business intelligent. OLAP mengorganisasikan data ke dalam multidimensional cube. Meski dirancang untuk menangani data dengan jumlah/volume besar, OLAP tidak dapat dirancang untuk menyimpan data biner/teks yang besar.
Multidimensional modeling adalah pemodelan data yang dapat dilihat dari berbagai sudut pandang. Misalkan ada data penjualan buku, maka informasi yang dilihat bisa dari data tersebut antara lain lokasi toko, pengarang, jenis buku, penerbit, cabang toko, tahun terbit,  dll. Model ini merepresentasikan data dalam bentuk data cube. Data cube ini dibuat berdasarkan pada dimensional tabel dan fact tabel. 
Untuk merancang multidimensional modeling, maka perlu memperhatikan beberapa hal yang mempengaruhi  multidimensional modeling berikut :
          -  model harus memenuhi kebutuhan pemakai dan mudah dirawat/dimaintace.
          -  model mudah untuk dipelihara/dikelola.
          -  model harus dapat diterapkan di relational database yang mendukung OLAP.
          -  multidimensional modeling biasanya menggunakan schema star atau snowflake.


contoh hasil multidimensional modeling
 
Ada beberapa tipe OLAP yang mempunyai cara kerja berbeda - beda. Tipe OLAP tersebut antara lain :
1. MOLAP (multidimensional online analytical processing)
MOLAP adalah tipe OLAP yang memiliki storage sendiri, yang isinya merupakan precomputed agregasi data (sum, count, min, max, dsb) 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. MOLAP adalah tipe OLAP yang sering ditemui dan banyak diterapkan.

mekanisme kerja MOLAP

ilustrasi JPivot di MOLAP dan fragmen table penyusunnya

Keuntungan dari MOLAP yang paling jelas adalah performa kecepatan akses yang sangat baik. Namun kelemahannya adalah jika kombinasi agregasi data yang dihasilkan adalah data untuk semua level, maka ukuran penyimpanan akan bisa lebih besar daripada sumbernya sendiri. Maka, biasanya MOLAP memiliki batasan sendiri untuk jumlah row dan kombinasi level agregasi yang diijinkan.

2. ROLAP (relational online analytical processing)
ROLAP adalah tipe OLAP yang bergantung kepada database relasional atau RDBMS (relational database management system) sebagai media penyimpanan (storage) data yang akan diolah. Otomatis proses optimasi ROLAP akan sangat ditentukan di sisi produk RDBMS yang digunakan misalkan dari sisi penanganan jumlah data dan strategi indexing.

mekanisme kerja ROLAP

ilustrasi JPivot di MOLAP dan Log SQL

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

3. HOLAP (hybrid online analytical processing)
HOLAP digunakan 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 JPivot di HOLAP dan media penyimpanannya


Dari tipe - tipe di atas, dapat diambil kesimpulan sebagai berikut :
-  MOLAP tidak menggunakan RDBMS sebagai storage tetapi menggunakan media penyimpanan eksternal. MOLAP mempunyai performa pembacaan yang sangat baik dan menggunakan proses pre-komputasi (agregate table).
-  ROLAP menggunakan RDBMS sebagai storage dan tidak menggunakan media penyimpanan eksternal lainnya. ROLAP mempunyai performa pembacaan yang hasilnya sangat bergantung dengan kondisi RDBMS. ROLAP tidak menggunakan pre-komputasi, meskipun pada beberapa sistem ROLAP terdapat aggregate table yang fungsinya mirip dengan MOLAP.
-  HOLAP menggunakan media penyimpanan baik RDMS maupun eksternal. Performa pembacaan yang dihasilkan sangat baik dan menggunakan proses pre-komputasi.


Penggunaan OLAP mempunyai beberapa keuntungan, yaitu :
  1. meningkatkan produktifitas pemakai akhir bisnis, pengembang IT, dan keseluruhan organisasi. Pengawasan yang lebih baik dan akses tepat waktu terhadap informasi strategis dapat membuat pengambilan keputusan lebih efektif.
  2. Mengurangi "backlog" pengembang aplikasi bagi staff IT denga membuat pemakai akhir dapat merubah schema dan membangun model sendiri.
  3. Penyimpanan pengawasan organisasi melalui integritas data koorporasi.
  4. sebagai aplikasi OLAP tergantung pada data warehouse dan sistem OLTP untuk memperbaharui sumber tingkatan data mereka.
  5. Mengurangi aktivitas query dan lalu lintas jaringan pada sistem OLAP atau pada data warehouse.
  6. Meningkatkan hasil dan keuntungan secara potensial dengan mengizinkan organisasi untuk merespon permintaan pasar lebih cepat.
Fact tabel
Fact tabel merupakan tabel yang umumnya mengandung angka dan data history dimana key yang dihasilkan sangat unik, karena key tersebut terdiri dari foreign key yang merupakan primary key  dari beberapa dimensional tabel yang berhubungan. Dapat juga dikatakan fact tabel adalah tabel utama dari data cube yang isinya tergantung dari ada berapa dimensi dari suatu data dan pengukuran(measure). Syarat fact tabel adalah adanya kumpulan key dari dimensi dan pengukuran yang akan dicube. Dalam satu fact tabel dapat berisi ribuan kolom.

Dimensional tabel
Tabel yang berisikan kategori dengan ringkasan data detail yang dapat dilaporkan. Seperti laporan laba pada tabel fakta  dapat dilaporkan sebagai dimensi waktu (yang berupa perbulan, perkwartal dan pertahun). Dapat juga dikatakan dimensional tabel adalah tabel yang berelasi dengan fact tabel.
Atribut pada tabel dimensi merupakan kolom-kolom yang ada pada tabel dimensi. Pada tabel dimensi lokasi, atribut bisa merupakan Kode Pos, kota, kode negara, negara, dll. Secara umum, atribut pada tabel dimensi digunakan untuk pelaporan dengan menggunakan batasan kueri, contoh where Country='USA'. Atribut pada tabel dimensi juga mengandung satu atau beberapa hierarchical relationship. Sebelum mendesain data warehouse, harus ditentukan dulu mengandung elemen apa saja data warehouse yang akan dibuat.  Misalkan jika ingin membuat data warehouse yang mengandung “jumlah penjualan bulanan” yang melibatkan semua lokasi, waktu, dan produk, maka dimensinya adalah : Lokasi, Waktu, dan Product.

Ada beberapa macam schema yang dapat digunakan untuk membangun OLAP, yaitu :
1.  Star schema
Schema dimana data warehouse terdiri dari satu tabel pusat yang besar (fact tabel). Ada satu table untuk tiap dimensi. Pada star schema, satu dimensi diwakili oleh satu tabel dan masing-masing tabel diwakili oleh beberapa atribut.

contoh schema star

2.  Snowflake schema  
merupakan relational database yang digunakan OLAP dimana table-table dimensi tidak terdapat data yang di denormalisasi. Dengan kata lain satu atau lebih table dimensi tidak bergabung secara langsung kepada table fakta tapi pada table dimensi lainnya.
Ada mekanisme normalisasi tabel dimensi pada schema ini. Schema juga mudah untuk dimaintain dan butuh kapasitas penyimpanan yang relatif lebih kecil. Efektifitas browsing/select data berkurang karena harus melibatkan banyak kueri dari berbagai macam tabel.

contoh schema snowflake

Penggunaan kedua schema tersebut bergantung dari kondisi data yang dipelajari. Schema snowflake mendukung pemeliharaan dimensional tabel yang lebih mudah. Jika atribut dimensi sering diupdate, maka lebih baik dibuat dimensi snowflake. Sedangkan star lebih mudah diakses pengguna dan mendukung query yang lebih sederhana dan efisien. Lebih baik membuat schema star daripada schema snowflake jika ingin mempresentasikan kepada pengguna.

No comments:

Post a Comment