การสร้างแบบจําลองมิติใน Microsoft Fabric Warehouse: ตารางข้อเท็จจริง
นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric
หมายเหตุ
บทความนี้เป็นส่วนหนึ่งของ ชุดการสร้าง แบบจําลองมิติของบทความ ชุดข้อมูลนี้มุ่งเน้นไปที่คําแนะนําและแนวทางปฏิบัติที่ดีที่สุดในการออกแบบที่เกี่ยวข้องกับการสร้างแบบจําลองเชิงมิติใน Microsoft Fabric Warehouse
บทความนี้ให้คําแนะนําและแนวทางปฏิบัติที่ดีที่สุดสําหรับการออกแบบ ตารางข้อเท็จจริง ในแบบจําลองมิติ ซึ่งมีคําแนะนําในทางปฏิบัติสําหรับ Warehouse ใน Microsoft Fabric ซึ่งเป็นประสบการณ์ที่สนับสนุนความสามารถ T-SQL จํานวนมาก เช่น การสร้างตารางและการจัดการข้อมูลในตาราง ดังนั้น คุณจึงสามารถควบคุมการสร้างตารางแบบจําลองมิติของคุณและโหลดข้อมูลได้อย่างสมบูรณ์
หมายเหตุ
ในบทความนี้ คําว่า คลัง ข้อมูลหมายถึงคลังข้อมูลองค์กร ซึ่งนําเสนอการรวมที่ครอบคลุมของข้อมูลที่สําคัญทั่วทั้งองค์กร ในทางตรงกันข้าม คําว่าคลังสินค้าแบบสแตนด์อโลนหมายถึง Fabric Warehouse ซึ่งเป็นซอฟต์แวร์ที่เป็นบริการฐานข้อมูลเชิงสัมพันธ์ (SaaS) ที่คุณสามารถใช้เพื่อใช้คลังข้อมูลได้ เพื่อความชัดเจน ในบทความนี้จะมีการกล่าวถึงอย่างหลังเป็น Fabric Warehouse
เคล็ดลับ
หากคุณไม่มีประสบการณ์ด้านการสร้างแบบจําลองมิติ ให้พิจารณาชุดบทความนี้ในขั้นตอนแรกของคุณ ซึ่งไม่ได้มีไว้เพื่อการสนทนาที่สมบูรณ์เกี่ยวกับการออกแบบแบบจําลองเชิงมิติ สําหรับข้อมูลเพิ่มเติม ให้ดูที่เนื้อหาที่เผยแพร่ที่ปรับใช้อย่างกว้างขวางโดยตรง เช่น ชุดเครื่องมือคลังข้อมูล: คําแนะนําในการสร้างแบบจําลอง เชิงมิติฉบับสมบูรณ์ (รุ่นที่ 3, 2013) โดย Ralph Kimball และอื่น ๆ
ในแบบจําลองมิติ ตารางข้อเท็จจริงจะจัดเก็บการวัดที่เกี่ยวข้องกับการสังเกตการณ์หรือเหตุการณ์ ซึ่งสามารถจัดเก็บคําสั่งซื้อ ยอดคงเหลือสินค้าคงคลัง อัตราแลกเปลี่ยน การอ่านอุณหภูมิ และอื่น ๆ
ตารางข้อเท็จจริงประกอบด้วยหน่วยวัด ซึ่งโดยทั่วไปคือคอลัมน์ตัวเลข เช่น ปริมาณใบสั่งขาย คิวรีการวิเคราะห์จะสรุปหน่วยวัด (โดยใช้ผลรวม จํานวนนับ ค่าเฉลี่ย และฟังก์ชันอื่น ๆ) ภายในบริบทของตัวกรองมิติและการจัดกลุ่ม
ตารางข้อเท็จจริงยังรวมถึงคีย์มิติ ซึ่งกําหนด มิติ ของข้อเท็จจริงด้วย ค่าคีย์มิติจะ กําหนดส่วนประกอบ ของข้อเท็จจริง ซึ่งเป็นระดับอะตอมที่กําหนดค่าความจริง ตัวอย่างเช่น คีย์มิติวันที่สั่งซื้อในตารางข้อเท็จจริงด้านการขายจะตั้งค่าส่วนประกอบของข้อเท็จจริงในระดับวันที่ ในขณะที่คีย์มิติวันที่เป้าหมายในตารางข้อเท็จจริงเป้าหมายการขายสามารถตั้งค่าส่วนประกอบในระดับไตรมาสได้
หมายเหตุ
ในขณะที่เป็นไปได้ที่จะจัดเก็บข้อเท็จจริงในระดับที่สูงขึ้น แต่ก็ไม่ใช่เรื่องง่ายที่จะแยกค่าหน่วยวัดเพื่อลดระดับของส่วนประกอบ (ถ้าจําเป็น) ปริมาณข้อมูลที่หลากหลายพร้อมกับข้อกําหนดการวิเคราะห์อาจมีเหตุผลที่ถูกต้องในการจัดเก็บข้อเท็จจริงเกี่ยวกับส่วนประกอบที่สูงขึ้น แต่มีค่าใช้จ่ายในการวิเคราะห์โดยละเอียด
เพื่อระบุตารางข้อเท็จจริงได้อย่างง่ายดาย โดยทั่วไปแล้วคุณจะใส่คํานําหน้าชื่อด้วย f_
หรือFact_
โครงสร้างตารางข้อเท็จจริง
เมื่อต้องการอธิบายโครงสร้างของตารางข้อเท็จจริง ให้พิจารณาตัวอย่างต่อไปนี้ของตารางข้อเท็จจริงการขายที่ชื่อว่าf_Sales
ตัวอย่างนี้ใช้แนวทางปฏิบัติในการออกแบบที่ดี แต่ละกลุ่มของคอลัมน์จะอธิบายไว้ในส่วนต่อไปนี้
CREATE TABLE f_Sales
(
--Dimension keys
OrderDate_Date_FK INT NOT NULL,
ShipDate_Date_FK INT NOT NULL,
Product_FK INT NOT NULL,
Salesperson_FK INT NOT NULL,
<…>
--Attributes
SalesOrderNo INT NOT NULL,
SalesOrderLineNo SMALLINT NOT NULL,
--Measures
Quantity INT NOT NULL,
<…>
--Audit attributes
AuditMissing BIT NOT NULL,
AuditCreatedDate DATE NOT NULL,
AuditCreatedBy VARCHAR(15) NOT NULL,
AuditLastModifiedDate DATE NOT NULL,
AuditLastModifiedBy VARCHAR(15) NOT NULL
);
คีย์หลัก
ในกรณีตัวอย่าง ตารางข้อเท็จจริงตัวอย่างไม่มี คีย์หลัก นั่นเป็นเพราะโดยทั่วไปแล้วมันไม่ได้ทําหน้าที่เพื่อวัตถุประสงค์ที่มีประโยชน์และจะเพิ่มขนาดตารางที่เก็บข้อมูลโดยไม่จําเป็น คีย์หลักมักจะโดยนัยโดยชุดของคีย์มิติและแอตทริบิวต์
คีย์มิติ
ตารางข้อเท็จจริงตัวอย่างมีคีย์มิติต่าง ๆ ซึ่งกําหนดมิติของตารางข้อเท็จจริง คีย์มิติคือการอ้างอิงถึงคีย์ตัวแทน (หรือแอตทริบิวต์ระดับสูงกว่า) ในมิติที่เกี่ยวข้อง
หมายเหตุ
เป็นตารางข้อเท็จจริงที่ผิดปกติซึ่งไม่มีคีย์มิติวันที่อย่างน้อยหนึ่งรายการ
ตารางข้อเท็จจริงสามารถอ้างอิงมิติได้หลายครั้ง ในกรณีนี้ จะเรียกว่า มิติการเล่นตามบทบาท ในตัวอย่างนี้ ตารางข้อเท็จจริงมีOrderDate_Date_FK
คีย์มิติ และShipDate_Date_FK
คีย์มิติแต่ละคีย์แสดงถึงบทบาทที่แตกต่างกัน แต่มีมิติวันที่จริงเพียงมิติเดียวเท่านั้น
การตั้งค่าแต่ละคีย์มิติเป็น NOT NULL
แนวทางปฏิบัติที่ดี ในระหว่างการโหลดตารางสําหรับเก็บข้อมูลข้อเท็จจริง คุณสามารถใช้ สมาชิก มิติพิเศษเพื่อแสดงสถานะที่ขาดหายไป ไม่ทราบ หรือ N/A หรือข้อผิดพลาด (หากจําเป็น)
แอตทริบิวต์
ตารางข้อเท็จจริงตัวอย่างมีสองแอตทริบิวต์ แอตทริบิวต์ให้ข้อมูลเพิ่มเติมและตั้งค่าส่วนประกอบของข้อมูลข้อเท็จจริง แต่ไม่ใช่คีย์มิติหรือแอตทริบิวต์มิติ หรือหน่วยวัด ในตัวอย่างนี้ คอลัมน์แอตทริบิวต์จัดเก็บข้อมูลคําสั่งซื้อ ตัวอย่างอื่น ๆ อาจรวมถึงหมายเลขการติดตามหรือหมายเลขตั๋ว สําหรับวัตถุประสงค์ในการวิเคราะห์ แอตทริบิวต์อาจก่อให้เกิด มิติลดรูปได้
การวัด
ตารางข้อเท็จจริงตัวอย่างยังมี หน่วยวัดเช่น Quantity
คอลัมน์ โดยทั่วไปแล้วคอลัมน์หน่วยวัดจะบวกและเป็นตัวเลข (ซึ่งหมายความว่าสามารถบวกและสรุปได้โดยการใช้การรวมอื่น ๆ) สําหรับข้อมูลเพิ่มเติม โปรดดู ชนิด หน่วยวัดในภายหลังในบทความนี้
แอตทริบิวต์การตรวจสอบ
ตารางข้อเท็จจริงตัวอย่างยังมีแอตทริบิวต์การตรวจสอบต่าง ๆ แอตทริบิวต์การตรวจสอบเป็นทางเลือก ซึ่งช่วยให้คุณสามารถติดตามช่วงเวลาและวิธีการสร้างหรือปรับเปลี่ยนระเบียนข้อเท็จจริง และสามารถรวมข้อมูลการวินิจฉัยหรือการแก้ไขปัญหาที่เกิดขึ้นในระหว่างกระบวนการแยก แปลง และโหลด (ETL) ได้ ตัวอย่างเช่น คุณจะต้องติดตามบุคคลที่ (หรือกระบวนการใด) อัปเดตแถว และเมื่อใด แอตทริบิวต์การตรวจสอบยังสามารถช่วยวินิจฉัยปัญหาที่ท้าทายเช่นเมื่อกระบวนการ ETL หยุดทํางานโดยไม่คาดคิด
ขนาดตารางข้อเท็จจริง
ตารางข้อเท็จจริงมีขนาดแตกต่างกัน ขนาดของหน่วยวัดสอดคล้องกับมิติ ส่วนประกอบ จํานวนหน่วยวัด และจํานวนประวัติ เมื่อเปรียบเทียบกับตารางมิติ ตารางข้อเท็จจริงจะแคบกว่า (คอลัมน์น้อยลง) แต่ใหญ่ หรือแม้แต่อย่างมาก ในแง่ของแถว (ในส่วนที่เกินพันล้าน)
แนวคิดการออกแบบข้อเท็จจริง
ส่วนนี้อธิบายแนวคิดการออกแบบข้อเท็จจริงต่าง ๆ
ชนิดตารางข้อเท็จจริง
มีตารางข้อเท็จจริงสามชนิด:
- ตารางข้อเท็จจริงของธุรกรรม
- ตารางข้อเท็จจริงสแนปช็อตเป็นครั้งคราว
- การสะสมตารางข้อเท็จจริงสแนปช็อต
ตารางข้อเท็จจริงของธุรกรรม
ตารางข้อเท็จจริงของธุรกรรมจัดเก็บเหตุการณ์หรือธุรกรรมทางธุรกิจ แต่ละแถวจัดเก็บข้อเท็จจริงในแง่ของคีย์มิติและหน่วยวัด และเลือกแอตทริบิวต์อื่น ๆ ข้อมูลทั้งหมดเป็นที่รู้จักทั้งหมดเมื่อแทรกและจะไม่เปลี่ยนแปลง (ยกเว้นเพื่อแก้ไขข้อผิดพลาด)
โดยทั่วไปแล้ว ตารางข้อเท็จจริงของธุรกรรมจะจัดเก็บข้อเท็จจริงในระดับความละเอียดต่ําสุดที่เป็นไปได้ และประกอบด้วยหน่วยวัดที่ บวกกัน ในทุกมิติ ตารางข้อเท็จจริงด้านการขายที่จัดเก็บบรรทัดคําสั่งขายทุกบรรทัดเป็นตัวอย่างที่ดีของตารางข้อเท็จจริงเกี่ยวกับธุรกรรม
ตารางข้อเท็จจริงสแนปช็อตเป็นครั้งคราว
ตารางข้อเท็จจริงสแนปช็อตเป็นระยะ ๆ จัดเก็บการวัดณ เวลาที่กําหนดไว้ล่วงหน้าหรือช่วงเวลาเฉพาะ ซึ่งจะให้ข้อมูลสรุปของเมตริกหลักหรือตัวบ่งชี้ประสิทธิภาพเมื่อเวลาผ่านไป ดังนั้นจึงเป็นประโยชน์สําหรับการวิเคราะห์แนวโน้มและการตรวจสอบการเปลี่ยนแปลงเมื่อเวลาผ่านไป หน่วยวัดเป็นแบบกึ่งบวกเสมอ (อธิบายในภายหลัง)
ตารางข้อเท็จจริงเกี่ยวกับสินค้าคงคลังเป็นตัวอย่างที่ดีของตารางสแนปช็อตเป็นครั้งคราว มันโหลดทุกวันด้วยยอดคงเหลือสต็อกสิ้นสุดวันของผลิตภัณฑ์ทั้งหมด
สามารถใช้ตารางสแนปช็อตเป็นครั้งคราวแทนตารางข้อเท็จจริงของธุรกรรมเมื่อบันทึกธุรกรรมจํานวนมากมีราคาแพงและไม่สนับสนุนข้อกําหนดการวิเคราะห์ที่มีประโยชน์ ตัวอย่างเช่น อาจมีการเคลื่อนไหวของสต็อกนับล้านรายการในหนึ่งวัน (ซึ่งสามารถจัดเก็บไว้ในตารางข้อเท็จจริงของธุรกรรม) แต่การวิเคราะห์ของคุณเกี่ยวข้องกับแนวโน้มของระดับสต็อกเมื่อสิ้นสุดวันเท่านั้น
การสะสมตารางข้อเท็จจริงสแนปช็อต
ตารางข้อเท็จจริงการสะสมสแนปช็อตจะจัดเก็บการวัดที่สะสมในรอบระยะเวลาหรือเวิร์กโฟลว์ที่กําหนดไว้อย่างดี ซึ่งมักจะบันทึกสถานะของกระบวนการทางธุรกิจในลําดับขั้นที่แตกต่างกันหรือหลักเป้าหมาย ซึ่งอาจใช้เวลาหลายวัน สัปดาห์ หรือเดือนเพื่อให้เสร็จสมบูรณ์
แถวข้อเท็จจริงจะถูกโหลดเร็วๆ นี้หลังจากเหตุการณ์แรกในกระบวนการ และจากนั้นแถวจะได้รับการอัปเดตในลําดับที่สามารถคาดการณ์ได้ทุกครั้งที่มีเหตุการณ์หลักเป้าหมายเกิดขึ้น การอัปเดตจะดําเนินการต่อจนกว่ากระบวนการจะเสร็จสมบูรณ์
การสะสมตารางข้อเท็จจริงสแนปช็อตมีคีย์มิติวันที่หลายคีย์ ซึ่งแต่ละคีย์แสดงถึงเหตุการณ์หลักเป้าหมาย คีย์มิติบางอย่างอาจบันทึก สถานะ N/A จนกว่ากระบวนการจะมาถึงเหตุการณ์สําคัญบางอย่าง การวัดผลโดยทั่วไปแล้วจะบันทึกระยะเวลา ระยะเวลาระหว่างหลักเป้าหมายสามารถให้ข้อมูลเชิงลึกที่มีประโยชน์ในเวิร์กโฟลว์ทางธุรกิจหรือกระบวนการประกอบ
ชนิดหน่วยวัด
โดยทั่วไปแล้วหน่วยวัดเป็นตัวเลขและบวกได้ทั่วไป อย่างไรก็ตาม ไม่สามารถเพิ่มหน่วยวัดบางตัวได้เสมอ หน่วยวัดเหล่านี้จะถูกจัดประเภทเป็นกึ่งบวกหรือไม่บวก
หน่วยวัดเสริม
สามารถรวมหน่วยวัดเสริมในมิติใดก็ได้ ตัวอย่างเช่น ปริมาณการสั่งซื้อและรายได้จากการขายเป็นหน่วยวัดเสริม (โดยมีการบันทึกรายได้เป็นสกุลเงินเดียว)
หน่วยวัดแบบกึ่งบวก
สามารถรวมหน่วยวัดแบบกึ่งบวกได้ในบางมิติเท่านั้น
นี่คือตัวอย่างบางส่วนของหน่วยวัดแบบกึ่งบวก
- หน่วยวัดใด ๆ ในตารางข้อเท็จจริงสแนปช็อตเป็นระยะ ไม่สามารถหาผลรวมในช่วงเวลาอื่น ๆ ได้ ตัวอย่างเช่น คุณไม่ควรรวมอายุของสินค้าคงคลังที่สุ่มตัวอย่างทุกคืน แต่คุณสามารถรวมอายุของรายการสินค้าคงคลังทั้งหมดบนชั้นวางแต่ละคืน
- หน่วยวัดยอดคงเหลือสินค้าคงคลังในตารางข้อเท็จจริงสินค้าคงคลังไม่สามารถหาผลรวมในผลิตภัณฑ์อื่น ๆ ได้
- รายได้การขายในตารางข้อเท็จจริงเกี่ยวกับการขายที่มีคีย์มิติสกุลเงินไม่สามารถหาผลรวมข้ามสกุลเงินได้
หน่วยวัดที่บวกไม่ได้
ไม่สามารถรวมหน่วยวัดที่ไม่ใช่แบบบวกในมิติใด ๆ ได้ ตัวอย่างหนึ่งคือการอ่านอุณหภูมิซึ่งโดยธรรมชาติไม่สมเหตุสมผลที่จะเพิ่มการอ่านค่าอื่น ๆ
ตัวอย่างอื่น ๆ ได้แก่ อัตรา เช่น ราคาต่อหน่วย และอัตราส่วน อย่างไรก็ตาม ถือว่าเป็นแนวทางปฏิบัติที่ดีกว่าในการจัดเก็บค่าที่ใช้ในการคํานวณอัตราส่วน ซึ่งอนุญาตให้มีการคํานวณอัตราส่วนหากจําเป็น ตัวอย่างเช่น สามารถจัดเก็บเปอร์เซ็นต์ส่วนลดของค่าความจริงยอดขายเป็นหน่วยวัดยอดส่วนลด (เพื่อหารด้วยหน่วยวัดรายได้ยอดขาย) หรือไม่ควรรวมอายุของสินค้าในชั้นเมื่อเวลาผ่านไป แต่คุณอาจสังเกตเห็นแนวโน้มในอายุเฉลี่ยของสินค้าในสินค้าคงคลัง
ในขณะที่ไม่สามารถหาผลรวมหน่วยวัดบางตัวแต่ยังคงเป็นหน่วยวัดที่ถูกต้อง สามารถรวมข้อมูลได้โดยใช้การนับจํานวนจํานวนที่แตกต่างกัน ค่าต่ําสุด ค่าสูงสุด ค่าเฉลี่ย และอื่น ๆ นอกจากนี้ หน่วยวัดที่ไม่ใช่แบบบวกสามารถเพิ่มได้เมื่อใช้การคํานวณ ตัวอย่างเช่น ราคาต่อหน่วยที่คูณด้วยปริมาณในใบสั่งจะสร้างรายได้จากการขายซึ่งเป็นส่วนเสริม
ตารางสําหรับข้อเท็จจริงที่ไม่มีความจริง
เมื่อตารางสําหรับเก็บข้อมูลตัวชี้วัดไม่มีคอลัมน์หน่วยวัดใด ๆ จะเรียกว่าตารางสําหรับเก็บข้อมูลตัวชี้วัดที่ไม่มีความจริงหรือมาตรวัดใด ๆ โดยทั่วไปตารางสําหรับเก็บข้อมูลข้อเท็จจริงที่ไร้ความจริงจะบันทึกเหตุการณ์หรือการเกิดขึ้นเช่นนักเรียนที่เข้าเรียน จากมุมมองการวิเคราะห์ การวัดผลสามารถทําได้โดยการนับแถวข้อเท็จจริง
รวมตารางข้อเท็จจริง
ตารางข้อเท็จจริงรวมแสดงถึงค่าสะสมของตารางข้อเท็จจริงพื้นฐานในระดับมิติที่ต่ํากว่าและ/หรือส่วนประกอบที่สูงกว่า วัตถุประสงค์คือการเร่งประสิทธิภาพคิวรีสําหรับมิติที่มีการคิวรีโดยทั่วไป
หมายเหตุ
แบบจําลองความหมายของ Power BI สามารถสร้าง การรวม ที่ผู้ใช้กําหนดเองเพื่อให้ได้ผลลัพธ์เดียวกัน หรือใช้ตารางข้อเท็จจริงรวมของคลังข้อมูลโดยใช้ โหมดที่เก็บข้อมูล DirectQuery
เนื้อหาที่เกี่ยวข้อง
ในบทความถัดไปในชุดนี้ คุณจะได้เรียนรู้เกี่ยวกับคําแนะนําและแนวทางปฏิบัติที่ดีที่สุดในการออกแบบสําหรับการ โหลดตารางแบบจําลองมิติ