Data warehouse

8,499 views
8,317 views

Published on

data warehouse from A to Z

Published in: Education
4 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
8,499
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
943
Comments
4
Likes
5
Embeds 0
No embeds

No notes for slide

Data warehouse

  1. 1. DATA WAREHOUSE Presented by : Helmy Faisal M Adam Mukharil B Adib Toriq
  2. 2. 1. Why we need data warehouse? 2. Konsep data warehouse. 3. Data Transformation. 4. Perancangan data warehouse. 5. Query Language dan OLAP.
  3. 3. Why we need Data Warehouse
  4. 4. Fenomena Di Dunia Nyata
  5. 5. 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 ..
  6. 6. Fenomena Di Dunia Nyata Saya butuh data yang konsisten untuk mengambil keputusan strategi bisnis perusahaan di masa yang akan datang !!
  7. 7. Fenomena Di Dunia Nyata (cont’d)
  8. 8. Fenomena Di Dunia Nyata (cont’d)
  9. 9. Gimana caranya saya bisa dapat data yang saya butuhkan ?? Fenomena Di Dunia Nyata (cont’d)
  10. 10. 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.
  11. 11. Fenomena Di Dunia Nyata (cont’d) Jakarta Bandung Palembang Penjulan per item per cabang untuk kurun waktu pertama Manajer Penjualan Papua
  12. 12. GoT Corp butuh solusi !!
  13. 13. Solusi Permasalahan 1 Jakarta Bandung Papua Palembang Data Warehouse Manajer Penjualan Query & Analisis tools Laporan
  14. 14. Solusi Permasalahan 2 Database Operasional Cabang ... Data Warehouse Extract data Operator Data Entry Operator Data Entry Manajer Penjualan Laporan Transaksi
  15. 15. Kesimpulan GoT Corp butuh data warehouse
  16. 16. Konsep Data Warehouse
  17. 17. 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]
  18. 18. 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]
  19. 19. 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]
  20. 20. 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.
  21. 21. Subject Oriented (cont’d)
  22. 22. Integrated 1. Data warehouse dikonstruksikan dengan cara mengintegrasikan sejumlah sumber data yang berbeda. 2. Data preprocessing diaplikasikan untuk meyakinkan kekonsistensian data.
  23. 23. Integrated (cont’d) Trust Credit cardSavings Loans Same data different name Different data Same name Data found here nowhere else Different keys same data
  24. 24. Integrated (cont’d) Encoding Structures Measurement of attributes Multiple Sources Data Type Formats
  25. 25. 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
  26. 26. Time-Variant 1. Menghasilkan informasi dari sudut pandang historical (misal: 5-10 tahun yang lalu). 2. Setiap struktur kunci mengandung elemen waktu.
  27. 27. Time-Variant (cont’d)
  28. 28. Time-Variant (cont’d)
  29. 29. 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
  30. 30. Nonvolatile (cont’d)
  31. 31. Membentuk Data Warehouse Data Source cleaning Transformation Data Warehouse New Update
  32. 32. 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.
  33. 33. Arsitektur Data Warehouse (cont’d) 3. Clients a. Tools untuk Query dan Pelaporan b. Tools untuk menganalisis c. Tools untuk data mining.
  34. 34. Arsitektur Data Warehouse (cont’d) 4. Metadata Repository Tempat menyimpan informasi tentang data yang ada di datawarehouse.
  35. 35. Arsitektur Data Warehouse (cont’d) Data Warehouse Engine Optimized Loader Extraction Cleansing Metadata Repository Relational Databases Legacy Data Purchased Data ERP Systems Analyze Query
  36. 36. Data Transformation
  37. 37. Data Transformation Fase yang terjadi ketika mengintegrasikan data ke dalam data warehouse.
  38. 38. 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
  39. 39. Extracting 1. Mengambil data dari sumber operational dalam “as is” status. 2. Sumber-sumber data berasal dari mainframes yang hampir seluruhnya berupa database relasional.
  40. 40. Conditioning Perubahan tipe data dari sumber data ke target data (data warehouse) tetap dalam bentuk database relasional.
  41. 41. Scrubbing 1. Digunakan untuk “membersihkan”/meningkatkan kualitas data. 2. Contoh: Adam M.B., Adam MB, Adam Mukharil B. Adalah orang yang sama.
  42. 42. Scrubbing (cont’d)
  43. 43. Merging Proses penggabungan data dengan memperhatikan aturan-aturan dalam mengintegrasikan data.
  44. 44. 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.
  45. 45. Householding (cont’d)
  46. 46. Enrichment Mengambil data dari sumber data eksternal (di luar data source yang seharusnya) untuk memperkaya data operasional yang sudah ada.
  47. 47. Scoring Komputasi probabilitas tentang sebuah event, sebagai contoh menghitung kemungkinan pelanggan membeli produk baru.
  48. 48. Loading 1. Proses menambah atau menyisipkan data baru. 2. Teknik: a. Menggunakan SQL untuk menambah atau menyisipkan data baru b. Menggunakan batch load utility.
  49. 49. Validating Proses pemeriksaan kebenaran suatu data yang dihasilkan dari penggabungan.
  50. 50. Delta Updating Proses update yang hanya akan mengupdate data baru saja tanpa menghasilkan duplikasi record.
  51. 51. 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.
  52. 52. 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.
  53. 53. Bagaimana Teknik untuk Refresh? 1. Full extract dari tabel-tabel dasar Kekurangan: a. “Mahal” b. Hanya untuk “legacy systems”. 2. Mendeteksi perubahan.
  54. 54. 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.
  55. 55. Perancangan Data Warehouse
  56. 56. Pendekatan Perancangan 1. Pendekatan normalisasi 2. Pendekatan dimensional.
  57. 57. Pendekatan Perancangan 1. Pendekatan normalisasi 2. Pendekatan dimensional.
  58. 58. 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.
  59. 59. 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.
  60. 60. Mana Yang Digunakan??? Pendekatan dimensional lebih sering digunakan walaupun terkadang di dalam pendekatannya tetap membutuhkan normalisasi.
  61. 61. 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.
  62. 62. 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.
  63. 63. 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.
  64. 64. 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 dimensiInfo Agen . . .. . .. . .. . . Tabel-tabel dimensi Tabel fakta
  65. 65. Skema Data Warehouse 1. Skema Star. 2. Skema Fact Constellation. 3. Skema Snowflake
  66. 66. 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.
  67. 67. 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
  68. 68. 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
  69. 69. 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.
  70. 70. Skema Fact Constellation (cont’d) Hotels Travel Agents Promotion Room Type Customer Booking Checkout
  71. 71. 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
  72. 72. 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.
  73. 73. 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
  74. 74. 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
  75. 75. Query Language & OLAP
  76. 76. Keterbatasan SQL Mari kita lihat tabel penjualan berikut:
  77. 77. Keterbatasan SQL (cont’d) Berikutnya kita lihat tabel produk:
  78. 78. Keterbatasan SQL (cont’d) Berikutnya... Tabel Gudang:
  79. 79. Keterbatasan SQL (cont’d) Terakhir... Tabel Kota:
  80. 80. Keterbatasan SQL (cont’d) ERD:
  81. 81. 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?
  82. 82. 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
  83. 83. PEMECAHAN O L A P (Online Analytical Processing)
  84. 84. 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).
  85. 85. 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 4 p2 s1 s2 s3 p1 12 50 p2 11 8 tgl 1
  86. 86. 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
  87. 87. Slicing and Dicing Mengambil potongan kubus berdasarkan nilai tertentu pada satu dimensi atau beberapa dimensinya.
  88. 88. Slicing and Dicing (cont’d) tgl 2 s1 s2 s3 p1 44 4 p2 s1 s2 s3 p1 12 50 p2 11 8 tgl 1 s1 s2 s3 p1 12 50 p2 11 8 WAKTU = tanggal 1
  89. 89. Pivoting 1. Menampilkan nilai-nilai ukuran dalam tata letak tabel yang berbeda. 2. Mengatur kembali dimensi dalam sebuah kubus data.
  90. 90. Pivoting (cont’d)
  91. 91. 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
  92. 92. Roll Up 1. Generalisasi satu atau beberapa dimensi dengan merangkum nilai-nilai ukurannya 2. Generalisasi: naik ke tingkat yang lebih umum dalam hirarki dimensi.
  93. 93. Roll Up (cont’d) tgl 2 s1 s2 s3 p1 44 4 p2 s1 s2 s3 p1 12 50 p2 11 8 tgl 1 s1 s2 s3 p1 56 4 50 p2 11 8 s1 s2 s3 sum 67 12 50 sum p1 110 p2 19 129 . . . Contoh: penghitungan total
  94. 94. Drill Down 1. Mendapatkan lebih detail tentang dimensi. 2. Navigasi dari tingkat yang lebih umum ke tingkat yang lebih spesifik.
  95. 95. Drill Down (cont’d)
  96. 96. Data Agregat 1. Penggabungan beberapa data yang digunakan untuk mempermudah pembuatan query. 2. Data agregat disimpan dalam tabel fakta.
  97. 97. Data Agregat (cont’d) * s1 s2 s3 * p1 56 4 50 110 p2 11 8 19 * 67 12 50 129 tgl 2 s1 s2 s3 * p1 44 4 48 p2 * 44 4 48 s1 s2 s3 * p1 12 50 62 p2 11 8 19 * 23 8 50 81 tgl 1 penjualan(*,p2,*)
  98. 98. Query Operation 1. Create Dimension 2. Pengelompokkan Cube (kubus) 3. Operator Analisis
  99. 99. Create Dimension Ditujukan untuk pembuatan dimensi, penentuan dimensi yang spesifik dan general.
  100. 100. 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
  101. 101. Pengelompokan Data Cube Pengelompokan data dalam kubus dimensional untuk mempermudah analisis data.
  102. 102. 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)
  103. 103. 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
  104. 104. 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 12 p2 s1 1 11 p1 s3 1 50 p2 s2 1 8 p1 s1 2 44 p1 s2 2 4
  105. 105. Question PLEASE!!!

×