แชร์ผ่าน


การสร้างแบบจําลองมิติใน 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

ในบทความถัดไปในชุดนี้ คุณจะได้เรียนรู้เกี่ยวกับคําแนะนําและแนวทางปฏิบัติที่ดีที่สุดในการออกแบบสําหรับการ โหลดตารางแบบจําลองมิติ