9/7/2014
IN086 – Temu Pengetahuan 4. Model Data Warehouse 1
Penggunaan di Decision Support System •
DSS membantu knowledge worker membuat keputusan dengan lebih cepat dan lebih baik • •
•
“Bagaimana volume penjualan berdasarkan daerah dan produk pada tahun lalu ?” “Order mana saja yang harus dipenuhi supaya keuntungannya bisa maksimal ?”
OLAP adalah bagian dari DSS
2
1
9/7/2014
3-tier DSS
3
3-Tier DSS 1.
Warehouse DB Server
2.
OLAP Server
3.
Clients (tools)
4
2
9/7/2014
Arsitektur data warehouse : Pandangan Konseptual •
Pendekatan QD (Query-Driven) : Satu layer • •
•
Tiap elemen data hanya disimpan sekali Juga disebut Virtual warehouse
Pendekatan DW : 2 layer • •
Membedakan data real time dan data derived Paling banyak digunakan di industri
5
Arsitektur data warehouse : Pandangan Konseptual •
Pendekatan DW : 3 layer •
Transformasi data real-time ke data derived seringkali membutuhkan 2 langkah
6
3
9/7/2014
7
DW,DataMart,Virtual Warehouse •
Enterprise warehouse: berisi seluruh informasi tentang subyek – subyek yang meliputi seluruh organisasi. Mis. Produk, sales, customer, lokasi • •
•
Data Marts: Subset atau view secara departemen dari Enterprise Warehouse yang berfokus hanya pada subyek – subyek tertentu. • •
•
Butuh permodelan bisnis skala besar Desain dan pembangunannya bisa bertahun - tahun
Misal. Marketing data mart: customer, product, sales Dapat diimplementasikan tanpa Enterprise WH. Implikasi : lebih cepat, tetapi kompleks dalam integrasinya (dlm jangka panjang)
Virtual warehouse/QD: views dari sistem basis data operasional • •
Berisi berbagai view ringkasan untuk prosesing query yang efisien Mudah dibuat tetapi membutuhkan kapabilitas besar dari server basis data operasional
8
4
9/7/2014
OLAP untuk Pendukung Keputusan •
Menyediakan proses query yang cepat dan informal bagi analis bisinis dalam bentuk spreadsheet / kubus •
•
Misal. view sales data by geography, time, and/or product
Memperluas spreadsheet dan model analisis sehingga dapat bekerja dengan warehouse data Data set yang besar Dibuat sehingga dapat memahami terminologi – terminologi bisnis / logika bisnis dan dapat melakukan analisis statistik • Mengkombinasikan query interaktif dengan fungsi pelaporan • •
•
Multidimensional view of data adalah dasar OLAP, termasuk hierarchically structured domains •
Data model, operations, etc.
9
Feature (ideal) OLAP Tool •
Multidimensional Conceptual View
•
Intuitive Data Manipulation Accessibility: OLAP as a Mediator: •
•
Batch Extraction vs Interpretive: •
•
Kategorikal (parameterised static reporting), exegetical (browsing), contemplative (“what if?” analysis) and formulaic (goal seeking models)
Client Server Architecture: •
•
menyediakan fasilitas untuk menampilkan basis data untuk data OLAP data maupun akses langsung ke data eksternal
OLAP Analysis Models: •
•
OLAP engines sebagai middleware, berada di antara heterogeneous data sources/WH dan OLAP front-end
satu OLAP server dapat menangani banyak klien
dll
10
5
9/7/2014
Arsitektur dari OLAP Server •
•
•
Relational OLAP (ROLAP) •
Menggunakan sistem manajemen basis data (DBMS) relasional atau relasional yang diperluas untuk menyimpan dan mengelola data warehouse dan middleware dari OLAP
•
Termasuk optimalisasi dari backend DBMS, implementasi dari logika navigasi secara agregat, dan perangkat dan layanan – layanan tambahan
•
Tingkat skalabilitas lebih besar
Multidimensional OLAP (MOLAP) •
Mesin penyimpanan data multidimensi berbasis sparse array.
•
Indeksing secara cepat untuk data ringkasan yang di komputasi sebelumnya.
Hybrid OLAP (HOLAP) (contoh: Microsoft SQLServer) •
•
Fleksibilitas, contoh: tingkat rendah secara relasional, tingkat tinggi secara array
Specialized SQL servers (contoh Redbricks) •
Dukungan khusus untuk query SQL pada skema – skema star / snowflake
11
ROLAP
12
6
9/7/2014
Permasalahan dalam ROLAP •
Harus ada penanda level di tiap dimension
•
Tiap query harus menggunakan penanda level tersebut
13
14
7
9/7/2014
Keuntungan ROLAP •
Multi-dimensional data disajikan dengan sederhana
•
Jika menggunakan star, jumlah join yang harus ada relatif sedikit
•
Lebih low maintenance
•
Kelemahan : harus mengusahakan query optimization
15
ROLAP Server •
Relational OLAP Server
sale
prodId p1 p2 p1
date 1 1 2
sum 62 19 48
tools
utilities
ROLAP server
Indeks khusus, tuning; Skema di “denormalisasi”
relational DBMS
16
8
9/7/2014
MOLAP Server Multi-Dimensional OLAP Server M.D. tools
Sales B A Product
•
milk soda eggs soap
1
2 3 Date
4
utilities multidimensional server
Dapat juga Berada pada DBMS relasional
17
SQL Query untuk ROLAP SELECT D1.d1, …, Dk.dk, agg1(F.f1,) FROM Dimension D1, …, Dimension Dk, Fact F WHERE D1.key = F.key1 AND … AND Dk.keyk = F.keyk AND otherPredicates GROUP BY D1.d1, …, Dk.dk HAVING groupPredicates 18
9
9/7/2014
Toko
CONTOH
SumJumlah
Toko1
85
Toko2
120
•
Skema : • Fact : Sales, Dimensi : Produk, Toko, Waktu
•
Query RollUp : • Tampilkan jumlah produk terjual yang lebih besar dari 50 unit per toko
Hasil Query : Query : SELECT t.kodet, sum(s.jmlunit)as SumJumlah FROM toko t, sales s WHERE t.kodet = s.kodet GROUP BY t.kodet HAVING sum(s.jmlunit) > 50
19
MDX Query untuk MOLAP •
MDX = Multidimensional Expression
•
FORMAT Query :
[WITH [MEMBER <member-name> AS ’
’ | SET <set-name> AS ’<set-expression>’] . . .] SELECT [ [, ...]] FROM [<cube_specification>] [WHERE [<slicer_specification>]]
20
10
9/7/2014
P100 P110 P120
CONTOH MDX •
Cube : Jualan, Dimensi : Produk, Time
•
Query : •
1
50
30
25
2
20
25
20
3
30
45
35
tampilkan total Count Jual untuk Produk 100 sampai dengan 150 untuk setiap bulan
•
Hasil Query :
•
MDX :
with member [Produk].[Produk].Roll_Up as ' Sum( {[Produk].[Produk].[100] : [Produk].[Produk].[120]})' select { [Produk].[Produk].Roll_Up } on columns, {[Time New].[Month Of Year].members } on rows from Jualan
21
Struktur Indeks •
Metode akses tradisional •
•
B-trees, hash tables, R-trees, grids, …
Populer di Warehouses • • • •
inverted lists bit map indexes join indexes text indexes
22
11
9/7/2014
Inverted Lists 18 19
20 21 22
23 25 26
r4 r18 r34 r35 r5 r19 r37 r40
inverted lists
age index
rId r4 r18 r19 r34 r35 r36 r5 r41
name joe fred sally nancy tom pat dave jeff
age 20 20 21 20 20 25 21 26
...
20 23
data records
23
Penggunaan Inverted Lists •
Query: •
Cari orang dengan age = 20 dan name = “fred”
•
List for age = 20: r4, r18, r34, r35
•
List for name = “fred”: r18, r52
•
Answer is intersection: r18
24
12
9/7/2014
Bit Maps
20 23
20 21 22
1 1 0 1 1 0 0 0 0
23 25 26
age index
0 0 1 0 0 0 1 0 1 1
id 1 2 3 4 5 6 7 8
bit maps
name joe fred sally nancy tom pat dave jeff
age 20 20 21 20 20 25 21 26
...
18 19
data records
25
Menggunakan Bit Maps •
Query: •
Cari orang dengan age = 20 dan name = “fred”
•
List for age = 20: 1101100000
•
List for name = “fred”: 0100000001
•
Answer is intersection: 010000000000
Bagus jika kardinalitas domain kecil Bit vektor dapat dikompresi
26
13
9/7/2014
Join Indexes join index product
sale
id p1 p2
rId r1 r2 r3 r4 r5 r6
name price bolt 10 nut 5
prodId p1 p2 p1 p2 p1 p1
jIndex r1,r3,r5,r6 r2,r4
storeId c1 c1 c3 c2 c1 c2
date 1 1 1 1 2 2
amt 12 11 50 8 44 4
27
Desain Data Warehouse •
Apa data yang dibutuhkan?
•
Dimanakah sumber datanya?
•
Bagaimana membersihkan data?
•
Bagaimana merepresentasikan dalam Warehouse (skema)?
•
Apa yang dirangkum?
•
Apa yang dimaterialkan?
•
Apa yang diindeks? 28
14
9/7/2014
Perangkat Data Warehouse •
Pengembangan •
•
Perencanaan dan Analisis •
•
Skenario What-if (perubahan skema, lajur refresh), perencanaan kapasitas
Manajemen Warehouse •
•
Desain dan edit: skema, tampilan, skrip, aturan, kueri, laporan
Monitoring kinerja, pola – pola pemakaian, laporan pengecualian (exception)
Manajemen aliran (workflow) •
Skrip yang handal untuk pembersihan dan analisa data
29
15