หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ในยุคของข้อมูลขนาดใหญ่สถาปัตยกรรมเหรียญได้รับความโดดเด่นในฐานะเฟรมเวิร์กที่แข็งแกร่งสําหรับการจัดการและประมวลผลข้อมูลในขั้นตอนการปรับแต่งที่แตกต่างกันตั้งแต่ข้อมูลดิบไปจนถึงชุดข้อมูลที่รวบรวมไว้สูง แนวทางที่มีโครงสร้างนี้ไม่เพียงแต่ช่วยปรับปรุงความสามารถในการจัดการข้อมูลแต่ยังช่วยให้แน่ใจว่าคุณภาพของข้อมูลได้รับการเก็บรักษาไว้ตลอดวงจรชีวิตข้อมูล
การสร้างความมั่นใจว่าคุณภาพของข้อมูลเป็นสิ่งสําคัญในทุกขั้นตอนของสถาปัตยกรรมเหรียญรางวัลซึ่งเป็นสิ่งสําคัญสําหรับการตัดสินใจทางธุรกิจที่มีข้อมูลมาก คุณภาพข้อมูลที่ไม่ดีอาจนําไปสู่ข้อมูลเชิงลึกที่ไม่ถูกต้องและความไร้ประสิทธิภาพในการปฏิบัติงาน
บทความนี้อธิบายวิธีการใช้คุณภาพข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรม (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