Showing posts with label data warehousing. Show all posts
Showing posts with label data warehousing. Show all posts

Saturday, June 19, 2010

Pentaho Data Integration 3.2 : Beginner's Guide



Tidak bisa dipungkiri lagi,  Pentaho Data Integration (PDI) atau Kettle adalah primadona di proyek Pentahodan merupakan salah satu utilitas ETL terbaik di pasaran saat ini.

Sudah dua tahun ini Kettle membantu PHI memecahkan banyak kasus pengolahan data yang sulit dan melibatkan banyak sumber data. Sebagai konsultan dan trainer data warehouse, hampir tidak ada kasus yang tidak dapat dipecahkan oleh Kettle baik dari sisi solusi maupun performa

Di samping itu saya sendiri sudah lama menunggu datangnya buku yang cukup komprehensif untuk PDI ini. Dan akhirnya penantian itu datang juga dengan terbitnya buku dari Packt publishing dengan judul "Pentaho Data Integration 3.2 : Beginner's Guide".

Buku ini merupakan karangan María Carina Roldán yang merupakan salah satu kontributor artikel tutorial PDI di wiki Pentaho. Terima kasih saya sampaikan kepada Packt karena diberi kesempatan untuk mereview versi e-book buku tersebut pada bulan ini.

Kesan positif langsung hinggap di diri saya ketika telah membaca daftar isi dan bab awal buku ini, beberapa pertanyaan dasar dan sering diajukan langsung terjawab dengan penjelasan singkat dan jelas :

"Apa sih itu ETL ? "

"Kenapa data warehouse membutuhkan utilitas ETL ? "

"Pentaho Data Integration sebagai ETL "

Kesan positif tadi kemudian berlanjut dengan konsisten melalui contoh  : Hello World versi ETL / Kettle. Dari contoh tersebut langsung diekspresikan berbagai konsep dasar Spoon (utilitas grafis Kettle) :
- Cara menjalankan Spoon
- Pembentukan Step
- Row / Hop
- Running / Preview
- Membaca log console

Sangat dasar sehingga user dapat langsung memahami apa yang terjadi. Ini dimungkinkan karena penjelasan dilengkapi dengan banyak screenshot pengerjaan dan gambar/skema konsep yang jelas. Sesuatu yang kadang membutuhkan beberapa saat dari peserta untuk mendapatkan gambaran yang sama pada sesi training yang kami lakukan.

Penyampaian pada saat memasuki sesi praktis juga sangat baik, satu per satu contoh disampaikan dengan instruksi penggunaan "step" Kettle yang digunakan. Baru kemudian dilanjutkan dengan pembahasan dari apa yang telah dilakukan. Ini mengakibatkan buku tidak menjadi terlalu bertele-tele.

Konsistensi penyampaian terjaga terus sampai dengan bab-bab berikutnya. Halaman-halaman pada buku   tetap kaya akan screenshot dan gambar / skema konsep.

Urutan source data yang dibahas juga sangat bertahap. Dimulai dari pengolahan file teks, XML, spreadsheet / Excel, relational database / MySQL, dan sampai akhirnya pada pembentukan datamart.

Akhir kata, tanpa bermaksud berpromosi terlalu berlebihan buku ini sangat direkomendasikan buat pembaca yang baru akan mengenal Pentaho Data Integration. Bahkan pengguna lama sekalipun akan banyak  mendapatkan manfaat dari buku ini.

Tertarik ? Silahkan mengunjungi situs buku ini atau download bab contoh dalam format PDF : "Developing and Implementing a Simple Datamart".


Saturday, August 30, 2008

Change Data Capture (CDC)

Apa itu Change Data Capture ?


Salah satu kendala peningkatan kinerja di dalam implementasi data warehouse adalah strategi pengambilan  data transaksional yang mengalami perubahan dari titik pengambilan (snapshot) terakhir. Hal ini dikenal dengan nama proses pengambilan data yang berubah atau Changed Data Capture (CDC).

Beberapa Teknik Solusi


Untuk beberapa vendor BI pemecahan masalah ini mungkin kelihatan sederhana seperti penambahan kolom timestamp pada tabel yang akan di-capture maupun membuat tabel audit baru yang mencatat perubahan data di tabel yang dipantau.

