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)

Consolidated_fact.jpg

– เมื่อเราต้องการเปรียบเทียบค่าจากต่างตารางกัน ให้ทำการสร้างตาราง 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)

Fact_dimension_for_sparse_fact.jpg

– ใช้ในกรณีที่เราจะแสดง 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

factless.jpg

– บางครั้งใน 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