Data warehouse dan OLAP
(Overview)
yudi@upi.edu
Diambil dari presentasi Jiawei Han / Chirayu Versi dok: 0.8/ Sept 14
Kasus: Indomaret
• Jutaan data per hari
• Dimensi (jumlah field) data besar
– Produk, jenis produk, waktu expire, pemasok,
tranksaksi harian, kepegawaian, keuangan, gudang
• Sumber data beragam
– Software beragam (beda vendor, beda versi). Ada data dalam file teks, Excel, database. → belum tentu
konsisten!
Kasus (lanj)
Kebutuhan pengambil keputusan:
Mengetahui penjualan per produk per wilayah per waktu
“Berapa sikat gigi yang terjual dalam bulan feb 2012 untuk wilayah jawa barat?”
Kasus (lanj)
Kebutuhan pengambil keputusan:
• Searching, filtering, query kompleks
padahal...• Laporan harus cepat dan realtime!
Apakah database reguler cukup? Seperti yang dipelajari di kuliah basdat+sisbasdat?
Apa Data warehouse?
• Database pendukung keputusan yang terpisah dengan database operasional
– Apa database operasional?
• Platform untuk integrasi data historis untuk analisis
• Berdasarkan subyek, terintegrasi,
berdasarkan waktu, non volatile (permanen)
Kegunaan Datawarehouse
• Pemrosesan Informasi
– querying, analisis statistik, pelaporan,grafik
• Analisis
– Analisis Multidimensi
– Operasi OLAP: slice-dice, drilling, pivot
• Data mining
– Pengetahuan dari pola tersembunyi. – Asosasi, klasifikasi, prediksi
Berdasarkan Subyek
• Dikelola berdasarkan subyek-subyek penting. Misalnya: pelanggan, produk, penjualan, keuangan.
• Fokus pada model dan analisis data untuk
pengambil keputusan, bukan operasi
harian.
• Memberikan view yang lebih sederhana untuk subyek tertentu
Terintegrasi
• Dibuat dengan menggabungkan beberapa sumber data:
– Database relational, flat file
• Teknik pembersihan dan integrasi diterapkan
– Konsistensi nama, atribut
Berdasarkan Waktu
• Time horizon lebih panjang dari sistem yang operasional
– Database operasional: data kini (current) – Datawarehouse: perspektif historis (5-10
tahun)
• Setiap struktur pada data warehouse:
– Mengandung elemen waktu (implisit/eksplisit) – Tidak demikian dengan database operasional
Non volatile (permanen)
• Penyimpanan data terpisah dengan data operasional
• Tidak memerlukan “update”
– Tidak memerlukan transaksi, recovery dan concurrency
– Hanya memiliki dua operasi:
• Loading awal • Akses data
Kegunaan Datawarehouse
• Pemrosesan Informasi
– querying, analisis statistik, pelaporan,grafik
• Analisis
– Analisis Multidimensi
– Operasi OLAP: slice-dice, drilling, pivot
• Data mining
– Pengetahuan dari pola tersembunyi. – Asosasi, klasifikasi, prediksi
OLAP dan OLTP
• Data warehouse: OLAP
• Operasional DB: OLTP
OLTP (online transaction processing)
– Fungsi utama relational database
– Operasi harian: pembelian, inventory, registrasi dll
OLAP (online analytical processing)
– Fungsi utama data warehouse
OLTP vs OLAP
• Orientasi user
– Operator vs knowledge worker
• Isi sistem
– current, detail vs historical, konsolidasi
• Rancangan:
– ER+Aplikasi vs Star + subject
• View
– current, local vs , integrated
• Model akses
OLTP vs OLAP
OLTP OLAP
users clerk, IT professional knowledge worker
fungsi harian pengambilan keputusan
DB design ER+applikasi subject-oriented
data current, up-to-date detailed, flat relational isolated
historical,
summarized, multidimensional integrated, consolidated
penggunaan repetitive (sama berulang2) ad-hoc (tergantung situasi)
Model akses read/write
index/hash berdasarkan prim. key
banyak scans (ambil seluruh data)
satuan pekerjaan pendek, transaksi sederhana complex query
# records accessed Ratus sd ribuan Jutaan sd Milyar
#users ribuan ratusan
Mengapa memisahkan
data warehouse dengan database
operasional?
Mengapa Memisahkan
Data Warehouse dengan DB OLTP
• Kinerja harus yang tinggi untuk
kedua sistem
– DBMS dirancang untuk OLTP: indexing, concurrency, recovery
– Warehouse dirancang untuk OLAP query kompleks, view multi dimensi, konsolidasi
Mengapa memisahkan
Dw dan DB OLTP (lanj)
• Perbedaan fungsi dan data
– Decision support system membutuhkan data historis yang tidak ada di DBMS
– Konsolidasi data (agregasi dan rangkuman)
– Kualitas data (masalah konsistensi, format)
• Saat ini banyak sistem yang melakukan
OLAP pada DB biasa.
Implementasi
• Heterogen DBMS: query driven– Buat pembungkus/mediator di atas database
– Query diterjemahkan menjadi query yang mengakses DBMS yang terkait
– Filter informasi yang kompleks – Lambat
• Data warehouse: update-driven
– Informasi dari database yang heterogen telah digabung.
Pemodelan:
Data warehouse vs DB OLTP
• DB OLTP
Model Entitas Relationship (ER)
• Data warehouse
Multi-Dimensi Model
• Dimensi menjadi faktor yang
paling penting.
• Data dilihat dalam bentuk data
cube
Contoh Datacube
Tot penjualan tahunan TV Di U.S.A. Waktu Prod uk N ea ga ra sum sum TV VCRPC 1Qtr 2Qtr 3Qtr 4Qtr U.S.A Canada Mexico sum
Data Multidimensi
P ro du k Wila yahDimensi: Produk, Lokasi, Waktu Jalur rangkuman:
Industri Wilayah Tahun Kategori Negara Quarter
Produk Kota Bulan Minggu Kantor Hari
Data Cube
• Satu data cube, misalnya penjualan dapat dilihat dari berbagai dimensi:
– Tabel dimensi: misalnya, barang
(nama_barang, merk, tipe), waktu (hari, minggu, bulan, tahun)
– Tabel measures: uang yang terjual, jumlah barang yang terjual
Operator OLAP
• Rollup rangkum
• Drilldown kebalikan rollup
• Slice and Dice ambil dimensi yang
diinginkan
Model Konseptual Data Warehouse
• Star schema: tabel fakta dihubungkan dengan tabel dimensi
• Snowflake: perbaikan star schema, hirarki dimensi di normalisasi
• Fact constellations: multiple tabel fakta berbagi tabel dimensi
Contoh Star Schema
time_key day day_of_the_week month quarter year time location_key street city state_or_province country location Sales Fact Tabletime_key item_key branch_key location_key units_sold dollars_sold avg_sales item_key item_name brand type supplier_type item branch_key branch_name branch_type branch
Contoh Snowflake Schema
time_key day day_of_the_week month quarter year time location_key street city_key location Sales Fact Tabletime_key item_key branch_key location_key units_sold dollars_sold avg_sales item_key item_name brand type supplier_key item branch_key branch_name branch_type branch supplier_key supplier_type supplier city_key city city
Fact constellations
time_key day day_of_the_week month quarter year time location_key street city province_or_state country location Sales Fact Tabletime_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_type item branch_key branch_name branch_type branch
Shipping Fact Table time_key item_key shipper_key from_location to_location dollars_cost units_shipped shipper_key shipper
Hirarki Konsep: Dimension (lokasi)
Jabar Sumatera Selatan
Musi Palembang Kab Subang Kota Bandung x mm zz ... ... ... ... ... ... all propinsi Desa Kab/kota yy Sukawarna Kecamatan all
Star-Net Query
Shipping Method AIR-EXPRESS TRUCK ORDER Customer Orders CONTRACTS Customer Product PRODUCT GROUP PRODUCT LINE PRODUCT ITEM SALES PERSON DISTRICT DIVISION CITY COUNTRY REGION DAILY QTRLY ANNUALY TimeArsitektur Datawarehouse
• 4 sudut pandang dalam perancangan datawarehouse
– Data source view
• Informasi yang dikelola sistem operasional (db biasa, OLTP)
– Top-down view
• Informasi yang relevan untuk datawarehouse
– Data warehouse view
• Tabel fakta dan dimensi
– Business query view
Proses Perancangan DW
– Pilih proses bisnis yang akan dimodelkan, contoh: pesanan, tagihan dsb.
– Pilih data terkecil pada proses bisnis tersebut. Misal: record transaksi
– Pilih dimensi untuk tabel fakta
DW: Multi Tiered
Data Warehouse Extract Transform Load Refresh Analisis Query Reports Data mining Monitor & Integrator Metadata Serve Data Marts Operational DB Sumber lain OLAP ServerModel DW
• Enterprise warehouse
– Mengumpulkan semua informasi tentang subyek yang ada di organisasi
• Data Mart
– Subset untuk grup yang spesifik (misalnya marketing, keuangan)
• Virtual warehouse
– View dari operasional DB
Arsitektur OLAP server
• Relational OLAP (ROLAP)– Menggunakan relational atau extended-relational DBMS untuk menyimpan dan memanage warehouse dan OLAP
– Optimization DBMS, implementasi navigasi agregasi dan tools tambahan – Scalable.
• Multidimensional OLAP (MOLAP)
– Storage engine: sparse array-based
– Fast indexing, pre-computed summarized data
• Hybrid OLAP (HOLAP) (Microsoft SQLServer)
– Fleksibel. low level: relational, high-level: array
• Specialized SQL servers (Redbricks)