Selanjutnya kolom ini akan dipopulasi berdasarkan perubahan yang terjadi melalui mekanisme trigger (insert, update dan delete).

Teknik lainnya adalah  mencoba untuk menggantungkan diri pada sistem aplikasi yang ada misalkan aplikasi ERP (Enterprise Resource Planning) yang memiliki  field seperti creation_date dan updated_date - yang masing-masing mewakili waktu dibentuknya row data dan waktu update terakhir.

Namun pendekatan solusi ini memiliki kelemahan, bagaimana kalau row tersebut dihapus ? Tentunya kita tidak bisa melakukan query terhadap row tersebut lagi dan row data yang berkaitan di data warehouse kita tentu sudah menjadi tidak valid lagi tanpa kita bandingkan dengan row data sumber.

Ada juga solusi yang "tidak mau ambil pusing"... yaitu mencoba membandingkan satu per satu row dari data warehouse dengan data asalnya. Solusi ini tentunya adalah proses yang sangat lama dan 'mahal'. Bukan saja ini solusi yang tidak tepat karena menurunkan kinerja tapi hampir mustahil dilakukan atas alasan praktis terutama jika data yang ditangani sudah sangat besar.

Walau pada awalnya bagi sebagian orang, masalah capture data ini kelihatan sepele tapi memang tidak sesederhana seperti yang dipikirkan.

Contohnya jika menyangkut policy maka pada kebanyakan kasus kita tidak boleh merubah struktur maupun membuat trigger apapun pada database client kita sehingga menjadikan solusi pengambilan data ini menjadi semakin sulit.

Jika ini yang terjadi, maka solusi terbaik yang biasanya dapat dilakukan adalah membuat aplikasi untuk membaca dan menganalisa transaction log dari database yang digunakan sehingga tidak mengganggu data sebenarnya. Transaction log biasanya adalah file yang digunakan sebagai jembatan untuk mencatat transaksi yang dilakukan sebelum dilakukan perubahan ke tabel sebenarnya.

Namun lagi-lagi solusi ini terkendala oleh tidak adanya log file ini pada beberapa sistem database terutama jika itu adalah legacy database system atau sistem database lama seperti XBase.

Masalah lain yang dihadapi dengan pendekatan ini adalah kebanyakan sistem database populer tidak menyertakan dokumentasi ataupun API untuk mengambil informasi dari transaction log-nya seperti contoh MS SQL Server 2000. Jika ini yang terjadi, maka kita terpaksa harus menduga-duga dengan melakukan reverse engineering yang tentunya sangat menghabiskan waktu.

Nah untungnya bagi para teman-teman sesama praktisi data warehousing, sebagian database populer ternyata mendukung fitur CDC ini seperti Oracle 9i ke atas. Berita baik juga untuk para pengguna produk Microsoft SQL Server, sejak versi 2008 fitur CDC sudah disertakan di dalam produk ini.

Produk Pihak Ketiga


Bagaimana untuk produk database server lainnya yang tidak mendukung langsung pembacaan perubahan data ?

Untuk Anda yang serius untuk mendapatkan solusi ini ada beberapa vendor/produk yang mengkhususkan diri di area ini, diantaranya :
  • Attunity , untuk produk seperti DB2, Oracle, Microsoft SQL Server, dan lainnya.
  • Apex SQL , untuk produk Microsoft SQL Server
  • Golden Gate, fiturnya hampir sama dengan Attunity
  • dan lain-lain, untuk list lengkapnya dapat dilihat di situs IT-Toolbox.

Penutup


Change Data Capture (CDC) atau masalah pengambilan data yang berubah dari suatu titik waktu tertentu adalah hal yang cukup krusial di dunia data warehousing. Dengan mengambil strategi populasi bertahap maka kita harus memastikan kalau data yang akan kita ambil pada tahap berikutnya memang berbeda dari data saat terakhir kita melakukan proses.

Dan dengan mengenali dukungan untuk CDC ini pada produk database yang digunakan oleh klien kita dan juga mengetahui adanya solusi pihak ketiga yang menyediakan dukungan ini maka akan menjamin kesuksesan lebih lanjut dari implementasi proyek yang kita lakukan.

Semoga berguna dan sampai jumpa di artikel BI berikutnya...

Feris

Sunday, August 24, 2008

Kettle - Pentaho Data Integration

