Upload
helmy-faisal
View
6.888
Download
4
Tags:
Embed Size (px)
DESCRIPTION
data warehouse from A to Z
Citation preview
DATA WAREHOUSE Presented by :
Helmy Faisal M
Adam Mukharil B
Adib Toriq
1. Why we need data warehouse?
2. Konsep data warehouse.
3. Data Transformation.
4. Perancangan data warehouse.
5. Query Language dan OLAP.
Why we need Data
Warehouse
Fenomena Di Dunia Nyata
Fenomena Di Dunia Nyata
Customer mana yang memiliki tingkat margin
yang paling tinggi?
Siapa saja yang menjadi
customer dari perusahaan
saya? Barang apa saja
yang banyak dibeli oleh
customer saya tahun ini?
Cara distribusi seperti apa yang
cocok untuk menaikkan
keuntungan?
Produk baru apa yang memberikan
pengaruh terhadap
perusahaan
Saya butuh data untuk
mengetahui ..
Fenomena Di Dunia Nyata
Saya butuh data yang konsisten untuk mengambil keputusan strategi bisnis
perusahaan di masa yang akan datang !!
Fenomena Di Dunia Nyata (cont’d)
Fenomena Di Dunia Nyata (cont’d)
Gimana caranya saya bisa dapat data yang saya butuhkan ??
Fenomena Di Dunia Nyata (cont’d)
Fenomena Di Dunia Nyata (cont’d)
• GoT Corp.
• Cabang: bandung, jakarta, palembang, dan papua.
• Manager butuh laporan penjualan berkala.
• Setiap cabang memiliki sistem operasional terpisah.
Fenomena Di Dunia Nyata (cont’d)
Jakarta
Bandung
Palembang
Penjulan per item per
cabang untuk kurun waktu pertama
Manajer Penjualan
Papua
GoT Corp butuh solusi !!
Solusi Permasalahan 1
Jakarta
Bandung
Papua
Palembang
Data Warehouse
Manajer Penjualan
Query & Analisis tools
Laporan
Solusi Permasalahan 2
Database Operasional Cabang ...
Data Warehouse
Extract data
Operator Data Entry
Operator Data Entry
Manajer Penjualan
Laporan
Transaksi
Kesimpulan
GoT Corp butuh data warehouse
Konsep Data Warehouse
Pengertian Data Warehouse
Sebuah tempat penyimpanan data yang lengkap dan konsisten yang
berasal dari sumber-sumber yang berbeda dibuat untuk
penggunanya agar mereka dapat mengerti dan menggunakannya
dalam konteks bisnis.
[Barry Davlin]
Pengertian Data Warehouse (cont’d)
Sebuah proses transformasi data ke dalam sebuah informasi dan
membuat informasi ini dapat diakses oleh penggunanya tepat
waktu untuk membuat perubahan-perubahan (strategi bisnis).
[Forrester Research, 1996]
Pengertian Data Warehouse (cont’d)
1. Berorientasi subjek,
2. Diintegrasikan,
3. Time-variant,
4. Nonvolatile,
Koleksi data untuk medukung proses pembuatan manajemen
pengambilan keputusan.
[Bill Inmon]
Subject Oriented
1. Data warehouse diorganisasikan dalam lingkup subjek, sebagai
contoh: Penjualan, Produk, dan Pelanggan.
2. Berfokus ke dalam pemodelan dan analisis data untuk pihak-
pihak pembuat keputusan.
3. Memisahkan data yang tidak berguna di dalam proses
pendukung keputusan.
Subject Oriented (cont’d)
Integrated
1. Data warehouse dikonstruksikan dengan cara mengintegrasikan
sejumlah sumber data yang berbeda.
2. Data preprocessing diaplikasikan untuk meyakinkan
kekonsistensian data.
Integrated (cont’d)
Trust Credit card Savings Loans
Same data different name
Different data Same name
Data found here nowhere else
Different keys same data
Integrated (cont’d)
Encoding Structures
Measurement of attributes
Multiple Sources
Data Type Formats
Integrated (cont’d)
appl A - balance appl B - bal appl C - currbal appl D - balcurr
appl A - pipeline - cm appl B - pipeline - in appl C - pipeline - feet appl D - pipeline - yds
appl A - m,f appl B - 1,0 appl C - x,y appl D - male, female
Data Warehouse
Time-Variant
1. Menghasilkan informasi dari sudut pandang historical (misal:
5-10 tahun yang lalu).
2. Setiap struktur kunci mengandung elemen waktu.
Time-Variant (cont’d)
Time-Variant (cont’d)
Nonvolatile
1. Sekali data direkam maka data tidak bisa diupdate.
2. Data warehouse membutuhkan dua operasi pengaksesan data,
yaitu:
a. Initial loading of data
b. Akses data
Nonvolatile (cont’d)
Membentuk Data Warehouse
Data Source
cleaning
Transformation
Data Warehouse
New
Update
Arsitektur Data Warehouse
1. Data warehouse server
Pada umumnya berbentuk DBMS relasional, jarang berbentuk
file biasa.
2. OLAP Server
Mendukung dan mengoperasikan dalam bentuk struktur multi-
dimensional data.
Arsitektur Data Warehouse (cont’d)
3. Clients
a. Tools untuk Query dan Pelaporan
b. Tools untuk menganalisis
c. Tools untuk data mining.
Arsitektur Data Warehouse (cont’d)
4. Metadata Repository
Tempat menyimpan informasi tentang data yang ada di
datawarehouse.
Arsitektur Data Warehouse (cont’d)
Data Warehouse
Engine
Optimized Loader
Extraction
Cleansing
Metadata Repository
Relational
Databases
Legacy
Data
Purchased
Data
ERP
Systems
Analyze
Query
Data Transformation
Data Transformation
Fase yang terjadi ketika mengintegrasikan data ke dalam data
warehouse.
Aturan-Aturan Data Transformation
1. Extracting
2. Conditioning
3. Scrubbing
4. Merging
5. Householding
6. Enrichment
7. Scoring
8. Loading
9. Validating
10. Delta Updating
Extracting
1. Mengambil data dari sumber operational dalam “as is” status.
2. Sumber-sumber data berasal dari mainframes yang hampir
seluruhnya berupa database relasional.
Conditioning
Perubahan tipe data dari sumber data ke target data (data
warehouse) tetap dalam bentuk database relasional.
Scrubbing
1. Digunakan untuk “membersihkan”/meningkatkan kualitas data.
2. Contoh: Adam M.B., Adam MB, Adam Mukharil B. Adalah orang
yang sama.
Scrubbing (cont’d)
Merging
Proses penggabungan data dengan memperhatikan aturan-aturan
dalam mengintegrasikan data.
Householding
1. Mengidentifikasi semua anggota dari household (berada di
alamat yang sama) untuk mengirimkan report.
2. Menjamin hanya satu jenis dokumen saja yang dikirimkan
kepada setiap household karena mengirimkan multiple report
akan mengakibatkan naiknya “cost” pada data warehouse.
Householding (cont’d)
Enrichment
Mengambil data dari sumber data eksternal (di luar data source
yang seharusnya) untuk memperkaya data operasional yang sudah
ada.
Scoring
Komputasi probabilitas tentang sebuah event, sebagai contoh
menghitung kemungkinan pelanggan membeli produk baru.
Loading
1. Proses menambah atau menyisipkan data baru.
2. Teknik:
a. Menggunakan SQL untuk menambah atau menyisipkan data
baru
b. Menggunakan batch load utility.
Validating
Proses pemeriksaan kebenaran suatu data yang dihasilkan dari
penggabungan.
Delta Updating
Proses update yang hanya akan mengupdate data baru saja tanpa
menghasilkan duplikasi record.
Refresh
1. Proses yang mempropagasi terjadinya proses pengupdatean
dari sumber data ke data warehouse.
2. Pertanyaan yang sering muncul:
a. Kapan harus melakukan refresh
b. Bagaimana cara melakukan refresh.
Kapan Harus Refresh?
1. Secara Periodik (setiap malam, setiap minggu) atau setelah
event-event yang signifikan.
2. Ketika data warehouse membutuhkan data yang bersangkutan.
3. Berdasarkan kebijakan refresh yang dibuat oleh administrator
berdasarkan kebutuhan pengguna dan traffic.
Bagaimana Teknik untuk Refresh?
1. Full extract dari tabel-tabel dasar
Kekurangan:
a. “Mahal”
b. Hanya untuk “legacy systems”.
2. Mendeteksi perubahan.
Mendeteksi Perubahan
1. Membuat snapshot dari tabel log yang menyimpan perubahan
pada sumber data.
2. Setiap perubahan record akan memicu update ke dalam
snapshot log table.
Perancangan Data
Warehouse
Pendekatan Perancangan
1. Pendekatan normalisasi
2. Pendekatan dimensional.
Pendekatan Perancangan
1. Pendekatan normalisasi
2. Pendekatan dimensional.
Pendekatan Normalisasi
1. Data dalam data warehouse disimpan berdasarkan aturan
normalisasi data.
2. Kelebihan: mudah untuk menambahkan informasi ke dalam
database.
3. Kekurangan: banyak tabel yang terlibat sehingga akan
menimbulkan kesulitan dalam penggabungan data.
Pendekatan Dimensional
1. Data transaksi dipartisi menjadi fakta (data transaksi numerik)
dan dimensi (refernsi informasi dari fakta).
2. Kelebihan: data warehouse akan lebih mudah dimengerti oleh
penggunanya.
3. Kekurangan: susah mempertahankan integritas dari fakta dan
dimensi.
Mana Yang Digunakan???
Pendekatan dimensional lebih sering digunakan walaupun
terkadang di dalam pendekatannya tetap membutuhkan
normalisasi.
Perancangan Skema
1. Harus mirip seperti alur bisnis nyatanya.
2. Harus dikenal oleh pelaku bisnis.
3. Memiliki pendekatan dari sisi pelaku bisnis.
4. Harus SIMPEL.
Tabel Dimensi
1. Small tables.
2. Direlasikan dengan tabel fakta oleh foreign key.
3. Memiliki indeks.
4. Memiliki tipikal berupa dimensi seperti: periode waktu,
geographic region, product, dan pelanggan.
Tabel Fakta (Fact Tables)
1. Central table.
2. Kebanyakan berisi item-item numerik yang masih mentah.
3. Memiliki jumlah baris yang banyak.
4. Diakses via tabel dimensi.
Tabel Dimensional
Kode Produk Kode Waktu Kode Agen Penjualan Jumlah
Info Produk
Info Waktu
. . .
Ukuran numerik
dari tabel fakta Kolom-kolom kunci dari tabel fakta
juga kunci dari tabel-tabel dimensi Info Agen
. . . . . . . . . . . .
Tabel-tabel
dimensi
Tabel fakta
Skema Data Warehouse
1. Skema Star.
2. Skema Fact Constellation.
3. Skema Snowflake
Skema Star
1. Sebuah fact table yang besar dan tersentralisasi.
2. Satu tabel untuk setiap dimensi.
3. Setiap fact points untuk satu tuple dalam setiap dimensinya dan
memiliki atribut tambahan.
4. Mudah dimengerti dan mengurangi jumlah dari “physical joins”.
5. Mudah untuk mendefinisikan hirarkinya.
Skema Star (cont’d)
T i
m e
p r o d
c u s t
f a c t
date, custno, prodno, cityname, ...
C i t y
Skema Star (cont’d)
Store Key
Product Key
Period Key
Units
Price
Time Dimension
Product Dimension
Store Key
Store Name
City
State
Region
Period Key
Year
Quarter
Month
Product Key
Product Desc
Store Dimension Fact Table
Skema Fact Constellation
1. Beberapa fact tables berbagi tabel dimensi.
2. Ditampilkan sebagai koleksi dari kumpulan skema bintang yang
sering disebut sebagai skema galaxy.
3. Dibutuhkan oleh aplikasi yang canggih.
Skema Fact Constellation (cont’d)
Hotels
Travel Agents
Promotion
Room Type
Customer
Booking
Checkout
Skema Fact Constellation (cont’d)
Store Key
Product Key
Period Key
Units
Price
Store Dimension
Product Dimension
Sales Fact Table
Store Key
Store Name
City
State
Region
Product Key
Product Desc
Shipper Key
Store Key
Product Key
Period Key
Units
Price
Shipping Fact Table
Skema Snowflake
1. Merupakan variant dari model skema star.
2. Sebuah fact tables yang besar dan tersentralisasi serta satu atau
lebih tabel untuk setiap dimensi.
3. Tabel dimensi dinormalisasi dengan cara men-split data pada
tabel dimensi ke dalam tabel tambahan.
4. Mudah untuk maintenance dan menghemat storage.
Skema Snowflake (cont’d)
T i
m e
p r o d
c u s t
c i t y
f a c t
date, custno, prodno, cityname, ...
r e g i o n
Skema Snowflake (cont’d)
Store Key
Product Key
Period Key
Units
Price
Time Dimension
Product Dimension
Fact Table
Store Key
Store Name
City Key
Period Key
Year
Quarter
Month
Product Key
Product Desc
City Key
City
State
Region
City Dimension
Store Dimension
Query Language &
OLAP
Keterbatasan SQL
Mari kita lihat tabel penjualan berikut:
Keterbatasan SQL (cont’d)
Berikutnya kita lihat tabel produk:
Keterbatasan SQL (cont’d)
Berikutnya... Tabel Gudang:
Keterbatasan SQL (cont’d)
Terakhir... Tabel Kota:
Keterbatasan SQL (cont’d)
ERD:
Keterbatasan SQL (cont’d)
Masalah query:
Berapa banyak Colgate toothpaste yang dijual di kota kecil
(berdasarkan populasi) kemarin dan di hari yang sama sebulan yang
lalu?
Keterbatasan SQL (cont’d)
Query Pemecahan:
select sum(sales.quantity_sold)
from sales, products, stores, cities
where products.manufacturer_id = 68 -- restrict to Colgate-
and products.product_category = 'toothpaste‘
and cities.population < 40000
and sales.datetime_of_sale::date = 'yesterday'::date
and sales.product_id = products.product_id
and sales.store_id = stores.store_id
and stores.city_id = cities.city_id
PEMECAHAN
O L A P (Online Analytical Processing)
OLAP
1. Merepresentasikan data dengan kubus multidimensional lebih mudah
dimengerti.
2. OLAP memberikan jawaban terhadap query analytic untuk data
multidimensional.
3. Aspek: ukuran (besaran data) dan dimensi (parameter bisnis).
4. Contoh melihat penjualan (ukuran) menurut wilayah, waktu dan
produk (dimensi).
OLAP (cont’d)
Kubus 3-dimensi: Tabel fakta:
sale prod-Id store-Id tgl jumlah
p1 s1 1 12
p2 s1 1 11
p1 s3 1 50
p2 s2 1 8
p1 s1 2 44
p1 s2 2 4
tgl 2 s1 s2 s3
p1 44 4p2 s1 s2 s3
p1 12 50p2 11 8
tgl 1
Operasi OLAP
1. Slice and dice
2. Role up dan drill down
3. Pivot
Pelanggan
Senin
Rabu
Selasa
Produk 850
001
002
003
Penjualan
323 714
Slicing and Dicing
Mengambil potongan kubus berdasarkan nilai tertentu pada satu
dimensi atau beberapa dimensinya.
Slicing and Dicing (cont’d)
tgl 2 s1 s2 s3
p1 44 4p2 s1 s2 s3
p1 12 50p2 11 8
tgl 1
s1 s2 s3
p1 12 50p2 11 8
WAKTU = tanggal 1
Pivoting
1. Menampilkan nilai-nilai ukuran dalam tata letak tabel yang
berbeda.
2. Mengatur kembali dimensi dalam sebuah kubus data.
Pivoting (cont’d)
Slicing and Pivoting
Produk Tgl-1 Tgl-2
Toko t1 Electronics $5.2
Toys $1.9
Clothing $2.3
Cosmetics $1.1
Toko t2 Electronics $8.9
Toys $0.75
Clothing $4.6
Cosmetics $1.5
Produk
Toko t1 Toko t2
Toko t1 Electronics $5.2 $8.9
Toys $1.9 $0.75
Clothing $2.3 $4.6
Cosmetics $1.1 $1.5
Toko t2 Electronics
Toys
Clothing
(juta $)
Tgl-1
Penjualan
(juta $) Waktu
Penjualan
Roll Up
1. Generalisasi satu atau beberapa dimensi dengan merangkum
nilai-nilai ukurannya
2. Generalisasi: naik ke tingkat yang lebih umum dalam hirarki
dimensi.
Roll Up (cont’d)
tgl 2 s1 s2 s3
p1 44 4p2 s1 s2 s3
p1 12 50p2 11 8
tgl 1
s1 s2 s3
p1 56 4 50p2 11 8
s1 s2 s3
sum 67 12 50
sum
p1 110
p2 19
129
. . .
Contoh: penghitungan total
Drill Down
1. Mendapatkan lebih detail tentang dimensi.
2. Navigasi dari tingkat yang lebih umum ke tingkat yang lebih
spesifik.
Drill Down (cont’d)
Data Agregat
1. Penggabungan beberapa data yang digunakan untuk
mempermudah pembuatan query.
2. Data agregat disimpan dalam tabel fakta.
Data Agregat (cont’d)
* s1 s2 s3 *
p1 56 4 50 110p2 11 8 19* 67 12 50 129
tgl 2 s1 s2 s3 *
p1 44 4 48p2* 44 4 48s1 s2 s3 *
p1 12 50 62p2 11 8 19* 23 8 50 81
tgl 1 penjualan(*,p2,*)
Query Operation
1. Create Dimension
2. Pengelompokkan Cube (kubus)
3. Operator Analisis
Create Dimension
Ditujukan untuk pembuatan dimensi,
penentuan dimensi yang spesifik dan
general.
Create Dimension (cont’d)
CREATE DIMENSION StoreDim LEVEL StoreId IS Store.StoreId LEVEL City IS Store.StoreCity LEVEL State IS Store.StoreState LEVEL Zip IS Store.StoreZip LEVEL Nation IS Store.StoreNation LEVEL DivId IS Division.DivId HIERARCHY CityRollup ( StoreId CHILD OF City CHILD OF State CHILD OF Nation ) HIERARCHY ZipRollup ( StoreId CHILD OF Zip CHILD OF State CHILD OF Nation ) HIERARCHY DivisionRollup ( StoreId CHILD OF DivId JOIN KEY Store.DivId REFERENCES DivId ) ATTRIBUTE DivId DETERMINES Division.DivName ATTRIBUTE DivId DETERMINES Division.DivManager ;
Pembuatan Dimensi
Penentuan spesifik
dan general
Pengelompokan Data Cube
Pengelompokan data dalam kubus
dimensional untuk mempermudah analisis
data.
Pengelompokan Data Cube (cont’d)
SELECT StoreZip, TimeMonth,
SUM(SalesDollar) AS SumSales
FROM Sales, Store, Time
WHERE Sales.StoreId = Store.StoreId
AND Sales.TimeNo = Time.TimeNo
AND (StoreNation = 'USA'
OR StoreNation = 'Canada')
AND TimeYear = 2002
GROUP BY CUBE (StoreZip, TimeMonth)
Digrupkan dalam bentuk
cube (dimensional)
Operasi OLAP
Cari total amounts untuk hari pertama:
SELECT sum(amt) FROM SALE WHERE date=1
sale prodId storeId date amt
p1 s1 1 12
p2 s1 1 11
p1 s3 1 50
p2 s2 1 8
p1 s1 2 44
p1 s2 2 4
81
Operasi OLAP (cont’d)
Total amounts menurut tanggal:
SELECT date,sum(amt) FROM SALE GROUP BY date
result date sum
1 81
2 48
sale prodId storeId date amt
p1 s1 1 12p2 s1 1 11p1 s3 1 50p2 s2 1 8p1 s1 2 44p1 s2 2 4
Question PLEASE!!!