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.

Sunday, August 10, 2008

RITECH 8 Agustus 2008

RITECH (Research, Inovation and Technology) Expo diselenggarakan tanggal 8 s/d 11 Agustus 2008. Event ini adalah ajang pameran dan workshop tahunan di bidang riset, inovasi dan teknologi di Indonesia. Untuk Informasi Teknologi tema kali ini adalah mengusung Free Open Source Software (FOSS).

Beruntung, PHI-Integration dapat ikut untuk event RITECH kali ini dengan ikut serta di workshop dengan topik Pengenalan Mondrian sebagai Server OLAP Open Source.

Terima kasih kepada Pak Onno dan juga Bu Antari dan Pak Kemal dari kementerian RISTEK (Riset dan Teknologi) sehingga saya dapat diberi kesempatan untuk berpartisipasi di RITECH kali ini.

Berikut adalah slide presentasi dari PHI-Integration pada event workshop RITECH EXPO tanggal 8 Agustus 2008 pukul 14.00 - 16.00 WIB. Slide ini juga dapat dilihat di wiki Pentaho PHI-Integration.



Saturday, August 9, 2008

Wiki Pentaho Bahasa Indonesia

Dengan semakin antusiasnya komunitas IT di Indonesia terhadap Pentaho dan dengan demikian untuk mengedukasi para praktisi IT yang ingin memulai Pentaho maka PHI-Integration telah membuat sebuah situs wiki khusus untuk produk ini dalam bahasa Indonesia.

Anda dapat mengunjungi wiki tersebut di http://pentaho.phi-integration.com. Format dan tulisan wiki ini mungkin agak sedikit berbeda dengan situs sebelumnya yang ditulis dalam bahasa Inggris. Namun tidak akan mengurangi substansi teknis dari penggunaan Pentaho sebagai solusi BI di perusahaan/instansi Anda.




Saran dan kritikan dari Anda tentunya sangat diharapkan dan dapat dialamatkan ke info@phi-integration.com untuk kesempurnaan dari wiki ini.




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

Friday, August 1, 2008

Jamu - Juni 2008

Jamu Juni 2008 mengetengahkan tentang Kettle dan Mondrian dari suite BI Pentaho yang kebetulan dibawakan oleh saya sendiri - Feris Thia.

Terima kasih kepada Bung Thomas Wiradikusuma dan Bung Joshua Jackson sebagai pengelola JUG (Java User Group) Indonesia saat ini atas kesempatan yang diberikan.

Terima kasih juga kepada SUN Microsystem Indonesia yang telah memfasilitasi JAMU ini dan juga kepada para peserta JAMU yang sudah menunjukkan antusias yang baik.

Berikut adalah slide-slide presentasi saya pada saat JAMU 06.08.