Anda di halaman 1dari 9

PROSES EXTRACT, TRANSFORM AND LOADING

Secara umum 60% hingga 80% pengembangan data warehouse dicurahkan pada proses back-end. Dimana system back-end yang terjadi adalah ekstraksi, transformasi, cleansing data, dan memasukan atau loading data operasional ke dalam data warehouse. Dapat dipahami jika didalam sub system ini terdapat system enterprise yang berbeda-beda baik dalam hal lingkungan teknologi, system sumber serta kebutuhan bisnis.

6.1. Sub Sistem Ekstraksi Terminologi ekstraksi merujuk pada proses retrive data dimana sumber data dapat merupakan tabel aktual sistem operasional ataupun menduplikasi data nya. Proses ini dapat dilakukan dengan cara yang amat beragam, mulai dengan menggunakan perangkat lunak yang mudah digunakan hingga membuat suatu kode program yang dibuat spesifik dengan kebutuhan.

Perangkat lunak dengan kemudahan yang ada biasanya memiliki cost yang tinggi, sehingga alternative yang digunakan adalah menulis kode program dan sekaligus mendokumentasikannya. Disisi lain kelemahan dari kode program adalah faktor kecepatan perubahan dalam mengikuti perkembangan bisnis proses suatu organisasi. 6.2. Sub Sistem Transformasi Tipe-tipe transformasi yang biasa di implementasikan pada data warehouse adalah sebagai berikut : 1) Format-Changes, dimana setiap data field dari system operasional disimpan dalam format dan tipe data yang berbeda. Individual data ini akan di modifikasi selama proses transformasi ke dalam format yang di standarisasi. 2) De-duplication, record dari beberapa sumber dibandingkan untuk mengidentifikasi adanya duplikasi berdasarkan nilai dari suatu field. Data yang terduplikasi bisa di merge menjadi suatu single record. Record yang potensial mengalami duplikasi akan dipisahkan dalam suatu tempat untuk di pilah secara manual. 3) Splitting up fields, data dari system sumber sangat mungkin untuk di pisahkan dalam satu atau beberapa field dalam data warehouse. Hal yang sering terjadi adalah pemisahan data informasi customer yang terdiri dari satu field dipisahkan menjadi
1

beberapa field di data warehouse seperti nama jalan, nama gedung, kota , kode pos dsb. 4) Integrating fields, kebalikan dari splitting up fields dimana dua buah field atau lebih akan di integrasikan dalam satu field. 5) Replacement of values, jika data dalam system operasional memliki makna yang kurang informatf bagi pengguna warehouse, akan ditransformasikan kedalam bentuk yang lebih sesuai. 6) Derived values, field yang dihasilkan dari formulasi fungsi agregasi. Dengan melakukan penghitungan sebelum dimasukkan ke dalam data warehouse maka kemungkinan kesalahan yang akan dilakukan oleh pengguna warehouse akan berkurang. Sebagai contoh field balance, ratio dsb 7) Aggregate, field yang di agregasi secara atomic juga dapat dilakukan sebelum di masukkan ke dalam data warehouse.

6.2.1. Data Quality Data quality merupakan suatu komponen yang penting pada proses ETL . Pengertian penyebab dari data error akan mempermudah penanganan kemungkinan error yang mungkin terjadi. Penyebab error yang sering terjadi adalah sebagai berikut : Missing values, dimana data yang hilang pada system sumber data dikarenakan record yang tidak lengkap atau field tersebut merupakan field yang bertipe opsional. Lack of referential Integrity, pada system sumber data hal ini mungkin terjadi karena inkonsistensi pengkodean Different Unit Measure, penggunaan satuan ukuran yang berbeda memungkinkan terjadinya error pada saat data dimasukkan dalam warehouse, seperti mata uang, ukuran yang digunakan oleh system-sitem yang ada pada sumber data. Duplicates, data yang terduplikasi di system sumber data harus diproses dengan membandingkan atau memilah sesuai dengan aturan bisnis yang ingin dicapai
2

Fields to be split up, Seperti yang di uraikan sebelumnya bahwa data pada system sumber perlu untuk di pilah terlebih dahulu, dikarenakan volume data yang cukup besar maka dibuat lah suatu kode untuk otomatisasi proses tersebut. Namun karena kompleksitas dan beragamnya data di system sumber, kemungkinan error masih cukup besar terjadi.

