Upload
hnindito
View
620
Download
0
Embed Size (px)
Citation preview
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 1/9
1
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
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 2/9
2
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
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 3/9
3
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-bulan-
quartal 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.
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 4/9
4
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
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 5/9
5
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.
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 6/9
6
6.3.2. Loading Dirty Data
Pada proses loading data, data yang belum valid (dirty data ) sangat mungkin terbawamasuk 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. Sebagaicontoh 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.
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 7/9
7
Hard code dilakukan pada saat loading sehingga user mendapatkan informasi yangsesuai
6.4. Metoda Memasukkan Data
6.4.1. Menggunakan SQL MergeKetika 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. Denganmenggunakan 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 DNAME LOC---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
60 HELP DESK PITTSBURGH
40 OPERATIONS BOSTON
SQL> SELECT * FROM dept_online;
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERATIONS BOSTON
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 8/9
8
2 0 R ESEA RC H D EV D ALL AS
5 0 E NGIN EE RIN G W EXF ORD
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;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
2 0 R ESEA RC H D EV D ALL AS
30 SALES CHICAGO
5 0 E NGIN EE RIN G W EXF ORD
60 HELP DESK PITTSBURGH
40 OPERATIONS BOSTON
6 rows selected.
6.4.2. Menggunakan Fasilitas pada RDBMS
Metoda lain yang bisa digunakan untuk memasukkan data dalam data warehouseadalah 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
5/13/2018 Proses ETL - slidepdf.com
http://slidepdf.com/reader/full/proses-etl 9/9
9
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