แชร์ผ่าน


คุณภาพของข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรม

ในยุคของข้อมูลขนาดใหญ่สถาปัตยกรรมเหรียญได้รับความโดดเด่นในฐานะเฟรมเวิร์กที่แข็งแกร่งสําหรับการจัดการและประมวลผลข้อมูลในขั้นตอนการปรับแต่งที่แตกต่างกันตั้งแต่ข้อมูลดิบไปจนถึงชุดข้อมูลที่รวบรวมไว้สูง แนวทางที่มีโครงสร้างนี้ไม่เพียงแต่ช่วยปรับปรุงความสามารถในการจัดการข้อมูลแต่ยังช่วยให้แน่ใจว่าคุณภาพของข้อมูลได้รับการเก็บรักษาไว้ตลอดวงจรชีวิตข้อมูล

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

บทความนี้อธิบายวิธีการใช้คุณภาพข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรม (MLV) ใน Microsoft Fabric

นําคุณภาพข้อมูลไปใช้

เมื่อคุณแปลงข้อมูล สิ่งสําคัญคือต้องเขียนคิวรีที่แม่นยําเพื่อแยกข้อมูลคุณภาพที่ไม่ดีออกจากตารางแหล่งข้อมูล ซึ่งจะเพิ่มเวลาในการประมวลผล และบางครั้งทําให้ไปป์ไลน์ทั้งหมดล้มเหลวเนื่องจากปัญหาข้อมูลรอง

คุณภาพข้อมูลถูกรักษาไว้โดยการตั้งค่าข้อจํากัดเมื่อกําหนด MLV มุมมองที่เป็นรูปธรรมภายใน Fabric ให้วิธีการตรวจสอบการจัดการคุณภาพข้อมูลอย่างมีประสิทธิภาพ

การดําเนินการต่อไปนี้สามารถนํามาใช้ได้เมื่อมีการระบุข้อจํากัด

FAIL – การดําเนินการนี้จะหยุดการรีเฟรช MLV ถ้าข้อจํากัดใดๆ ถูกละเมิด โดยหยุดในอินสแตนซ์แรก ซึ่งเป็นลักษณะการทํางานเริ่มต้น แม้ว่าจะไม่ได้ระบุคําสําคัญ FAIL

DROP – การดําเนินการนี้ประมวลผล MLV และเอาระเบียนที่ไม่ตรงตามข้อจํากัดที่ระบุออก นอกจากนี้ยังมีจํานวนเรกคอร์ดที่ถูกลบในมุมมองสายข้อมูล

หมายเหตุ

หากมีการกําหนดทั้งการดําเนินการ DROP และ FAIL ใน MLV การดําเนินการ FAIL จะมีความสําคัญก่อน

การกําหนดการตรวจสอบคุณภาพข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรม

ตัวอย่างต่อไปนี้กําหนดข้อจํากัด cust_blankซึ่งจะตรวจสอบว่า customerName เขตข้อมูลไม่ใช่ null หรือไม่ แถวที่มี null customerName จะถูกแยกออกจากการประมวลผล

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched  
(CONSTRAINT cust_blank CHECK (customerName is not null) on MISMATCH DROP)
AS
SELECT
    c.customerID,
    c.customerName,
    c.contact, 
    CASE  
       WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE  
       ELSE FALSE  
    END AS has_orders 
FROM bronze.customers c LEFT JOIN bronze.orders o 
ON c.customerID = o.customerID; 

ข้อจํากัดปัจจุบัน

  • การอัปเดตข้อจํากัดด้านคุณภาพข้อมูลหลังจากการสร้าง MLV ไม่ได้รับการสนับสนุน เมื่อต้องการอัปเดตข้อจํากัดด้านคุณภาพข้อมูล คุณต้องสร้าง MLV ใหม่
  • การใช้ฟังก์ชันและการค้นหารูปแบบด้วยตัวดําเนินการ เช่น LIKE หรือ regex ในเงื่อนไขข้อจํากัดจะถูกจํากัด

ปัญหาที่ทราบ

  • การสร้างและการรีเฟรชของ MLV ที่มีการดําเนินการ FAIL ในข้อจํากัดอาจส่งผลให้เกิดปัญหา "ไม่พบตาราง delta" ในกรณีดังกล่าว ขอแนะนําให้สร้าง MLV ใหม่และหลีกเลี่ยงการใช้การดําเนินการ FAIL