Mondrian‎ > ‎

PHI-Minimart OLAP


Pendahuluan

PHI-Minimart edisi OLAP adalah contoh database dari PHI-Integration dimana skemanya dirancang dan dioptimalkan untuk penggunaan OLAP (Online Analytical Processing). Skema yang digunakan adalah skema bintang (star scheme) dan contoh datanya diambil dari proeyk sampledataorg : PHI-Minimart.

Optimasi Skema - OLTP ke OLAP

PHI-Minimart versi OLTP dirilis pada tanggal 2 Februari 2009. Contoh database ini dibuat dengan skenario proses bisnis di jaringan retail yang bernama PHI-Minimart dan tersebar di seluruh Indonesia. 

Versi ini merupakan versi "beta" / awal yang memfokuskan ke transaksi penjualan sederhana. Untuk keterangan dan rencana kerjanya silahkan lihat di halaman wiki ini.

PHI-Minimart


PHI-Minimart 0.1 terdiri tabel-tabel berikut :
  • Tabel Master 
    • ms_kategori : data kategori produk
    • ms_produk : data produk 
    • ms_harga_harian : daftar harga harian untuk tiap produk dan  tiap cabang 
    • ms_cabang : data cabang PHI-Minimart di seluruh Indonesia
    • ms_kota :  data kota domisili PHI-Minimart
    • ms_propinsi : data propinsi seluruh Indonesia
    • ms_karyawan : data karyawan PHI-Minimart
  • Tabel Transaksi
    • tr_penjualan : merupakan transaksi penjualan yang mencatat tanggal transaksi, di cabang mana transaksi dilakukan

Berikut adalah skema relasional dari database PHI-Minimart yang dioptimalkan untuk OLTP (Online Transaction Processing). 


PHI-Minimart OLAP


PHI-Minimart OLAP  juga dirilis dalam waktu yang bersamaan dengan PHI-Minimart tapi dalam proyek yang berbeda. Anda dapat mengunjungi situs proyek PHI-OLAP-SAMPLES sebagai placeholder project dari contoh database OLAP ini.

PHI-Minimart OLAP ini adalah contoh database yang telah didenormalisasi dari PHI-Minimart. Dapat dilihat dari skema EER di bawah ini bahwa 8 tabel di atas "dimampatkan" menjadi 5 tabel.

Terlihat di bawah ini ada 5 tabel dengan penjelasan sebagai berikut :
  • Tabel Dimensi / Dimension Tables
    • dim_cabang : dimensi cabang dengan kemungkinan level hirarki propinsi > kota > cabang
    • dim_karyawan : dimensi karyawan dengan kemungkinan level hirarki jenis kelamin > nama karyawan
    • dim_produk
    • dim_time : dimensi waktu dengan berbagai kemungkinan hierarkis. Digenerasi dengan menggunakan contoh bawaan dari Kettle.
  • Tabel Fakta / Fact Table 
    • phi_sales_fact : transaksi penjualan dari PHI-Minimart dengan beberapa precomputed field (field yang menghitung dari awal dan disimpan langsung ke dalam tabel) seperti total_harga_jual, total_biaya_cabang, dan total_modal_cabang.






Contoh Penggunaan di Mondrian

Kita akan menguji coba database OLAP ini dengan Mondrian. Mondrian sendiri adalah OLAP engine / server open source dari Pentaho

Instalasi Mondrian

Untuk menjalankan contoh di bawah ini. Sebelumnya Anda harus memastikan bahwa Mondrian Anda sudah berjalan dengan lancar. Anda dapat melhat petunjuk instalasi dari Pentaho disini. Atau untuk  Anda yang menggunakan Windows XP, saya telah membuat artikel instalasinya yang dapat Anda lihat di Instalasi Mondrian di Windows XP.

Instalasi Contoh Database

  • Untuk saat ini baru contoh database MySQL 5.0 yang dihasilkan dan bisa didapatkan di :
  • Populasi data tersebut dengan menggunakan command line mysql, yaitu dengan perintah :
    • mysql -u[userAnda] -p[PasswordAnda] -e "create database phi_minimart_dw"
    • mysql -u[userAnda] -p[PasswordAnda] phi_minimart_dw  < phi_minimart_dw.sql
  • Selesai

Konfigurasi Halaman HTML, JSP dan Skema Mondrian

  • Download file-file dari paket contoh :
  • Edit file phiquery.jsp dan sehingga tag-nya sesuai dengan konfigurasi database MySQL Anda :

    phiquery.jsp

    ...
    <jp:mondrianQuery id="query01"
        jdbcDriver="com.mysql.jdbc.Driver"
        jdbcUrl="jdbc:mysql://localhost/phi_minimart_dw?user=root&password="
        catalogUri="/WEB-INF/queries/PHI.xml">
    ...

Menjalankan Contoh

  • Jalankan server dan buka halaman awal Mondrian
  • Klik link "PHI-Minimart - Sales Cube"
  • Setelah beberapa saat akan muncul halaman Cube Penjualan dengan measures "Total Penjualan, Total Biaya, Total Modal, Untung Bersih" dan satu dimensi "Karyawan"
  • Silahkan eksplorasi contoh ini dengan mengklik hirarki dari dimensi Karyawan dan melakukan soriting data OLAP seperti pada contoh gambar di bawah ini. Disini terlihat bahwa untuk karyawan Pria, yang paling banyak mencatat untung bersih adalah Eko Rukun.

Menambahkan Dimensi / Measure yang Ada

  • Klik icon "OLAP Navigator" pada toolbar | Pilih dimensi waktu (Time) untuk diletakkan pada bagian sisi baris seperti pada tampilan di bawah ini.



  • Setelah diklik maka dimensi waktu akan berpindah di bagian baris (Rows).



  • Klik OK
  • Dimensi waktu akan ditambahkan pada halaman dengan nilai 2008, 2009 dan 2010 yang menunjukkan tahun transaksi. Buka hirarki dari tahun 2008 dan dari contoh gambar di bawah ini bulan 8 (Agustus) 2008 adalah bulan  dengan keuntungan bersih terbesar.


  • Contoh-contoh lainnya dengan menganalisa berbagai dimensi








Kelemahan Contoh

  • Contoh database OLAP untuk Mondrian yang diberikan masih sangat standar dan belum dioptimalkan dengan membuat tabel aggregate. Hal ini karena Mondrian adalah engine ROLAP (Relational OLAP) yang sangat menggantungkan diri pada performance engine database dengan meng-generate SQL. Jika baris data terlalu banyak akan sangat lambat.
  • Roadmap selanjutnya adalah membuat paket contoh untuk Mondrian lengkap dengan tabel-tabel aggregate ini.

Penutup


PHI-Minimart OLAP adalah contoh database dengan skema yang dioptimalkan untuk OLAP. Dengan membandingkan antara skema dari asal database contoh yaitu PHI-Minimart dengan skema OLAP (Star Scheme) maka terlihat perbedaan yang cukup jelas antara perancangan skema tipe transactional data dan analytical data.

Untuk memberi gambaran yang lebih jelas, pada artikel ini juga diberikan contoh skema dan file query Mondrian dengan contoh PHI-Minimart OLAP ini beserta ringkasan penggunaannya.

Semoga artikel ini dapat berguna bagi kita semua. Saran dan komentar dapat dialamatkan ke penulis di feris@phi-integration.com .

Mengalami Masalah dengan Contoh ?


Silahkan bergabung dengan user group kita di http://groups.google.com/group/pentaho-id atau di http://pentaho-id.ning.com dan tanyakan permasalahan Anda.