Dengan popularitas Kettle yang semakin meningkat sebagai solusi ETL open source yang handal oleh berbagai organisasi terkenal di dunia maka penulis merasa perlu menularkan sedikit 'ilmu' dari Kettle ini kepada para komunitas BI di Indonesia yang sudah sangat sering menanyakan tentang produk ini.

Wiki Pentaho Indonesia telah penulis lengkapi dengan pengenalan Kettle mulai dari cara instalasi, cara penggunaan Spoon sebagai utilitas utama dan cara otomatisasi eksekusi melalui utilitas batch script.

Silahkan kunjungi wiki ini yang kebetulan telah berganti wajah yang terkesan lebih cerah dan kontras dengan harapan para pengunjung dapat lebih mudah melakukan navigasi.



Semoga situs wiki ini dapat bermanfaat untuk pemelajaran Kettle lebih baik. Segala komentar dan saran bagi pengembangan wiki ini ke arah yang lebih baik tentunya sangat diharapkan oleh penulis.

Saturday, August 2, 2008

SampleData.org

Sering sekali dalam keterlibatan kita menangani suatu proyek pembuatan sistem atau aplikasi perangkat lunak, maka hal yang sangat membantu adalah ketersediaan contoh data dalam jumlah yang cukup banyak. Contoh data tersebut bisa dalam bentuk cetakan laporan, formulir yang telah terisi, file spreadsheet, legacy data dan sebagainya.

Begitu juga pada saat kita mempelajari suatu sistem penyimpanan data atau database system seperti Microsoft SQL Server, Microsoft Access, MySQL, Oracle, DB2, dan berbagai produk lainnya. Kumpulan contoh data yang baik akan sangat membantu kita dalam memahami cara kerja sistem dan berbagai proses bisnis seperti manajemen pemesanan, penjualan, personalia, persediaan barang, dan sebagainya.

Dan beruntung juga untuk kita karena biasanya berbagai sistem database yang telah disebutkan sebelumnya datang dengan berbagai contoh data. Beberapa yang terkenal diantaranya seperti database Northwind dari Microsoft yang tersedia untuk Microsoft Access dan SQL Server, Adventure Works untuk produk SQL Server, Foodmart untuk produk SQL Server dan Microsoft Analysis Server, Sakila untuk MySQL, dan sebagainya.

Namun sebagai implementor dari beberapa produk business intelligence atau data management, pada saat presentasi ke client atau pun pada saat ingin transfer knowledge kita sering sekali membutuhkan berbagai contoh kasus data yang agak sulit untuk diambil dari contoh-contoh data yang telah disebutkan tersebut.

Untuk mengatasi hal tersebut, saya beberapa kali harus merancang dan megenerasi sendiri contoh data dengan menggunakan aplikasi spreadsheet seperti Microsoft Excel dan OpenOffice Calc. Atau juga dengan menggunakan kode program khusus yang dibuat sendiri.

Dan ini membuat saya berpikir bahwa kasus yang dihadapi oleh kami (PHI-Integration) pastilah tidak unik. Apalagi oleh vendor atau perusahaan yang bergerak di bidang teknologi informasi ataupun dosen dan mahasiswa jurusan ilmu komputer.

Hal ini mendorong saya untuk berinisiatif memulai proyek pembuatan berbagai contoh data dengan model kolaborasi. Hasil dari proyek ini bisa berupa contoh data dengan lisensi open source maupun proprietary - gratis maupun berbayar.

Proyek tersebut kami namakan sama dengan nama domain dari proyek tersebut, yaitu SampleData.org.

Adapun visi dan misi dari proyek tersebut cukup sederhana, yakni menyediakan ketersediaan contoh data dengan berbagai format data sehingga dapat dimanfaatkan oleh berbagai kalangan untuk penggunaan seluas-luasnya.

Hal ini mudah-mudahan dapat menimbulkan efek jangka panjang bahwa dengan contoh data yang melimpah dan berdasarkan best practice dari para kolaboratornya akan menelurkan banyak aplikasi yang baik terutama bagi pengembang aplikasi tingkat pemula.

Untuk Anda yang berminat untuk kolaborasi di proyek ini, silahkan mengunjungi situs proyek ini di sampledata.org atau turut berdiskusi di grup sample-data dengan mengirimkan email ke sample-data-subscribe@googlegroups.com.

Salam,

Feris Thia