Showing posts with label Datawarehouse. Show all posts
Showing posts with label Datawarehouse. Show all posts

Tuesday, January 10, 2017

Cara membuat Mondrian OLAP Cube Schema dengan Schema Workbench | Tutorial Pentaho BI Server

Schema Workbench adalah visualisasi antarmuka yang memungkinkan kita untuk membuat Mondrian OLAP Cube Schema yang fungsinya untuk memetakan tabel dan kolom fisik fact/dimension menjadi struktur logis cube/dimension/measures. Jadi, datawarehouse yang sudah kita buat harus kita petakan terlebih dahulu supaya dapat digunakan di aplikasi Pentaho BI Server.

Sebelumnya, unduh dulu Schema Workbench di website resmi Pentaho -> community.pentaho.com

Berikut langkah-langkah untuk membuatnya:

A. Menjalankan Schema Workbench
Untuk komputer dengan OS Windows dapat dengan meng-klik 2 kali workbench.bat atau kalau menggunakan OS Linux dengan menjalankan workbench.sh.

Setelah selesai maka akan muncul tampilan seperti dibawah ini:


B. Membuat Mondrian OLAP Cube Schema dengan Schema Workbench
Selanjutnya kita akan membuat Schema dari Datawarehouse yang sudah kita buat untuk tutorial-tutorial sebelumnya. 

1. Langkah pertama yang harus kita lakukan adalah men-setting connection. Pilih Options -> Connections:


2. Selanjutnya akan muncul tampilan seperti dibawah ini: Pilih database yang dipakai dan sesuaikan settingan yang dipakai. Lalu klik OK.


3. Setelah itu, kita buat Schema baru. Caranya klik File -> New -> Schema.



4. Berikut adalah contoh Schema yang sudah dibuat. Untuk membuat Cube, Dimension, Measure, dan yang lainnya. Kita tinggal klik kanan di masing-masing list.



Schema diatas dibuat berdasarkan datawarehouse yang sudah dibuat sebelumnya (berikut screenshot-nya):


Adapun penjelasan dari Schema yang sudah dibuat adalah:
Cube 
Cube adalah bagian utama dari OLAP. Cube berisi kumpulan banyak data yang telah disatukan (diagregasi) sehingga mempercepat hasil query. Misal, data penjualan yang telah disatukan dengan data periode waktu dan jenis barang, akan mempercepat hasil query untuk menampilkan data penjualan per-minggu, atau per-bulan dan berdasarkan jenis barang tertentu. Di dalam Cube terdapat Dimension dan Measures.
Dimension
Dimension adalah bagian dari Cube yang menggambarkan suatu kategori data, yang digunakan sebagai dasar untuk merangkum data. Misalnya: dimensi waktu atau area. Biasanya pula, dimension memiliki hirarki atau jenjang atau tingkatan. Misal dimensi waktu memiliki tingkatan berupa: tahun, bulan, minggu, hari, dan sebagainya. Dimensi area, seperti propinsi, kabupaten, kecamatan dan desa. Tabel yang digunakan sebagai dimension disebut Dimension Table.
Measure
Measure adalah bagian dari Cube yang berisi kumpulan data yang akan dirangkum, seperti data jumlah penduduk laki-laki, jumlah penduduk perempuan, kepadatan penduduk, dan lain-lain. Pada umumnya, data yang tergolong dalam measure ini tidak memiliki hirarki atau jenjang, dan dapat dilakukan proses matematis (penjumlahan, pengurangan, dan lain-lain). Tabel yang berisi data-data dalam kelompok Measure ini disebut dengan Fact Table.

5. Supaya lebih jelas, akan saya perlihatkan satu-per-satu settingan di dalam masing-masing list Schema:

Gambar 1 Schema: pada list ini kita cuma membuat nama dari Schema

Gambar 2 Cube: Pada list ini kita cuma memberi nama Cube

Gambar 3 Pada list ini kita masukkan fact table untuk membuat Measures dibawah

Gambar 4 Pada list ini kita membuat sebuah dimensi. Isi dengan nama dimensi, foreign key (merujuk ke fact table), dan type StandardDimension

Gambar 5 Berikut adalah Hierarchy. Isi dengan nama, dan primaryKey

Gambar 6 Sebenarnya untuk membuat level, kita harus menambahkan table Dimensi terlebih dahulu. Jangan sampai lupa untuk mencentang uniqueMembers! Untuk Type menyesuaikan.

