Introduction to Data Warehousing

Introduction to Data Warehousing (Class 2 : 16 Jun 09)*
*อ่านประกอบกับสไลด์ Intro_dw ของอาจารย์จะช่วยให้เข้าใจมากขึ้น

Different Information Worlds

Information organization

– Operational systems (Database) : เน้นเรื่องการเก็บข้อมูลทุก activity ในการทำงานต่างๆ
– Data warehouse (DW) : เน้นเรื่องการเอา information ออกมา ซึ่งอาจจะออกมาในรูปแบบของรายงานต่างๆ เพื่อมาช่วยในการประกอบการตัดสินใจเรื่องต่างๆ

Users of operational system

– เป็นพวกที่ทำให้องค์กรขับเคลื่อนไปได้ เช่น เราต้องลงทะเบียนให้มหาลัย มหาลัยจึงสามารถเปิดคลาสสอนได้
– เวลาใช้ระบบจะเข้าไปจัดการอะไรบางอย่างเพียง ทีละ record ส่วนใหญ่เป็นเพวก insert
– ส่วนมากจะเป็น operation เดิมๆ ซ้ำไปเรื่อยๆ

Users of data warehouse

– คนใช้เป็นคนเฝ้าดูว่าการขับเคลื่อนขององค์กรเป็นไปทางใด
– เวลามีคำถามเข้ามา จะทำทีละหลายๆ record เนื่องจากว่าต้องการข้อมูลจำนวนมากๆ ในการตอบคำถาม เช่น ทำยังไงให้ยอดขายสูงกว่าคู่แข่ง โดย อาจจะต้องเข้าไปดูข้อมูลเดิมเพื่อช่วยในการเสริมการขายแบบใหม่
– คำถามจะเปลี่ยนไปตามความต้องการของผู้ใช้

Data Warehouse users have very different needs than users of operational systems

– ต่่อไป data warehouse จะถูกใช้ในทุกกลุ่มของผู้ใช้ ไม่ได้ใช้สำหรับแ่ต่เฉพาะ manager เท่านั้น
– คนที่ใช้ data warehouse จะมีความต้องการต่างจาก operational system


Goals of Data Warehouse : วัตถุประสงค์

– ทำให้ทุกคนในองค์การเข้าถึงข้อมูลได้ง่าย โดยให้ไปดึงข้อมูลใน data warehouse ไม่ต้องวิ่งเข้าไปแย่ง processing time ของการทำงาน
– ข้อมูลที่เก็บต้องมาจากหลายๆแหล่ง เนื่องจากว่าในองค์กรมีหลายๆ ฐานข้อมูล
– ต้องรู้ให้ได้ว่าเมื่อเอาข้อมูลมาไว้ตรงกลางแล้ว ข้อมูลจะต้องไม่ขัดแย้งกับข้อมูลเดิม
– ข้อมูลจะต้องได้รับการปกป้องและมีการป้องกันความปลอดภัยด้วย ต้องมีการกำหนดสิทธิในการเข้าถึง
– ข้อมูลต้องถูกต้องเพื่อช่วยในการตัดสินใจ
– คนใช้ต้องยอมรับในคลังข้อมูล

Components of a Data Warehouse

Data Staging Area : โซนพักข้อมูล

– เป็นส่วนที่ให้ข้อมูลมาพักไว้ก่อนการทำงานต่อไป โดยจะมีการ clean, รวมข้อมูล, การทำให้เป็นมาตรฐาน
– เป็นทั้งส่วนการเก็บข้อมูลและเป็นส่วนของกระบวณการ ETL (extract-transformation-load)
– Extract : แตกข้อมูล, การพยายามเข้าไปอ่าน และพยายามเข้าใจถึงแหล่งข้อมูล
– Transformation : มีการเลือก,จัดการข้อมูลให้ Clean และมีการรวมกันของข้อมูลจากหลายๆแหล่ง
– Load : โหลดเข้าไปในคลังข้อมูล โดยจะโหลดเข้าไปใน dimension tables และ fact tables
– ปัจจุบันจะมีการใช้ Tool ช่วย เช่น SAS ซึ่งจะแพงมาก โดยจะช่วยให้เราสามารถเขียนสคริปแทรกเข้าไปได้ และรองรับฐานข้อมูลหลายรูปแบบ การที่ Tool มีราคาแพงเนื่องจากว่ามันจะช่วยในการเช็คความถูกต้องของข้อมูล และสกัดข้อมูลตามที่ต้องการ

Data Presentation Area (Data Warehouse)

– เราจะออกแบบการจัดเก็บข้อมูลยังไง
– เป็นโซนที่ข้อมูลจัดเก็บ
– data mart เป็น data warehouse ขนาดย่อย ซึ่งการที่ต้องแบ่งย่อยออกมาเพื่อการใช้งานได้สะดวกและกำหนดสิืทธิ์ของการ เข้าถึง หรืออาจจะแบ่งตาม business process ก็ได้
– เป็น Series ของ integrated data marts : แต่ละ mart ก็มีการแชร์ dimension ร่วมกัน
– อยู่ในรูปแบบของ dimension schema : ไม่ต้องอยู่ในรูปแบบที่ Normalization
– Normalized modeling ไม่เหมาะเพราะว่า มันยากเวลามีการเข้าถึงข้อมูล เพราะว่ามีการใช้หลายตาราง, ผู้ใช้จะเข้าใจได้ยาก Normalized modeling เหมาะสำหรับ operational processing performance
– เก็บข้อมูลลงใน Star Schema : เป็นลักษณะการออกแบบอย่างนึง