Multiple Hirarhies, dimensi dalam data warehouse dengan hirarki bertujuan untuk memudahkan analisa data. Misalkan dimensi waktu, memiliki hirarki hari-bulanquartal tahun dan hari fiscal, bulan fiscal dan sebagainya. Kekurang fahaman atas pengertian yang dikandung dalam multi hirarki ini akan menyebabkan kesalahan dalam warehouse.

Conflicting or inconsistent terms and rules, konflik ataupun inkonsistensi dari penggunaan terminology dan aturan bisnis dapat menyebabkan perbedaan persepsi pada perencanaan data warehouse atau dapat juga menyebabkan kesalahan penggunaan formulasi yang dibutuhkan.

Adapun pendekatan yang dilakukan untuk meningkatkan kualitas data adalah : Assess current level of data quality Identify key data items Define cleansing tactics for key data items. Define error-prevention tactics for key data items Implement quality improvement and error-prevention processes.

Assesment untuk meningkatkan kualitas data dapat dilakukan kapanpun pada sudut pandang yang berbeda selama proses back-end warehouse berlangsung. Seperti

terlihat pada gambar dibawah ini bahwa assessment dilakukan pada saat berada pada system sumber, ataupun pada saat data berada pada tahap load image atau staging area dan juga pada data warehouse itu sendiri.

6.3. Sub System Loading Sub sistem ini akan melakukan loading data yang telah di ekstraksi di loading image / stage area yang dilakukan sub system ekstraksi dan transformasi. Data yang akan di load sudah dalam bentuk star shema baik pada data sumber ataupun tujuan. 6.3.1. Proses Dasar Adapun porses dasar yang dilakukan pada subsistem ini adalah Drop indexes on the warehouse Ketika suatu record dimasukkan kedalam table yang memiliki index, RDBMS akan melakukan update pada objek index yang bersesuaian. Pada environment data warehouse dimana voume data yang dimasukkan sangat besar, proses re-indexing index objek setelah data dimasukkan dalam table akan menimbulkan overhead proses pada kinerja nya. Akibanya proses loading akan berjalan lambat. Untuk menghindari hal ini maka proses drop index dapat dilakukan sebelum data di load dalam data warehouse. Load dimension records. Padas umber data, record-record dari tabel customer, product atau transaksi dapat diidentifikasi secara unik melalui key atau field kunci. Sedangkan record pada tabel atau dimensi pada data warehouse diidentifikasi dari key value . Key dari sistem sumber data tidak sesuai dengan kebutuhan warehouse key, dalam hal ini
4

pendekatan yang dilakukan adalah dengan membuat key baru pada saat proses loading. Load fact records. Kunci utama pada fact table adalah penggabungan kunci-kunci dari tabel dimensi yang berelasi. Setiap record dalam tabel fact menggunakan generate key dari tabel dimensi. Record-record dalam tabel dimensi terlebih dulu dimasukkan sebelum record pada tabel fact guna menjaga referential integrity nya. Pada umunya record dalam data warehouse berdasarkan history time series sehingga input record dalam tabel fact adalah record baru. Compute aggregate records, using base fact and dimension records. Setelah atomic record sukses dimasukan dalam data warehouse , sub system loading data akam melakukan perhitungan agregasi yang diperlukan dengan menggunakan record pada tabel fact dan dimensi. Langkah ini dilakukan jika nilai agregasi belum dilakukan pada langkah sebelumnya. Rebuild or regenerate indexes. Setelah proses loading selesai dilakukan, maka objek indek akan dibuat atau diperbarui untuk meningkatkan performansi proses query. Log load perceptions. Pelanggaran referential integrity di log file selama proses loading berlangsung. Ada dua tipe pelanggaran yang biasa terjadi yaitu : a) Hilangnya data field kunci pada tabel fact b) Kesalahan data dari field kunci, namun satu atau lebih dari data tersebut tidak berhubungan dengan tabel dimensi. Dalam kedua kasus ini opsi yang dapat diambil adalah a) Tidak melakukan loading data hingga data field kunci ditemukan b) Melakukan proses loading record, dengan melakukan penggantian data untuk field kunci yang salah dengan menambahkan kode program secara hard code.

