Data Warehouse Final : Fact Technique
Fact Technique of Data Warehouse
หลัีงจากที่ได้รู้เรื่อง dimension technique ก็มาถึงเรื่องของ fact technique กันบ้าง ซึ่งคราวนี้ก็รวบรวมและแสดงผลแบบเรียงตามตัวอักษมาเช่นเคย ตัวอย่างก็เช่น Conformed fact, Consolidated fact, Fact dimension for sparse fact ซึ่งก็เหมือนเคยนะคะ ถ้าหากเห็นว่าส่วนไหนออฟเข้าใจผิดไปแล้วก็รบกวนบอกกันด้วยนะคะ
Aggregated Fact
– เมื่อต้องการข้อมูลที่มี Granularity แตกต่างไปจากเดิม เราจึงสร้าง Aggregated Fact ขึ้นมา
– เมื่อนักวิเคราะห์ต้องการสอบถามข้อมูล (query) โดยไม่มีการกำหนดเงื่อนไขให้กับบางตาราง dimension แล้วในคลังข้อมูลมีแต่เฉพาะข้อมูลพื้นฐานเท่านั้น นั่นหมายความว่าการสอบถามข้อมูล (query) จะต้องทำการรวมข้อมูลภายในเรคคอร์ดจำนวนมากมาย ถ้าเป็นเช่นนี้จะทำให้การทำ query แต่ละครั้งเกิดการสิ้นเปลืองมาก ดังนั้นจึงต้องทำการรวบรวมหรือข้อสรุป (aggregate) ข้อมูลไว้ล่วงหน้าเพื่อเร่งให้การทำ query สามารถทำได้เร็วขึ้นมีประสิทธิภาพในการทำงานมากขึ้น การรวบรวมหรือข้อสรุป (aggregate) สามารถถูกสร้างได้มากมายตามที่ต้องการในเฉพาะส่วนที่ต้องการเท่านั้น
Aggregated Facts as Attributes (Unit 6)
– เป็นการรวบรวมค่า fact เป็น attribute โดยจะทำเมื่อต้องการใช้ attribute นั้นบ่อยๆและ attribute นั้นมีการอัพเดตอยู่เสมอ
– ตัวอย่างเช่น ในการใช้จ่ายสำหรับซื้อของ สมมติให้ลูกค้าที่มีการใช้จ่าย 50000-100000 แทนที่จะเก็บเป็นตัวเลขจำนวนเงิน ก็เก็บเป็นคำอธิบายแทน เช่น “High Spender”
Conformed fact (unit 15)
– การที่บริษัทมี business process หลายอย่าง ทำให้มี fact table หลาย fact table เราควรจะทำให้ fact tables เหล่านั้นสอดคล้องกัน เช่น หากมีการใช้ข้อมูลเดียวกันจากแหล่งเดียวกันควรกำหนดชื่อและนิยามให้ตรงกัน
Consolidated fact (Unit 7,15)
– เมื่อเราต้องการเปรียบเทียบค่าจากต่างตารางกัน ให้ทำการสร้างตาราง Fact ซึ่งเป็นตาราง Consolidated Fact โดยเราจะเก็บค่า measure จากทั้งสองตารางมาไว้ด้วยกัน โดยต้องมีการปรับเปลี่ยน Dimension เพื่อให้ Granularity เหมือนกันก่อน เมื่อเราปรับเรียบร้อยแล้วค่าในตารางนี้ก็ถูกต้อง เมื่อผู้จัดการต้องการดูก็สามารถเรียกดูได้จากตารางนี้ได้ทันที
– ข้อดีคือง่ายต่อการออก Report ให้ผู้จัดการดู
– ข้อเสียคือเราต้องทำการปรับเปลี่ยน Dimension เพื่อให้ Granularity เหมือนกัน ดังนั้นจะทำให้เราไม่สามารถดูข้อมูลบางอย่างที่เราไม่ได้นำมาเป็น Dimension ได้
– ข้อสำคัญของ Consolidated Fact Table ก็คือเมื่อเรานำค่า Measure มาจาก Business Process ที่ต่างกันเราต้องปรับให้ Dimension และ Granularity อยู่ในระดับเดียวกัน ค่าถึงจะถูกต้อง
Fact dimension for sparse fact (Unit 13)
– ใช้ในกรณีที่เราจะแสดง measurement ในหลายๆ format ก็ควรสร้าง dimension ขึ้นมาเพื่อป้องกันค่า null
– วิธีการนี้เป็นวิธีที่ดีมาก เพราะว่ามีความยืดหยุ่นสูง เราสามารถเพิ่มชนิดใหม่ของ measurement เข้าไปเพียงแค่เพิ่ม row ใหม่ใน fact dimension โดยไม่ต้องแก้ไขส่วนประกอบของ fact table
– เราจะกำจัดค่า null ในตำแหน่งของการออกแบบ fact table แบบเดิมได้ด้วยโดยจะมี row ปรากฏอยู่ก็ต่อเมื่อมี measurement อยู่
– อย่างไรก็ตาม การใช้ fact dimension อาจทำให้เกิด row ใหม่ๆ ใน fact table เช่น ถ้าเหตุการณ์ใดๆ ส่งผลต่อ 10 measurement ที่เป็นตัวเลขก็จะทำให้เกิด 10 row ขึ้นใน fact table แทนที่จะมีแถวเดียวเหมือนการออกแบบเดิม
Factless Fact Table
– บางครั้งใน fact table ก็ไม่จำเป็นต้องเป็นการวัดก็ได้ โดยจะเรียกว่า Factless ซึ่งจะเก็บ event ที่เกิดขึ้น
– เช่น count ในตาราง fact ซึ่งจะมีค่าเป็น 1 ตลอด ซึ่งไม่ต้องใส่ก็ได้
Semi-additive fact (unit 3)
– Semi-additive fact คือ fact ที่ sum ไม่ได้ทุก dimension เช่นพวก account balance, อุณหภูมิ โดยอาจจะใช้ Average ช่วย
– ตัววัดที่เก็บค่าจากตัวแปรเดิมตลอดเวลา เช่น ปริมาณสินค้าคงคลัง, ยอดเงินฝาก, ความหนาแน่นหรืออุณหภูมิห้อง ไม่ additive ตาม date dimension หรืออาจจะรวมถึงไม่ additive ตาม dimension อื่นๆ ด้วย หากต้องการแสดงค่าประเภทนี้ตามวันเวลาก็ควรจะใช้ค่าเฉลี่ยแทน
– ตัวอย่างเช่น ยอดเงินฝาก สมมติว่าวันจันทร์มีเงิน 50 บาท, วันอังคารมีเงินเท่าเดิม, วันพุธฝากเพิ่ม 50 บาืท ยอดเงินเพิ่มเป็น 100 บาท และไ่ม่มีการเปลี่ยนแปลงยอดเงินอีกเลยจนกระทั่งถึงวันศุกร์ คุณไม่สามารถกล่าวได้ว่ามีเงิน 400 บาท (50+50+100+100+100=400) วิธีที่ดีที่สุดในการรวมตัวเลขคือการหาค่าเฉลี่ย จากตัวอย่างจะได้เท่ากับ 80 บาท เป็นผลสรุปยอดฝากในสัปดาห์นั้น
Leave a comment