Data Mart

– เป็น data warehouse ขนาดเล็ก
– เป็นข้อมูลสำหรับ single business process : กระบวณการธุรกิจที่มาแยกออกมาเป็นส่วนย่อย เช่นดูเฉพาะเรื่องการขายเท่านั้น (1 mart ต่อ 1 business process)
– ในธุรกิจจะประกอบด้วยกระบวณการหลายๆกระบวณการ

Data Access Tools

– เครื่องมือที่ทำการดึงข้อมูล โดยสามารถที่จะเป็น ad hoc query หรือ data mining
– ac hoc query : คือการเป็น query ที่ไม่คาดคะเนมาก่อน เช่น อยู่ดีๆ ผู้บริหารเดินเข้ามาให้หาข้อมูลส่วนนั้นส่วนนี้ให้หน่อย ไม่ใช่ข้อมูลที่ถูกดึงมาประจำอย่างรายงานเงินเดือน

Metadata

– Metadata (data of data) เป็นอะไรก็ได้ที่ไม่ใช่้ data โดยจะอยู่ในหลายรูปแบบ
– ซึ่งมีไว้ช่วย  DW’s technical, administrative, business user group ในกา่รทำงาน
– ช่วยในการทำ ETL
– เช่น  System tables, partition settings, indexes, Guide the transformation and loading processes, Aggregation definitions

Dimensional Modeling Vocabulary

Data Design

1.Entity-Relationship Modeling
– ลดเรื่อง data redundency
– เน้นเรื่องให้สามาระการจัดการ transaction processing ได้เร็ว
2. Dimensional Modeling
– เป็นการออกแบบเพื่อเอามาใช้ในการพัฒนา data warehouse

Dimensional Modeling (star schema)

– มีองค์ประกอบสำคัญคือ
1. Dimensions : มุมมอง โดยจะต้องครอบคลุม requirement และ data source ทั้งหมด
2. Facts (measure) : หน่วยวัดประสิืทธิภาพของธุรกิจ
– ในมุมมองของผู้บริหารจะมองในมุมของ สินค้า, สถานที่, ช่วงเวลา
– ยิ่งมี หลาย Dimensions มาเกี่ยวข้อง ก็จะยิ่งยากที่จะเก็บทุกอย่างในตารางเดียว จึงมีการเสนอการเก็บอยู่ใน star schema
– star schema จะมี Fact Tables เก็บหน่วยวัดทางธุรกิจ, Dimension Tables เก็บ มุมมองทางธุรกิจ
– ถ้าเป็น basic start schema ความสัมพันธ์ ของ fact table กับ dimension table เป็น one-to-many

Fact Table

– มีส่วนประกอบด้วย  Foreign keys ที่เป็น composite key และส่วนที่เป็น measure
– เป็นที่ๆ เก็บหน่วยวัดที่เป็นตัวเลข ซึ่งจะช่วยในการ sum
– ในแต่ละการวัดที่เรา้้เก็บจะเป็น intersection ของ ทุกๆ dimension
– Fact เป็นตัวเลขที่ได้จากการวัดที่แสดง activity การขายที่เกิดขึ้นในเวลานั้น
– Fact สามารถได้มาจากการคำนวนหรือได้มาจาก run-time ซึ่งขึ้นกับ performance ของการเก็บ
– Fact table มีตั้งแต่ 2 FK ขึ้นไป
– โดยส่วนใหญ่ Key ของ fact table อาจจะเป็นการเอา FK มารวมกันหรือว่าจะเป็น key ทั้งหมดก็ได้ ( composite or concatenated key)
– สามารถประมาณพื้นที่ในการเก็บข้อมูลได้โดยดูจาก fact table

Dimension Tables

– สิ่งที่แตกต่างคือ Dimension table จะมีคอลัมน์ที่ยาว เพื่อที่จะตอบคำถามจากผู้บริหารได้ครอบคลุม ซึ่งก็มีการจำกัดในเรื่องของ data source ด้วย
– dimension table เป็นตัวช่วยอธิบายข้อมูลของ fact table
– ส่วนใหญ่แล้วข้อมูลจะเป็น text เกี่ยวกับการอธิบายทางธุรกิจ ซึ่งไม่ควรจะเป็นโค้ดหรือตัวย่อ
– dimension table เป็น denormalize เพราะว่าเราต้องการให้ข้อมูลอยู่ในตารางเดียวเลย ซึ่งช่วยให้ง่ายต่อการดึงข้อมูล
– dimension table ขนาดก็จะเล็กกว่า fact table โดยจำนวน record จะน้อยกว่าอย่างชัดเจน
– ถ้า dimension table ถูกแตกออกเป็นตารางย่อยจะเีรียกว่า snow flake schema
– Constellation schema คือมีการแตก fact table ออกมามากกว่า 1 ตาราง
– dimension table ทำให้คลังข้อมูลเราเข้าใจได้ง่ายมากขึ้น
– dimension table จะมีการแสดงข้อมูลเป็นลำดับขึ้น ( Time dimension: days > weeks > quarters)

หมายเหตุ : เป็นการเลคเชอร์ในห้องเรียนวิชา Data Warehouse

Leave a comment