Sub system loading berasumsi baahwa data yang berada dalam load image belum menggunakan warehouse key.

6.3.2. Loading Dirty Data Pada proses loading data, data yang belum valid (dirty data) sangat mungkin terbawa masuk kedalam data warehouse misalkan data yang tidak memenuhi persyaratan referential integrity. Sebagian tim pengembang data warehouse pendapat bahwa data yang dimasukkan ke dalam warehouse adalah data yang sudah valid (clean data) dan sebagian lagi berpendapat sebaliknya dengan memberikan tanda pada data yang tidak valid. Penggunaan hard code untuk mengidentifikasi data yang tidak valid pada data warehouse memungkinkan pengguna dapat tetap memakai data yang valid. Sebagai contoh jika suatu Sales Fact bergantung pada dimensi Customer, Date dan Product

dan nilai dari kinci customer hilang maka informasi Sales per Product masih dapat dihasilkan secara valid.

Informasi Sales per Customer masih tetap dapat dihasilkan dengan menambahkan hard code untuk menanggulangi kesalahan hilangnya data pada field kunci tersebut.

Hard code dilakukan pada saat loading sehingga user mendapatkan informasi yang sesuai

6.4. Metoda Memasukkan Data 6.4.1. Menggunakan SQL Merge Ketika memasukkan data ke dalam data warehouse, kemungkinan proses yang terjadi adalah menambahkan record baru dan melakukan perubahan terhadap record yang ada. Adapun sintaks yang biasa digunakan adalah INSERT dan UPDATE.

Dalam perkembangannya DML memiliki kemampuan baru yaitu SQLMerge. Dengan menggunakan SQL Merge maka jika suatu record exist maka lakukan proses update, jika tidalk maka lakukan proses Insert. Ini dinamakana proses UPSERT.

Sintaks secara umum adalah sebagai berikut :

MERGE <hint> INTO <table_name> USING <table_view_or_query> ON (<condition>) WHEN MATCHED THEN <update_clause> DELETE <where_clause> WHEN NOT MATCHED THEN <insert_clause> [LOG ERRORS <log_errors_clause> <reject limit <integer | unlimited>];

Sebaga contoh :
SQL> SELECT * FROM dept; DEPTNO ---------10 20 30 60 40 DNAME -------------ACCOUNTING RESEARCH SALES HELP DESK OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO PITTSBURGH BOSTON

SQL> SELECT * FROM dept_online; DEPTNO DNAME LOC ---------- -------------- ------------40 OPERATIONS BOSTON
7

20 RESEARCH DEV 50 ENGINEERING

DALLAS WEXFORD

SQL> MERGE INTO dept d USING (SELECT deptno, dname, loc FROM dept_online) o ON (d.deptno = o.deptno) WHEN MATCHED THEN UPDATE SET d.dname = o.dname, d.loc = o.loc WHEN NOT MATCHED THEN INSERT (d.deptno, d.dname, d.loc) VALUES (o.deptno, o.dname, o.loc); SQL> SELECT * FROM dept; DNAME -------------ACCOUNTING RESEARCH DEV SALES ENGINEERING HELP DESK OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO WEXFORD PITTSBURGH BOSTON

DEPTNO ---------10 20 30 50 60 40

6 rows selected.

6.4.2. Menggunakan Fasilitas pada RDBMS Metoda lain yang bisa digunakan untuk memasukkan data dalam data warehouse adalah metoda yang di sediakan oleh RDBM itu sendiri. Pada RDBM Oracle beebrapa metoda tersebut adalah : External Tables, metoda ini akan memasukkan data pada tabel baru ataupun pada eksisting tabel dengan sumber data yang bertipe flat file dan ingin dilakukan proses transformasi pada saat loading data.

Data Pump, utilitas untuk melakukan export dan import data


8

SQL*Loader, metoda ini akan memasukkan data pada tabel baru ataupun pada eksisting tabel dengan sumber data yang bertipe flat file baik berupa txt ataupun csv yang berada diluar database.

Transportable Tavlespaces, digunakan untuk memindahkan data antar database oracle , misalkan operasional database dan data warehouse yang berada pada system operasi yang berbeda.

Sumber : Data Warehousing OLAP and Data Mining, S. Nagabhushana Oracle 10g Data Warehousing, Lilian Hobs, Oracle Corp
9