Atribut uniqueMembers digunakan untuk mengoptimalkan generasi SQL. Apabila kamu tahu nilai di kolom level di Table Dimensi adalah unik maka set uniqueMembers="true", jika tidak set uniqueMembers="false". Sebagai contoh, dimensi waktu seperti [Tahun].[Bulan] akan memiliki uniqueMembers=”false” dalam level Bulan, karena akan ada bulan yang sama di tahun yang berbeda. Selain itu, apabila kamu punya hirarki [Kelas Produk].[Nama Produk], dan kamu yakin kalau [Nama Produk] itu unik, maka set uniqueMembers=”true”. Apabila tidak yakin, maka selalu set uniqueMembers="false"

Gambar 7 Untuk Measure, pilih aggregator sesuai dengan yang dibutuhkan. Seperti sum, count, and etc

6. Setelah Schema selesai dibuat, jangan lupa untuk Publish ke Pentaho BI Server. Sehingga, schema yang sudah kita buat bisa digunakan. Caranya klik File -> Publish



7. Nanti akan muncul pop-up seperti dibawah ini. Sesuaikan dengan konfigurasi Pentaho BI-Server dikomputer:



Sesuaikan Pentaho or JNDI Data Source dengan yang sudah kita buat di Pentaho BI-Server. Cara mengeceknya, jalankan Pentho BI-Server. Selanjutnya ke File -> Manage Data Sources.


Setelah selesai, tinggal klik Publish.



Saturday, January 7, 2017

Cara membuat dial chart (Speedometer) dinamis | Tutorial Pentaho BI Server

Setelah sebelumnya kita membuat Tutorial bagaimana cara membuat Dial Chart (Speedometer) Statik, selanjutnya kita membuat Tutorial bagaimana cara membuat Dial Chart (Speedometer) Dinamis. Berikut langkah-per-langkah-nya:

1. Masih menggunakan Layout dan Component yang sama seperti sebelumnya. Tapi karena kita membuat yang dinamis, maka parameter yang sudah dibuat tadi dihapus saja.

2. Selanjutnya adalah membuat query di tab Datasources panel. Kalau sebelumnya kita membuat dengan menggunakan MDX query, sekarang kita coba menggunakan SQL query (Urutkan berdasarkan yang dikotak merah).


3. Setelah itu, ke tab Components panel. Di Dropdown pilih Others setelah itu cari Query Components dan masukkan Properties seperti dibawah:


Kembali ke CGG Dial Component, update parameter-nya. Sesuaikan dengan nama di Result Var diatas (Highlight biru):


Hasilnya akan seperti dibawah:



Problem:
Dial chart tidak menunjukkan hasil yang sesuai dengan query yang sudah kita dibuat.

Solusi:
Ke tab Components Panel, dan lihat Query Components yang sudah kita buat tadi. Di halaman Properties, klik Advanced Properties dan isinya seperti dibawah:


Untuk settingan default Pentaho, Priority bernilai 5. Ganti Priority menjadi 1 seperti dibawah:



Setelah itu, klik icon ‘Preview Your Dashboard’ dan akan muncul seperti ini:


CATATAN: 
Untuk JNDI (SQL query), kita harus setting dahulu di File -> Manage Datasource


Contoh JNDI yang dipakai tadi adalah kemenpar-iku:


Untuk melihat konfigurasinya, klik tombol Setting -> Edit atau bisa juga membuat koneksi baru dengan Setting -> New Connection.


Berikut konfigurasinya (Sesuaikan dengan konfigurasi database yang dipakai):



Selesai. Semoga bermanfaat :)


Cara membuat dial chart (Speedometer) statik | Tutorial Pentaho BI Server

Setelah sebelumnya kita belajar bagaimana cara melempar parameter dari satu chart ke chart lain. Sekarang, kita belajar bagaimana cara Membuat Dial Chart dalam bentuk Speedometer Statik.

 1. Untuk membuat Dial Chart (Chart yang berbentuk seperti Speedometer), langkah pertama yang kita butuhkan adalah membuat sebuah layout. Tapi karena kita sudah menggunakan layout default yang mempunyai 4 tempat untuk meletakkan chart, kita tidak perlu lagi membuat layout. Jadi langsung ke Tab Components Panel.

2. Di Tab Components Panel, yang perlu kita persiapkan adalah sebuah Dial Chart dan Parameter. Langkah pertama adalah membuat parameter, seperti dibawah (Isi Property value sesuai yang diinginkan):


Selanjutnya pilih Charts -> CGG Dial Components dan isi Properties-nya:


Keterangan:
Name         : Isi dengan nama chartnya
Range Colors Array : Untuk membuat rentang warna
Intervals Array : Untuk menentukan rentang warna dengan interval berapa-ke-berapa
Parameter         : Isi dengan nama parameter yang sudah dibuat
HtmlObject         : Isi dengan nama layout

Hasilnya akan seperti dibawah ini:



Dial Chart-nya bernilai 0 karena di Property Value pada tab Components Panel kita beri nilai = 0. Apabila kita ganti jadi 40, maka akan seperti ini:


Selesai. Semoga bermanfaat :)


Friday, January 6, 2017

Cara lempar parameter dari satu chart ke chart yang lain dengan Pentaho BI Server | Tutorial Pentaho BI Server

Setelah sebelumnya kita Membuat Chart Sederhana dengan CDE Dashboard di Pentaho BI Server. Selanjutnya kita lanjutkan dengan tutorial untuk melempar parameter dari satu chart ke chart yang lain.

Pada saat membuat Dashboard, terkadang kita ingin mengambil suatu nilai dari Satu chart dan dilempar ke Chart yang selanjutnya. Misal: Dari Chart yang menampilkan tahun, nanti kalau user klik tahun berapa akan otomatis mengambil Tahun yang diklik dan parameternya dilempar ke Chart selanjutnya. Sehingga chart selanjutnya menampilkan berdasarkan tahun yang sudah dipilih di Chart Tahun itu.

Caranya:
1. Karena kita sudah menggunakan layout bawaan, jadi kita tidak perlu membuat column baru lagi. Jadi langsung ke tab Components Panel.

2. Untuk melempar Parameter, kita perlu menggunakan ‘Simple Parameter’ di Pentaho. Caranya klik Generic, pilih Simple Parameter.


Untuk Properties:
Name : Isi dengan Nama Parameter
Value : Isi dengan Value standar. Fungsinya: Sebagai nilai default sebelum klik.

3. Di Component Panels pilih Chart -> Bar Chart (Sesuaikan dengan keperluan). Isi Properties seperti dibawah ini:


Name : Isi dengan Nama Chart
Title : Isi dengan Judul Chart
Listeners   : Isi dengan Parameter yang sudah dibuat
Parameters : Isi dengan Parameter yang sudah dibuat


Keterangan: 
Arg : Nama Argumen
Value : Isi dengan Parameter yang sudah dibuat supaya dinamis (Value berubah sesuai dengan yang user klik).

Isi Properties-nya seperti dibawah ini:


Karena kita mau mengambil Parameter dari testChart, maka kita harus mengubah Properties di testChart yang sudah kita buat sebelumnya. Seperti menjadikan clickable: True dan menambah script pada clickAction sehingga sewaktu user mengklik chart, dia akan mengambil parameter disana.


Tambahkan Script ini pada clickAction:
function(scene) {
Dashboards.log("Clicked on: " + scene.getSeries() + ", " + scene.getCategory());
// Manually changing territory to fire both changes at once
  Dashboards.setParameter('paramTahun', scene.getCategory());
  Dashboards.fireChange('paramTahun', scene.getCategory());
}
4. Selanjutnya tambahkan Datasource di Tab Datasource Panel dan tambahkan Properties seperti dibawah ini: 


Untuk contoh query-nya seperti dibawah ini (Yang pakai warna Merah itu datanya merupakan parameter untuk mengambil nilai pada testChart).
WITH
SET [~ROWS_dim-waktu_dim-waktu.tahun] AS
    {[dim-waktu.tahun].[tahun].[${paramTahun}]}
SET [~ROWS_dim-satker_dim-satker.nama-satker] AS
    {[dim-satker.nama-satker].[nama-satker].Members}
SELECT
NON EMPTY {[Measures].[pagu], [Measures].[realisasi]} ON COLUMNS,
NON EMPTY NonEmptyCrossJoin([~ROWS_dim-waktu_dim-waktu.tahun], [~ROWS_dim-satker_dim-satker.nama-satker]) ON ROWS
FROM [Kemenpar-Scheme]
Hasilnya seperti dibawah ini:



Karena data dikotak merah tidak bisa dibaca, caranya dengan mengganti settingan di Components dengan mengubah SeriesInRow menjadi TRUE


Hasil akhirnya akan seperti dibawah ini:






Membuat Chart Sederhana dengan CDE Dashboard di Pentaho BI Server | Tutorial Pentaho BI Server

Apa itu Pentaho BI Server?

Pentaho BI Server adalah Server BI yang berjalan di web application portal yang terdiri dari layanan web service, workflow pada space JVM (Java Virtual Machine), dan sebagai user interface untuk laporan operasional maupun analisis dari sebuah data. Jadi intinya, dari Pentaho BI Server ini kita bisa menampilkan atau membuat sebuah dashboard dari data yang kita punya dengan mengintegrasikan dari beberapa produk Pentaho (Seperti Schema Workbench untuk membuat skemanya dan Spoon untuk integrasi data, dll).

Supaya lebih cepat paham apa itu Pentaho BI Server, ikuti saja langkah-per-langkah dari tutorialnya:

1. Start Pentaho BI Server
Pada saat proses start, Pentaho akan men-start 2 server: HSQLDB server (database server bawaan Pentaho untuk mengolah data, didalamnya terdapat sample database yang akan kita gunakan sebagai bahan eksplorasi pentaho), dan Apache Tomcat (sebagai application server). HSQLDB menggunakan port 9001 dan Apache tomcat mengunakan port default 8080, sehingga anda harus memastikan tidak ada program lain yang menggunakan port-port ini dan Free space disk yang dipakai > 20 GB.

Untuk start Pentaho, tinggal klik ganda file start-pentaho.bat yang ada di dalam pada folder biserver-ce (kebetulan saya menggunakan Pentaho community edition). Untuk download ada disini http://community.pentaho.com/.

Tapi sebelumnya kalau kita belum setting environment, kita tinggal klik ganda pada file set-pentaho-env.bat nanti otomatis men-set environment yang dibutuhkan.

Apabila semua sudah selesai, maka tinggal akses di web browser yang dipakai kehalaman http://localhost:8080/



2. Setelah selesai login, maka akan muncul halaman seperti dibawah. Untuk membuat dashboard, klik File -> New -> CDE Dashboard atau Create New -> CDE Dashboard.


3. Kemudian akan muncul halaman seperti dibawah ini: 


Ada 3 Tab penting dihalaman ini:
Layout Panel: Untuk membuat layout tampilan dashboard, seperti column, row, dan lain sebagainya.
Components Panel: Untuk membuat komponen apa yang akan kita tampilkan di Layout nantinya, seperti jenis chart, table, radio button, check parameter, simple parameter, dan lain sebagainya. 
Datasources Panel: Untuk membuat query yang nantinya akan ditampilkan untuk komponen yang sudah dibuat sebelumnya. Seperti MDX Query, atau SQL Query.


4. Langkah pertama adalah membuat layout. Untuk membuat layout kita bisa pilih menggunakan template yang sudah dibuat atau membuat template sendiri.


Untuk menggunakan template yang sudah dibuat, kita tinggal klik ‘Apply Template’. Nanti kita tinggal pilih template yang mau kita gunakan. Gambarnya seperti dibawah ini:



Setelah selesai memilih template, klik OK. Nanti akan muncul notifikasi seperti dibawah, klik OK.


Berikut adalah tampilan dari template yang sudah dibuat, untuk mengubah judul dan yang lainnya tinggal kita edit disini. 


Untuk melihat halaman template yang sudah kita buat, kita tinggal klik icon ‘Preview Your Dashboard’. Tapi sebelumnya template yang sudah kita buat harus disimpan dulu. Caranya: klik Save As, lalu beri nama projek dan simpan. 

Yang perlu kita ingat adalah nama dari column yang dipakai. Nantinya nama itu akan dipakai untuk membuat Component Panel-nya. Jadi intinya di Component Panel nanti ada field yang mendefinisikan kalau Component yang akan dibuat itu nanti diletakkan di Layout yang mana.


Berikut tampilan template yang sudah dibuat:


5. Setelah selesai membuat Layout. Tugas kita selanjutnya adalah membuat Component Panel, yang fungsinya untuk mendefinisikan apa yang akan kita tampilkan di Layout nantinya. Seperti, Chart jenis apa, table, atau hanya membuat sebuat parameter. 

Contohnya kita mau membuat sebuah Bar Chart, maka kita pilih ‘CCC Bar Chart’.


Nanti akan muncul halaman seperti dibawah ini:


Keterangan:
Name         : Nama Component (Perhatian! Untuk nama component tidak boleh ada spasi)
Title : Judul chart yang akan kita buat (Nanti akan muncul dihalaman chart)
Datasource : Isi dengan nama datasource yang akan kita buat nanti
HtmlObject : Tempat untuk mendefinisikan component yang akan kita buat diletakkan di layout yang mana. (Contoh yang sekarang berarti diletakkan di Layout dengan nama Panel_1)

6. Setelah selesai membuat Component. Langkah selanjutnya adalah membuat Datasource. Datasource ini berisi query (terserah mau menggunakan MDX query, SQL, atau yang lainnya).

Contohnya kita akan menggunakan MDX Query untuk menampilkan data.


Pilih MDX Queries, lalu isi Properties:
Name : Nama Datasource (Ingat! Jangan sampai ada spasi)
Jndi : Isi dengan nama JNDI yang dipakai
Mondrian Schema: Isi dengan nama Schema yang sudah kita buat di Schema Workbench
Query : Isi dengan query MDX yang sudah kita buat.

Jangan sampai lupa untuk mengisi nama Datasource di Tab Components yang sebelumnya kita buat:


Setelah semua selesai, tinggal klik ‘Preview Your Dashboard’ dan akan muncul seperti ini:


7. SELESAI. Semoga bermanfaat :)