Dokumen tersebut membahas tentang proses Extract, Transform, dan Load (ETL) data dari sumber data ke data warehouse. ETL digunakan untuk mengambil dan mentransformasi data dari berbagai sumber seperti basis data relasional ke dalam data warehouse. Dokumen ini menjelaskan pendekatan tradisional ETL beserta arsitekturnya, metode ekstraksi data dari basis data relasional seperti ekstraksi seluruh tabel, inkremental, atau fixed range, serta masalah yang mungkin terjadi d
1. Data Extraction
“When you are willing to make sacrifices for a
great cause, you will never be alone.”
TIF32604 Data Warehouse
Nova Eka Diana (nova.diana@yarsi.ac.id)
Fakultas Teknologi Informasi
Universitas YARSI
3. ETL
• ETL: Extract, Transform, and Load
• Adalah proses untuk mengambil dan
mentransformasi data dari berbagai sumber data
dan memasukkannya ke dalam data warehouse
• Ketika melakukan ekstraksi data, hindari agar
proses tersebut jangan terlalu banyak
mengganggu proses aktivitas dari sumber data
• Sebaiknya, data yang sudah diekstraksi harus
dimasukkan langsung ke data warehouse tanpa
harus terlebih dahulu disimpan secara temporari di
disk atau file
4. Jenis Transformasi
• Jenis tranformasi yang terjadi:
• Melakukan format dan standarisasi
• Melakukan lookup
• Melakukan agregasi summary data
• Dua prinsip penting:
• Leakage: jangan sampai ada data yang
tertinggal setelah proses ETL selesai
• Recoverability: proses ETL harus mampu
menangani terjadinya kegagalan
6. Traditional Approach
• Mengambil data dari sumber
• Menempatkannya di staging area
• Melakukan transformasi dan load ke
datawarehouse
• Atau:
• Tidak disimpan di staging area, tapi tranformasi
dilakukan di memori
• Langsung di-load ke data warehouse tanpa
disimpan ke disk
8. Alternative Approach
• ELT: Extract, Load, Transform
• Copy data dari OLTP ke data warehouse
• Proses transformasi dilakukan di data warehouse
9. Question
• Kapan menggunakan ETL dan ELT
approach?
• ETL: jika punya server ETL yang kuat dan software
dengan kualitas transformasi data yang tinggi
• ELT: jika datawarehouse database system kuat,
MPP(Massively Parallel Processing) Teradata,
Netezza, Neoview
• Performa meningkat secara linier
12. Asal Sumber Data
• Database: ADO.NET, OLEDB, ODBC, JDBC, atau
database connectivity yang sesuai
• File system: ISAM (sequential file storage)
• Service
• Email
13. Bentuk Sumber Data
• Structured
• Semi-structured
• Unstructured
“on 2/1/2008 we received order ID
2893 from store 32, requiring 150
units of product A160. Three days
later store 29 asked for 240 pieces of
B120”
17. Method
• Whole table every time
• Incremental extract
• Fixed range
• Push approach
18. Whole table every time
• Gunakan method ini
• jika ukuran tabel kecil
• Jika tidak ada timestamp atau identity column
19. Incremental Extract
• OLTP terdiri atas tabel-tabel dalam ukuran yang
besar dan terdiri atas ratusan ribu baris data
• Teknik ini hanya mengunduh baris data yang
diubah, bukan keseluruhan tabel
• Beberapa hal yang bisa digunakan:
• Timestamp column
• Identity column
• Transaction date
• Trigger
• Kombinasi semuanya
20. Incremental Extract (2)
• Kandidat: timestamp column, identity column
• Cek jika timestamp column dapat digunakan
nilai timestamp yang berubah setiap kali baris data
diubah
• Atau membandingkan nilai timestamp dengan
identity column
21. Incremental Extract (3)
• Jika timestamp column memiliki urutan yang baik
dapat digunakan untuk incremental extraction
• CET: Current Extraction Time
• LSET: Last Successful Extraction Time
23. Fixed Range
• Melakukan ekstraksi untuk sejumlah baris data
tertentu
• Atau pada periode waktu tertentu
• Mengidentifikasi update lebih susah gunakan
checksum
24. Fixed Range (2)
• Asumsi: tabel1 terdiri atas data kemarin dan tabel2
terdiri atas data hari ini
• Ilustrasi:
25. Related Tables
• Jika source table diubah related tables yang
menunjuknya juga harus diekstrak
• Misal: order ID 34552 di OrderHeader tabel diubah
dan diekstrak ke datawarehouse, maka baris
dengan row id 34552 di OrderDetail juga harus
diekstrak
• Identifikasi perubahan baris di tabel pertama,
• Gunakan hubungan primary-foreign key