Tutorial
Tutorial
Daftar Isi
Halaman: 1
Data Warehouse with Kettle
Halaman: 2
Data Warehouse with Kettle
Halaman: 3
Data Warehouse with Kettle
Bagian I. Pendahuluan
Dunia korporasi saat ini menghadapi permasalahan yang hampir sama, yaitu membengkaknya data akibat
keberhasilan implementasi berbagai sistem komputer. Otomatisasi berjalan dengan baik, namun berbagai
laporan yang ingin dihasilkan sebagai output dari sistem tersebut sebagian besar tidak tercapai.
Permasalahannya adalah 85 persen waktu yang diperlukan adalah mempersiapkan data (data
preparation). Database yang dirancang untuk sistem entri ternyata sangat buruk digunakan menghasilkan
berbagai laporan analisa. Berbagai solusi telah ditawarkan oleh para praktisi IT, dan pendekatan dengan
membangun suatu data warehouse adalah yang terbaik.
Untuk membangun data warehouse yang baik diperlukan tool yang mampu mengambil, mengolah dan
menyimpan data pada berbagai format dengan baik. Tool ini biasa disebut dengan ETL, singkatan dari
Extract, Transform and Load.
Salah satu produk ETL adalah Kettle atau Pentaho Data Integration, suatu produk yang bersifat free open
source ETL dan dapat berjalan di lingkungan multi-platform. Kettle memiliki lebih dari 140 built-in modules
yang dapat digunakan hampir semua format data terpopuler dan biasa digunakan di dunia enterprise saat
ini.
Dengan kemampuannya yang sangat baik dan didukung oleh komunitas open source, Kettle menjadi
aplikasi favorit diantara para pengembang data warehouse.
Kursus berdurasi lima hari ini membahas pembangunan data warehouse dengan Kettle. Selama lima hari
Anda akan mempelajari konsep dasar tentang data warehouse, Multidimensional Modelling, and
penggunaan dari Kettle itu sendiri.
Halaman: 4
Data Warehouse with Kettle
Pentaho mendapatkan keuntungan dari penjualan produk Pentaho Enterprise Edition atau produk
versi non community. Versi ini berbeda dari sisi support, jumlah produk, dan harga lisensi.
Pentaho community dikembangkan bersama oleh Pentaho Corporation dan komunitas yang berasal
dari seluruh dunia.
Selain sifatnya gratis dan adopsi yang semakin hari semakin luas, dukungan Pentaho bisa
didapatkan dalam bentuk Service Level Agreement (SLA) dan dipaketkan dalam versi Enterprise
Edition yang sifatnya annual subscription atau perlu kontrak tahunan. Selain itu jika Anda tetap
menggunakan community edition yang gratis, maka bisa mendapatkan support dari banyak system
integrator Pentaho di seluruh dunia.
Halaman: 5
Data Warehouse with Kettle Pentaho - Open Source BI Suite
Halaman: 6
Data Warehouse with Kettle Pentaho - Open Source BI Suite
Halaman: 7
Data Warehouse with Kettle Pentaho - Open Source BI Suite
Halaman: 8
Data Warehouse with Kettle Terminologi Dasar
Beban kerja sistem informasi OLTP difokuskan pada memasukkan data baru, melakukan
perubahan dan penghapusan data secara real time.
Sistem OLTP sangat mission critical artinya tidak boleh ada gangguan dalam sistem ini atau
operasional tidak bisa berjalan dengan baik.
Beberapa contoh sistem informasi yang bisa dikategorikan sebagai OLTP adalah:
• ERP (Enterprise Resource Planning)
Beberapa contoh produk ERP: SAP, Compiere/Adempiere, Microsoft Dynamics, dan lain-lain.
• HRM (Human Resource Management)
Beberapa contoh produk HRM: OrangeHRM, PeopleSoft, SimpleHRM, dan lain-lain.
• CRM (Customer Relationship Management)
Beberapa contoh produk CRM: Microsoft CRM, SugarCRM, Siebel CRM, dan lain-lain.
Database OLAP sangat berbeda dengan OLTP dari sisi beban kerja dimana OLAP dirancang dan
difokuskan pada kecepatan pembacaan data sedangkan OLTP pada kecepatan perekaman dan
perubahan data.
Umumnya database OLAP dihasilkan melalui suatu proses batch dan biasanya dilakukan dalam
periode tertentu (tiap tengah malam, tiap minggu, dsbnya).
Database OLAP biasanya juga telah merupakan database yang sudah diperkaya dari berbagai
sumber data OLTP, dan biasanya merupakan suatu data warehouse.
Misalkan jika kita memiliki sistem pembelian / purchasing, sumber daya manusia (human
resources), penjualan (sales), inventori, dan lain-lain. Maka data warehouse adalah hasil
konsolidasi atau penggabungan data-data dari berbagai sistem OLTP tersebut dalam satu kesatuan
sehingga kaitan antara satu dengan yang lainnya menjadi jelas dan kuat.
Halaman: 9
Data Warehouse with Kettle Terminologi Dasar
Dengan adanya konsolidasi tersebut, diharapkan banyak informasi berharga yang bisa didapatkan
sehingga menciptakan nilai strategik yang tinggi dalam kaitan pengambilan keputusan.
Struktur data warehouse tentunya perlu dioptimalkan untuk berbagai kepentingan sistem pelaporan
terutama yang bersifat analisa menyeluruh. Dan dengan kaitan perkembangan OLAP yang semakin
penting, data warehouse saat ini lebih banyak mengadopsi pemodelan yang cocok untuk
dikonsumsi sistem OLAP dengan baik.
Sebagai contoh, pada sistem penjualan kita hanya mengetahui siapa saja tenaga penjual (sales
person) dengan kinerja yang baik. Tetapi kita tidak dapat mengetahui latar belakang kenapa
beberapa sales performanya baik dan yang lainnya tidak. Dan dengan integrasi data dari sistem
SDM yang lebih lengkap profilnya, kita dapat memetakan kinerja dengan latar belakang pendidikan
atau lebih luasnya ke data demografis dan hasil uji saringan masuk.
Dari data warehouse ini sering dibutuhkan subset data / informasi yang hanya dibutuhkan oleh
divisi-divisi tertentu. Dan kadang jauh lebih baik apabila secara fisik database ini terpisah sendiri
untuk divisi tersebut. Subset dari data warehouse ini disebut dengan istilah Data Mart.
Ilustrasi atau analogi akan hubungan sumber data (produsen / pabrik data), data warehouse dan
data mart sangat mirip akan sistem distribusi seperti terlihat pada gambar di bawah ini.
Halaman: 10
Data Warehouse with Kettle Terminologi Dasar
Aplikasi ETL sangat membantu sekali dalam merancang dan membentuk suatu data warehouse.
Beberpa kemampuan yang harus dimiliki oleh suatu ETL adalah sebagai berikut:
• Dapat membaca dan mengirim data dari dan ke berbagai sumber seperti file teks, file Excel,
table-table database relasional, web services, dan lain sebagainya.
• Mampu melakukan manipulasi ( transformasi ) data dari yang sederhana sampai ke tahap
rumit. Beberapa pengolahan data yang harus bisa dilakukan seperti melakukan normalisasi
dan denormalisasi data, memecah kolom, melakukan perhitungan yang terkait tanggal dan jam,
dan lain-lain.
• Script dapat dirancang dan diimplementasikan dengan tingkat produktivitas yang tinggi.
• Menghasilkan informasi meta data pada setiap perjalanan transformasi.
• Memiliki audit log yang baik.
• Dapat ditingkatkan performanya dengan scale up dan scale out.
Walaupun membangun solusi ETL dengan programming biasa seperti coding dengan bahasa Java
atau .NET sangat dimungkinkan, namun tidak disarankan karena produktivitasnya yang cukup
rendah dan berakibat ke pemborosan waktu dan biaya.
Berbagai utilitas ETL telah tersedia di pasaran dan menunjukkan kinerja yang baik contohnya
adalah Informatica, Data Transformation Service (DTS), Microsoft SQL Server Integration Service
(SSIS), Pentaho Data Integration (Kettle), dan lain sebagainya.
Halaman: 11
Data Warehouse with Kettle
Setelah selesai, lakukan pengujian instalasi melalui command prompt dengan langkah-langkah
berikut :
• Pilh menu Start | Run, ketik cmd, klik tombol OK
• Ketik perintah java –version
• Jika instalasi berhasil dengan baik maka hasil outputnya akan tampak seperti pada gambar
berikut.
• Selesai.
Halaman: 12
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
Jalankan file setup xampp-win32-1.7.7-VC9-installer.exe yang terdapat ada pada folder MySQL
DVD trainin, dan kemudian tentukan konfigurasi instalasi yang sesuai dengan sistem operasi Anda.
Setelah instalasi, jalankan XAMPP Control Panel seperti tampak pada gambar di bawah dimana
Anda bisa melakukan administrasi seperti merubah konfigurasi, menyalakan dan mematikan server-
server yang terinstalasi bersama paket XAMPP.
Halaman: 13
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
3.3 7Zip
7Zip adalah aplikasi archiver free dan open source yang dapat melakukan kompresi ataupun
membuka berbagai file kompresi seperti zip, rar, tar.gz, dan lain-lain dengan performa yang cukup
baik.
Untuk melakukan instalasi, jalankan file setup 7z920.exe yang terdapat pada folder 7Zip pada
media DVD training Anda.
Setelah selesai instalasi Anda dapat membuka file kompresi ataupun melakukan kompresi dari
context menu pada aplikasi Windows Explorer.
Versi aplikasi ini ada yang gratis dan open source dan ada yang berbayar. Versi open source dari
SQLyog ini dapat digunakan secara bebas namun dengan beberapa fitur advanced yang dibatasi.
Anda dapat melakukan instalasi aplikasi ini dengan menjalankan file setup SQLyog-11.3.1-
1.x86Community.exe atau SQLyog-11.3.1-1.x64Community.exe yang terdapat pada folder
MySQL/SQLYog pada DVD materi training Anda.
Halaman: 14
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
Pilihlah konfigurasi instalasi yang sesuai dengan kebutuhan dengan dibantu oleh instruktur Anda.
Halaman: 15
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
• Selesai.
• Masukkan nama database yang kita inginkan pada input Database name dari dialog Create
Database.
Halaman: 16
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
• Selesai.
• Selesai.
Anda akan mendapatkan folder data-integration sebagai hasil ekstraksi. Ubahlah nama folder
tersebut menjadi kettle4-2.
Halaman: 17
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
• Pada dialog Execute Query(s) From A File pilih file phi_minimart_mysql_v0.2.sql dari folder
contoh-data yang terdapat pada DVD materi training.
• Klik tombol Execute, kemudian klik tombol Yes untuk pesan lanjutan yang muncul. Proses
import akan dimulai, tunggu sampai selesai.
Halaman: 18
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
• Klik pada salah satu table, diikuti pemilihan menu tab Table Data pada panel bawah ruang kerja
SQLYog untuk melihat isi data dari table tersebut.
• Selesai.
Halaman: 19
Data Warehouse with Kettle Instalasi Aplikasi dan Contoh Data
Halaman: 20
Data Warehouse with Kettle Pentaho Data Integration (Kettle)
Proyek ini awalnya merupakan inisiatif dari Matt Casters, seorang programmer dan konsultan
Business Intelligence (BI) dari Belgia yang telah menangani berbagai proyek BI untuk perusahaan
besar. Untuk informasi lebih lanjut, Anda dapat mengunjungi alamat blog http://www.ibridge.be.
Saat ini Kettle merupakan utilitas ETL yang sangat populer dan salah satu yang terbaik di pasaran.
Beberapa kelebihannya adalah sebagai berikut:
• Memiliki koleksi modul pengolahan data yang cukup banyak. Lebih dari 100 modul atau step.
• Memiliki modul yang memudahkan perancangan model data warehouse seperti Slowly
Changing Dimension dan Junk Dimensions.
• Performa dan kemampuan skalabilitas yang baik dan sudah terbukti.
• Dapat dikembangkan dengan berbagai plugin tambahan.
• Pan
Merupakan utilitas yang digunakan untuk mengeksekusi transformation
Umumnya dijalankan pada saat otomatisasi terjadwal (scheduled automation)
Dipaketkan dengan nama file pan.bat (batch script) dan pan.sh (BASH shell script)
• Kitchen
Merupakan utilitas yang digunakan untuk mengeksekusi job
Umumnya dijalankan pada saat otomatisasi terjadwal (scheduled automation)
Dipaketkan dengan nama file pan.bat (batch script) dan pan.sh (BASH shell script)
• Carte
Merupakan utilitas cluster web server yang digunakan untuk mengeksekusi job /
transformation
Terutama digunakan untuk meningkatkan performa ETL dengan pembagian load kerja pada
berbagai node Carte (master dan slave)
Halaman: 21
Data Warehouse with Kettle Pentaho Data Integration (Kettle)
Kettle 3 & 4
Components Architecture
execute
Transformation
Sub Transformation
Carte (Slave)
db.cache
shared.xml
Halaman: 22
Data Warehouse with Kettle Pentaho Data Integration (Kettle)
Halaman: 23
Data Warehouse with Kettle Pentaho Data Integration (Kettle)
lib Berisi file library Java (.jar) minimal yang diperlukan untuk
menjalankan utilitas Kettle. Folder ini tidak berisi driver database.
libext Berisi file library tambahan yang diperlukan untuk eksekusi job /
transformasi Kettle
simple-jndi Berisi file configurasi JNDI (Java Naming & Directory Interface)
Halaman: 24
Data Warehouse with Kettle
Bab 5. Spoon
Spoon adalah utilitas grafik untuk merancang, mengeksekusi dan melakukan troubleshooting dari proses
ETL melalui job dan transformation.
Halaman: 25
Data Warehouse with Kettle Spoon
Halaman: 26
Data Warehouse with Kettle
6.2 Step
• Step adalah komponen / modul Kettle yang mengerjakan tugas tertentu pada suatu job /
transformation.
• Kettle terdiri dari 100 lebih step bawaan yang tersebar pada 2 kategori:
Job Steps : step yang berjalan secara sekuensial dan lebih berfokus kepada control flow
secara keseluruhan dari tugas ETL
Transformation Steps : step yang berjalan secara parallel dan lebih menitikberatkan I/O
data
• Referensi penggunaan berbagai step dapat ditemukan di dokumen PDI / Kettle user guide.
• Step pada Kettle dapat ditambahkan sebagai plugin.
6.3 Hop
• Suatu Hop menggabungkan 2 step baik sebagai penentu aliran / flow dari job atau penghantar
data di transformation
• Pada transformation, hop memiliki berbagai warna yang memiliki arti tersendiri.
• Tabel pada halaman berikut ini berisi daftar lengkap dari bentuk hop pada Spoon – Kettle 4.2.
Halaman: 27
Data Warehouse with Kettle Konsep dan Komponen Kettle
Warna biru, hop yang masih dalam keadaan edit (belum final)
• Sedangkan pada job, hop memiliki berbagai warna yang memiliki arti tersendiri. Tabel berikut
adalah daftar lengkap dari arti warna tersebut pada Spoon – Kettle 4.2.
Halaman: 28
Data Warehouse with Kettle Konsep dan Komponen Kettle
6.4 Job
• Job adalah komponen dari Kettle yang menangani kontrol atas aliran tugas (flow control). Job
tidak memproses aliran data secara langsung. Job bisa terdiri satu atau beberapa
transformation dan job lain.
• Cara membuat job:
Pilih menu File | New | Job – atau tekan tombol CTRL+ALT+N.
Melalui panel kiri View, klik kanan pada entri Jobs, pilih menu New.
Halaman: 29
Data Warehouse with Kettle Konsep dan Komponen Kettle
Pilih Job.
• Arahkan kursor mouse pada tab job_msgbox untuk memunculkan informasi nama dan lokasi
file dari job kita.
• Pada pilihan Design di panel kiri, buka folder General dan klik step Start dan diseret (drag) ke
ruang kerja.
• Dengan cara yang sama, masukkan step Display Msgbox Info dari folder Utility.
Halaman: 30
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Hubungkan kedua step yang telah ada di ruang kerja dengan salah satu dari dua cara berikut:
CTRL + Click pada step awal / sumber yaitu Start kemudian CTRL+Click pada step tujuan
yaitu Display Msgbox Info 1, klik kanan dan pilih New Hop.
Dengan mouse, klik roda tengah mouse kita (roller mouse) pada step Start. Sambil ditahan
arahkan kursor ke step tujuan yaitu Display Msgbox Info 1.
• Kedua Step akan terhubung dengan hop berwarna hitam. Warna hitam menunjukkan kondisi
tidak bersyarat (unconditional).
Klik dua kali pada step Diplay Msgbox Info 1, dan masukkan konfigurasi seperti pada gambar
berikut ini.
• Klik tombol OK, perhatikan bahwa nama step tersebut telah berubah dari Display Msgbox Info
1 menjadi MsgBox – Unconditional.
• Job kita sudah siap dijalankan. Simpan file kita, dan klik tombol Run this job pada bagian menu
toolbar.
Halaman: 31
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Hasil eksekusi dari job ini adalah munculnya sebuah kotak pesan seperti terlihat pada gambar
berikut.
• Klik dan tahan step Javascript serta arahkan step tersebut ke hop penghubung antara step
Start dan MsgBox – Unconditional sampai hop tersebut kelihatan lebih tebal. Lepaskan klik
dari step tersebut.
Halaman: 32
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Perhatikan bahwa step Javascript tersebut akan menjadi step intermediate baru. Hop yang
menuju step MsgBox –Unconditional berwarna hijau, yang memiliki arti bahwa step tersebut
akan tereksekusi jika step Javacript sukses dijalankan.
• Klik 2 kali pada step Javascript untuk membuka editor Evaluating JavaScript. Masukkan
ekspresi perbandingan nilai seperti pada gambar di bawah. Klik tombol OK setelah selesai.
• Rubah nama dan isi dari step MsgBox – Unconditional sebagai berikut.
Halaman: 33
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Tambahkan step Display Msgbox Info baru pada ruang kerja kita dengan konfigurasi berikut:
Msgbox Info: Msgbox – False
Message Title: Hasil Evaluasi Salah
Message Body: Message Box Alert : False !
• Tarik hop baru dari step Evaluasi ke MsgBox – False. Perhatikan bahwa hop yang baru
terbentuk tersebut akan diberi warna merah secara otomatis.
• Jalankan job kita dan hasil yang kita harapkan adalah munculnya dialog sebagai berikut. Hasil
ini artinya evaluasi ekspresi matematika dari step Javascript memang salah. Klik tombol OK
untuk menyelesaikan eksekusi job.
• Pada panel Execution Results yang terdapat di bawah ruang kerja kita, coba analisa
perjalanan dari eksekusi job kita.
• Sekarang, cobalah ganti isi ekspresi pada step Evaluasi kita menjadi 1 < 2.
• Simpan job tersebut dan coba eksekusi kembali. Apa kesimpulan yang bisa Anda ambil?
Halaman: 34
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Ambil pilihan Follow when result is true, simpan dan kembali jalankan job tersebut. Apa hasil
yang Anda dapatkan?
• Klik dua kali pada step Check if FTP folder exist. Pada kotak File/folder name, masukkan
Halaman: 35
Data Warehouse with Kettle Konsep dan Komponen Kettle
nama folder c:\kettletraining\FTP (1). Klik tombol Add (2), nama folder tersebut akan
ditambahkan pada daftar (3). Klik tombol OK untuk menutup dialog.
6.9 Transformation
• Transformation adalah komponen dari Kettle yang melakukan proses aliran data sebenarnya.
Semua proses pengambilan (extract), perubahan (transform) dan penyimpanan (load) data
dilakukan disini.
• Cara membuat transformation
Pilih menu File | New | Transformation atau tekan CTRL+ALT+N.
Dari Panel Kiri - View, klik kanan entri Transformations | klik New
• Simbol transformation dalam Spoon adalah
Halaman: 36
Data Warehouse with Kettle Konsep dan Komponen Kettle
6.10 Row
• Row atau baris data adalah aliran data antar sumber input ke step-step lainnya pada
transformation.
• Row terdiri dari 2 bagian :
Meta Data dari row, yaitu berisi deskripsi dan tipe, panjang, format data.
Isi Data dari row itu sendiri.
• Tipe data untuk row yang didukung oleh Kettle adalah sbb :
Integer : Bilangan Bulat
Number : Bilangan Pecahan
String : Rangkaian Karakter
Date : Tanggal
Boolean : Nilai benar / salah
BigNumber : Bilangan Pecahan besar
Binary : Data biner
6.11 Variable
• Variable adalah penyimpan data di memori dengan penggunaan nama tertentu.
• Beberapa kategori variable di Kettle adalah:
Environment Variables: Berlaku secara global
Kettle Variables: Berlaku dinamis, variable ini dibuat menggunakan step Set Variable
Internal Variables: Variable-variable yang sudah didefinisikan sebelumnya dan punya nilai tertentu
• Dapat diakses menggunakan dua notasi yaitu ${NamaVariable} atau %%NamaVariable%%.
• Pada beberapa dialog di Spoon, jika terdapat tanda gambar tanda tanya ( ) maka nilainya
bisa digantikan dengan variable.
6.12 Log
• Log pada Kettle terdapat pada berbagai level pad job, transformation dan step dapat diarahkan
ke berbagai output:
Layar Monitor
File system
Database relasional
• Rincian dari log juga dapat dikonfigurasi sesuai kebutuhan dan keinginan kita mulai dari tanpa
log sama sekali sampai dengan sangat detil (row details).
Halaman: 37
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Klik 2 kali pada step tersebut. Namakan step tersebut dengan Excel - Target Penjualan.
• Masukkan konfigurasi dengan petunjuk salah satu dari 2 gambar berikut di bawah ini.
Halaman: 38
Data Warehouse with Kettle Konsep dan Komponen Kettle
atau
Klik tombol Add sehingga pola nama file yang kita masukkan di atas tersebut masuk dalam
daftar entri Selected files.
Klik tombol Show filename(s)… untuk melihat apakah nama pola yang kita masukkan
dikenali. Apabila berhasil maka akan muncul dialog dengan daftar file Excel seperti berikut
ini.
Halaman: 39
Data Warehouse with Kettle Konsep dan Komponen Kettle
Pada dialog “Enter List”, masukkan sheet “Target Penjualan” dari list “Available Items” ke
“Your Selection”. Klik tombol “OK”.
Halaman: 40
Data Warehouse with Kettle Konsep dan Komponen Kettle
Pada tab !Fields klik tombol Get fields from header row….
Dalam beberapa saat semua fields dan meta datanya akan coba dikenali oleh Kettle.
Perhatikan meta data (tipe) dari semua field tersebut.
Klik tombol Preview rows untuk melihat data yang dibaca dari Excel.
Masukkan jumlah preview sebanyak 1000 baris data pada dialog Enter preview size dan
klik tombol OK.
Akan muncul jendel Examine preview data yang merupakan preview dari data Excel kita.
Klik tombol Close untuk menutup dialog tersebut.
• Selesai.
Halaman: 41
Data Warehouse with Kettle Konsep dan Komponen Kettle
Untuk memperbaiki hal ini, kita dapat merubahnya langsung melalui konfigurasi pada step Excel
Input tersebut, atau melalui penggunaan step Select Values.
Berikut adalah langkah-langkah untuk merubah meta data menggunakan cara terakhir yang
disebutkan :
• Masukkan step Select Values pada ruang kerja kita.
• Buat hop antara step Excel – Target Penjualan dan Select values.
• Klik 2 kali pada step Select Values.
• Ganti nama step tersebut ke Rubah Meta Data.
• Pada tab Select & Alter klik tombol Get fields to select.
Halaman: 42
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Akan muncul window yang berisi informasi output metadata dari step tersebut.
• Lakukan hal yang sama untuk step Rubah Meta Data. Terlihat bahwa field Tahun & Bulan
sudah berubah tipe datanya dari Numeric menjadi Integer.
Halaman: 43
Data Warehouse with Kettle Konsep dan Komponen Kettle
Halaman: 44
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Akan keluar dialog preview data. Klik tombol Close untuk menutup dialog ini.
• Lakukan hal yang sama untuk step Rubah Data dan perhatikan perbedaannya.
Halaman: 45
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Masukkan konfigurasi koneksi ke database MySQL sebagai berikut. Database sudah harus ada
sebelumnya.
• Klik tombol Test, apabila koneksi berhasil dilakukan akan muncul window seperti gambar
berikut.
Halaman: 46
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Klik kanan pada koneksi yang baru kita buat tadi, dan klik Share. Opsi ini memungkinkan
koneksi dapat digunakan oleh seluruh job / transformation kita tanpa harus dideklarasikan
ulang.
Halaman: 47
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Karena tabel target_penjualan belum ada di database kita maka kita perlu membuatnya
terlebih dahulu. Tapi jangan kuatir, pada step ini terdapat tombol “SQL” yang dapat digunakan
untuk menghasilkan perintah DDL SQL untuk membuat / merubah tabel output.
• Klik tombol SQL, akan terlihat perintah DDL CREATE TABLE target_penjualan….
• Klik tombol Execute untuk melakukan mengeksekusi perintah tersebut pada database kita. Klik
tombol OK pada dialog yang muncul kemudian.
• Pada tahap ini tabel target_penjualan akan dibentuk di database phi_oltp.
• Klik OK beberapa kali untuk menutup semua dialog dan kembali ke ruang kerja kita.
• Jalankan transformation kita dengan cara klik tombol Run this transformation or job.
Halaman: 48
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Transformasi data akan berlangsung, tunggu beberapa saat sampai selesai – ditandai dengan
status Finished pada tab Step Metrics yang berada pada bagian panel bawah ruang kerja.
Halaman: 49
Data Warehouse with Kettle Konsep dan Komponen Kettle
• Jalankan kembali transformasi sampai selesai. Bandingkan perbedaan log saat ini dengan hasil
eksekusi sebelumnya.
• Ubah meta data untuk kolom Total sehingga menjadi Integer tanpa angka pecahan dengan
step Select Values. Namakan step tersebut dengan Ubah Meta Data.
• Simpan data hasil transformasi ke dalam tabel target_penjualan pada database phi_minimart
di MySQL.
• Jalankan transformation tersebut dan coba analisa output yang muncul panel “Execution
Results”. Apa yang dapat Anda simpulkan ?
Halaman: 50
Data Warehouse with Kettle Konsep dan Komponen Kettle
Pada praktek berikutnya, kita akan coba hasilkan file Excel yang langsung dikirimkan melalui email.
• Lakukan konfigurasi email sesuai petunjuk instruktur dan jalankan transformation tersebut.
Apabila semua berjalan baik maka transformation ini akan mengirimkan data master produk
berupa file Excel dengan nama data_excel_yyyy-MM-dd.xls, dimana yyyy mewakili tahun,
MM mewakili bulan, dan dd mewakili hari.
Halaman: 51
Data Warehouse with Kettle
Untuk penyimpanan dengan filesystem dengan format XML, sebenarnya telah kita lakukan pada
semua latihan sebelumnya. Jika kita ingin menyimpan dalam bentuk file xml, maka pada saat
menjalankan Kettle kita memilih opsi No Repository.
Halaman: 52
Data Warehouse with Kettle Repositori Kettle
• Isi dialog Repository Information dengan entri berikut ini. Klik tombol Create or Upgrade.
• Klik Yes untuk pertanyaan Are you sure you want to create the repository on the specified
database connection ?.
• Tunggu beberapa saat sampai muncul dialog Kettle created the repository on the specified
connection.
• Jalankan kembali Spoon dan pilih repository MySQL Kettle Repo.
• Login dengan pasangan user / password berikut: admin / admin.
• Selesai.
Halaman: 53
Data Warehouse with Kettle Repositori Kettle
Halaman: 54
Data Warehouse with Kettle Repositori Kettle
Halaman: 55
Data Warehouse with Kettle
Di dalam OLAP ini kita perlu mengenal berbagai peristilahan dan konsep sebagai berikut:
• Cube: adalah struktur data dalam bentuk array multi dimensional, terdiri dari dimension dan
measure. Tiap cube biasanya mencakup domain atau aspek bisnis tertentu seperti penjualan.
• Dimension / Dimensi: adalah view / sudut pandang yang menyusun cube. Dimensi dapat
terdiri dari berbagai level. Pada gambar di bawah terdapat 3 dimensi yaitu dimensi waktu (April,
May, June, July), dimensi area (Boston, Benson, Seattle, Wichita) dan dimensi produk
(Sardines, Anchovies, Herring, Pilchards).
• Measure: Nilai pengukuran.
• Member: Isi / anggota dari suatu dimension / measure tertentu.
Halaman: 56
Data Warehouse with Kettle Terminologi dan Konsep Dasar
Dalam perkembangannya, susunan fact table dan dimension table ini memiliki standar perancangan
atau schema karena terbukti meningkatkan performa dan kemudahan dalam penerjemahan ke
sistem OLAP.
Schema inilah yang menjadi dasar untuk melakukan data warehousing. Dua schema yang paling
umum digunakan oleh berbagai OLAP engine adalah skema bintang (Star Schema) dan skema
butir salju (Snowflake Schema).
dim_karyawan dim_waktu
PK sk_karyawan PK sk_waktu
kode_cabang hari
nama_area_cabang kuartal
kode_karyawan bulan
nama_karyawan tahun
fact_penjualan
FK3 sk_produk
FK1 sk_karyawan
FK2 sk_waktu
FK4 sk_cabang
jumlah_unit
total_jual
dim_produk dim_cabang
PK sk_produk PK sk_cabang
kode_kategori kode_propinsi
nama_kategori nama_propinsi
kode_produk kode_cabang
nama_produk nama_cabang
Halaman: 57
Data Warehouse with Kettle Terminologi dan Konsep Dasar
dim_karyawan dim_waktu1
PK sk_karyawan PK sk_waktu
kode_cabang hari
nama_area_cabang kuartal
kode_karyawan bulan
nama_karyawan tahun
fact_penjualan
FK3 sk_produk
FK1 sk_karyawan
FK2 sk_waktu
FK4 sk_cabang
jumlah_unit
total_jual
dim_cabang
dim_produk
PK sk_cabang
PK sk_produk
FK1 kode_propinsi
FK1 kode_kategori kode_cabang
kode_produk nama_cabang
nama_produk
master_propinsi
master_kategori
PK kode_propinsi
PK kode_kategori
nama_propinsi
nama_kategori
Nilai dari key ini biasanya berupa nilai sekuensial atau random unik dan tidak memiliki arti jika dilihat
dari proses bisnis dari mana sumber data berasal. Ini kebalikan dari OLTP dimana kolom primary
key dari sumber data OLTP memiliki nilai yang mempengaruhi proses bisnis.
Namun demikian, surrogate key ini sangat penting untuk konsistensi analisis, terutama pada saat
terkait transaksi historis.
Halaman: 58
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Buat satu job c:\kettletraining\main.kjb yang terdiri dari beberapa file transformation dengan
tugas berikut:
Melakukan populasi data dimensi produk, cabang dan karyawan dengan strategi repopulasi
ulang.
surrogate key dari tiap dimensi bersifat sekuensial dengan menggunakan step Add
Sequence pada Kettle atau auto sequence key pada database.
Halaman: 59
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Namakan step tersebut dengan nama ms_produk dan pilih koneksi phi_oltp.
Halaman: 60
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Dialog Examine preview data akan muncul dengan jumlah 10 row data seperti terlihat pada
gambar berikut.
Halaman: 61
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Tips Spoon
Setiap hasil output dari preview data dapat dimasukkan ke dalam ruang kerja / worksheet
Excel dengan mekanisme copy paste.
Contoh copy paste dari hasil output preview contoh ms_produk terlihat seperti pada
gambar berikut.
Sebenarnya hal ini tidak terbatas pada data preview, Anda dapat melakukan hal yang
sama pada setiap dialog yang memiliki data grid atau table.
Dan jika dialog grid berupa input list, kita dapat melakukan hal sebaliknya yaitu
melakukan copy paste dari table Excel ke table entri pada dialog Spoon.
• Masukkan kembali satu step Table Input, kali ini dengan mengambil semua field dari table
ms_kategori. Namakan step tersebut sesuai input tablenya, yaitu ms_kategori.
Halaman: 62
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Masukkan step Stream Lookup dari kategori Lookup ke dalam ruang kerja kita.
• Buat dua hop untuk menghubungkan ketiga step yang sudah dimasukkan, yaitu dari step
ms_produk menuju Stream Lookup dan dari step ms_kategori menuju Stream Lookup.
• Klik dua kali pada step Stream Lookup dan masukkan konfigurasi berikut :
Step name : Lookup Nama Kategori
Lookup Step : ms_kategori
Halaman: 63
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Klik dua kali pada step Lookup Nama Kategori dan masukkan konfigurasi seperti pada
gambar berikut ini. Klik tombol OK untuk menutup dialog tersebut.
Halaman: 64
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Tips Spoon
Pada beberapa step Kettle seperti Stream Lookup terdapat tombol Get Fields, Get
Lookup Fields yang digunakan untuk mengisi entri nama field pada input grid sehingga
memudahkan kita memilih dengan menghapus yang tidak perlu.
Gambar berikut menunjukkan daftar nama field yang dihasilkan pada step Lookup Nama
Kategori apabila kita mengklik tombol Get Fields dan Get lookup fields.
• Kembali lakukan preview pada step ms_produk dan ms_kategori tanpa menutup dialog
preview di atas. Jika tombol preview tidak bisa digunakan, maka klik tombol stop pada
tooolbar. Apa hasil yang Anda dapatkan? Apa yang dapat Anda simpulkan?
Halaman: 65
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Simpan file transformation Anda dengan menggunakan tombol CTRL + S. Disarankan untuk
sesering mungkin menyimpan file job maupun transformation Anda pada saat masa
perancangan dan pengembangan.
• Tambahkan step Add Sequence pada ruang kerja kita. Step ini akan digunakan menghasilkan
angka sekuensial / nomor urut sesuai pertambahan row yang didapatkan dari step sebelumnya.
• Klik dua kali pada step Add sequence dan lakukan konfigurasi seperti pada gambar berikut.
Konfigurasi termasuk merubah nama step menjadi sk_produk.
Halaman: 66
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Langkah kita selanjutnya adalah mengurutkan field-field tersebut dengan sk_produk dalam
posisi paling atas.
• Tambahkan step Select Values dan hubungkan dengan step sk_produk seperti terlihat pada
gambar berikut.
• Klik dua kali pada step Select values, pada dialog yang muncul pastikan Anda ada pada tab
Select & Alter.
Halaman: 67
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Klik tombol Get Fields sehingga nama-nama field yang berasal dari step sk_produk akan
terpopulasi pada tab Select & Alter.
• Klik pada cell pertama pada baris ke delapan sehingga seluruh baris ter-highlight.
• Dengan menekan CTRL + Panah Atas berulang kali pada keyboard geser field sk_produk
sehingga menempati posisi paling atas.
• Susunlah semua field sehingga urutannya tampak seperti pada gambar berikut.
Halaman: 68
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Klik dua kali pada step Table Output dan masukkan konfigurasi seperti berikut.
• Klik tombol SQL pada bagian bawah dialog untuk melakukan sinkronisasi antara data yang
terdapat pada Kettle dengan table yang ada pada database phi_dw. Table dim_produk belum
ada pada database kita.
• Akan muncul perintah DDL Create Table pada dialog Simple SQL Editor yang siap digunakan
membuat table dim_produk. Klik tombol Execute untuk menjalankan perintah SQL tersebut.
Halaman: 69
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Kembali ke Spoon, simpan transformation Anda dan kemudian lakukan eksekusi dengan
mengklik tombol Run this transformation or job pada menu toolbar.
• Perhatikan pada panel Execution Results | Step Metrics untuk entri dim_produk terdapat
Halaman: 70
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
output bernilai 41. Ini artinya pada step tersebut telah berhasil terjadi penulisan data ke
database phi_dw sejumlah 41 baris data.
Perhatikan juga, selain output terdapat juga input yang menyatakan berapa banyak row yang
dibaca dari table database atau data external. Sedangkan read dan written yang menyatakan
jumlah row yang terjadi pada internal Kettle.
• Masih pada SQLYog, ketikkan perintah berikut pada tab “Query” untuk menghitung jumlah row
yang saat ini ada pada table dim_produk.
• Kembali ke Spoon, kembali kita coba jalankan transformation dim_produk.ktr dan tunggu
sampai proses tersebut selesai.
• Sekarang, hitung jumlah rows yang ada pada table dim_produk saat ini.
Halaman: 71
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Terlihat jumlah row saat ini adalah 82, yang merupakan hasil yang salah atau tidak kita
harapkan karena akan terjadi duplikasi record seperti terlihat di bawah ini.
• Untuk memperbaiki hal ini, kita harus menghapus isi table terlebih dahulu sebelum dilakukan
populasi. Kembali ke Spoon dan klik dua kali pada step dim_produk.
• Opsi Truncate table kita aktifkan.
• Selesai.
Halaman: 72
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Dan untuk membantu Anda, berikut adalah gambar screenshot salah satu rancangan flow
transformation untuk menghasilkan table dim_cabang.
Dan untuk membantu Anda, berikut adalah gambar screenshot salah satu rancangan flow
transformation untuk menghasilkan table dim_karyawan.
Halaman: 73
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Perhatikan pada transformation ini terdapat satu step baru, yaitu Gabung Nama Karyawan yang
merupakan tipe step Modified Java Script Value. Step ini digunakan untuk menggabungkan nama
depan dan belakang dari dari field-field table ms_karyawan.
Cara penggabungan dari dengan step ini terlihat pada gambar di bawah ini. Pada editor Javascript
terlihat kita mendefinisikan suatu variable nama_karyawan yang kemudian didefinisikan sebagai
output dari step ini.
Halaman: 74
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Cobalah buka file dengan nama General - Populate date dimension.ktr pada lokasi
[Kettle]/samples/transformations.
• Klik dua kali pada step 40000 days: 100+ years, pada kotak Limit ganti nilai 40000 menjadi
3000.
• Masih pada step yang sama masukkan nilai kolom Value menjadi 20040101.
• Klik dua kali pada step Select Values, pada kolom Fieldname cari baris yang memiliki nilai
date_tk. Setelah Anda temukan, masih pada baris yang sama masukkan sk_waktu pada kolom
Rename to.
• Perhatikan bahwa hop antara step Select Values dan Table Output dalam keadaan disabled
atau tidak aktif. Aktifkan hop tersebut dengan cara klik sekali, atau cara lainnya adalah dengan
klik kanan pada hop tersebut dan pilih Enable hop.
Halaman: 75
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Pada Table Output arahkan target table ke dim_waktu, aktifkan opsi truncate table. Bentuklah
table tersebut dengan klik tombol SQL dan eksekusi perintah Create Table… yang
direkomendasikan.
• Jalankan transformation ini dan lihatlah hasil output dim_waktu pada SQLYog.
• Mintalah penjelasan dari Instruktur akan logika transformasi ini serta semua step yang
digunakan disertai contoh.
• Objektif utama dari transformation ini adalah menghasilkan table dengan nama dim_waktu.
Halaman: 76
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Untuk membantu Anda, berikut adalah gambar screenshot salah satu rancangan flow
transformation untuk menghasilkan table fact_penjualan.
• Terlihat ada step baru, yaitu Hitung Total Harga. Step ini adalah step Calculator. Isi
konfigurasi dari calculator tersebut seperti tampak pada gambar berikut ini. Mintalah penjelasan
lebih lanjut dari instruktur mengenai penggunaan step ini.
• Selesai.
Halaman: 77
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Klik dua kali pada step Transformation dan pada bagian Transformation filename klik tombol
untuk mengambil file transformation, masukkan file dim_produk.ktr yang telah kita buat
sebelumnya dan namakan step ini dengan nama dim_produk.ktr.
• Jalankan job ini dan perhatikan log yang ada pada panel bawah.
Halaman: 78
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Pastikan job dengan semua tranformation tersebut telah selesai dan sukses dieksekusi,
periksalah semua table yang terdapat pada database phi_dw.
• Selesai.
Halaman: 79
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
Ini mengakibatkan ETL harus membebani dirinya dan menurunkan performa dengan tugas yang
sebenarnya bisa dijalankan dengan baik oleh produk RDBMS. Untuk menghindarkan hal tersebut
maka sering sekali kita membuat suatu database staging sebagai buffer untuk mengintegrasikan
data terlebih dahulu sebelum diproses lebih lanjut.
Dengan batasan seperti itu, akhirnya lama kelamaan proses di memori akan penuh terus dan malah
menjadi bottleneck di ETL kita. Oleh sebab itu apabila terjadi kondisi yang akan sangat membebani
memori kita menggunakan strategi data staging.
Halaman: 80
Data Warehouse with Kettle Multi Dimensional Modelling dengan Kettle
• Instruktur akan membimbing pelatihan untuk membaca dan menggabungkan 3 file tersebut
dengan stream lookup.
• Perhatikan performa dari ETL tersebut.
Halaman: 81
Data Warehouse with Kettle Advance Controls
Dapat didefinisikan di kettle.properties dan beberapa step script dan step yang berkaitan dengan
job.
Halaman: 82
Data Warehouse with Kettle Advance Controls
• Sekarang cobalah lakukan preview data lagi pada step Table Input, kali ini Anda akan
mendapatkan hasil seperti pada gambar berikut.
• Selesai.
Dengan adanya file ini maka kita akan sangat terbantu apabila kita ingin berpindah environment,
misalnya antara lingkungan pengembangan / development dengan production.
Shared Connections
<attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attrib
ibute></attribute>
<attribute><code>………. </code><attribute>true</attribute></attribut
……..
code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
…………..
</connection>
</sharedobjects>
Halaman: 83
Data Warehouse with Kettle Advance Controls
Dengan penanganan error ini, kita tidak membiarkan transformasi berhenti tiba-tiba secara tidak
terkontrol, sebaliknya kita akan dapat mengarahkan dan mencatat aliran data yang tidak terproses
dengan baik ini untuk perbaikan transformasi itu sendiri maupun data yang kita olah.
Beberapa kontrol yang dapat kita lakukan antara lain seperti mengulang eksekusi transformation,
mengirimkan notifikasi kepada admin database, dan lain sebagainya.
Tidak semua step transformation dari Kettle memiliki fitur error handling, beberapa step yang sudah
mendukung penanganan error atau error handling antara lain adalah Email Step, Modified
Javascript Value, Database Lookup, Table Exists, HTTP Post, dan lain-lain.
• Beberapa konfigurasi yang perlu dimasukkan pada dialog error handling ini adalah sebagai
berikut :
Error handling stepname : Nama step dimana penanganan error ini berada.
Target Step : Step yang dituju jika terjadi error.
Enable the error handling : Mengaktifkan / menonaktifkan penanganan error.
Nr of errors fieldname : Nama field yang akan berisi nomor error.
Error descriptions fieldname : Nama field yang akan berisi deskripsi error.
Error fields fieldname : Nama field yang akan berisi field yang mengakibatkan error.
Error codes fieldname : Nama field yang akan berisi kode error.
Max nr errors allowed : Jumlah error yang diperbolehkan terjadi.
Halaman: 84
Data Warehouse with Kettle Advance Controls
Halaman: 85
Data Warehouse with Kettle Slowly Changing Dimension
Dari perubahan yang terjadi tersebut kita dapat menentukan apa respon kita. Ada 3 macam tipe
penanganan SCD yaitu Tipe 1, 2, dan 3. Bagian berikut menerangkan apa perbedaan dari tiap tipe
SCD dan contoh gambar yang diambil dari situs Wikipedia.
atau
Halaman: 86
Data Warehouse with Kettle Slowly Changing Dimension
Step ini bisa mengerjakan SCD type 1 dan 3 tergantung konfigurasi yang kita berikan kepada step
tersebut. Untuk SCD type 3 juga hybrid, yaitu bisa menggunakan versioning dan masa berlaku
(start date dan end date) dari dimensi tersebut sekaligus.
Halaman: 87
Data Warehouse with Kettle Slowly Changing Dimension
• Pastikan data movement pada step Lookup Nama Kategori adalah Copy Data to next steps.
• Klik dua kali pada step dim_produk_scd dan isikan konfigurasi berikut:
Connection : phi_dw
Target table : dim_produk_scd
Technical key field : sk_produk
Version field : versi
Date range start field : tgl_awal
Table daterange end : tgl_akhir
• Klik tab Keys pada bagian daftar field tombol, klik tombol Get Fields. Hapus semua field
sehingga hanya field kode_produk yang tersisa.
• Klik tab Fields pada bagian dafar kolom, klik tombol Get Fields. Sesuaikan isinya dengan
Halaman: 88
Data Warehouse with Kettle Slowly Changing Dimension
gambar berikut ini. Untuk entri nama_produk_terakhir Anda harus memasukkannya secara
manual.
• Lakukan perubahan nilai field nama_produk tabel ms_produk dengan membuka dan
mengeksekusi file rubah_scd.sql – terdapat pada DVD training Anda – dengan SQLYog.
Halaman: 89
Data Warehouse with Kettle Slowly Changing Dimension
• Jalankan kembali transformasi dan lihat kembali hasilnya pada table dim_produk_scd.
Halaman: 90
Data Warehouse with Kettle Otomatisasi
Selain itu kita perlu memperhatikan strategi waktu yang diambil, yaitu sebaiknya pada saat database OLTP
tidak dalam keadaan sibuk. Sebagai contoh kita dapat mengambil waktu jam 12 malam malam sebagai
periode waktu terbaik.
Syntax:
Syntax:
kitchen.bat /option:value –file=transformation_file.ktr
Opsi-opsi selengkapnya untuk kedua perintah ini dapat Anda lihat pada dokumentasi online Kettle
pada alamat berikut:
• Kitchen: http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation
• Pan: http://wiki.pentaho.com/display/EAI/Pan+User+Documentation
Halaman: 91
Data Warehouse with Kettle Otomatisasi
c:
cd c:\kettle-4.2
kitchen.bat -file=c:\kettletraining\main.kjb -level=Detailed
cd c:\kettletraining
• Jalankan file DataWarehouse.bat dan lihat proses eksekusinya pada console windows yang
muncul.
• Gunakan Windows Task Scheduler untuk mengeksekusi file DataWarehouse.bat untuk setiap
10 menit.
Halaman: 92