การบํารุงรักษาและการเพิ่มประสิทธิภาพตารางข้ามปริมาณงานใน Microsoft Fabric

ตาราง Delta ใน Microsoft Fabric สามารถรองรับ Spark, SQL analytics endpoint, Power BI Direct Lake, Warehouse และประสบการณ์ Fabric อื่น ๆ จากข้อมูลที่จัดเก็บใน OneLake ประสิทธิภาพที่เหมาะสมระหว่างงานข้ามประเภทขึ้นอยู่กับสองปัจจัย:

  • งานที่สร้างและดูแลตาราง
  • เครื่องยนต์ที่ใช้ตาราง

ตาราง Lakehouse มักถูกจัดการโดย Spark, Fabric pipeline Copy activity หรือ Dataflow Gen2 Spark เป็นตัวเขียนที่พบมากที่สุดและให้การควบคุมการจัดวางและบํารุงรักษาที่กว้างที่สุด การมิเรอร์คลังสินค้าและฐานข้อมูลจัดการการจัดวางทางกายภาพโดยอัตโนมัติ แคตตาล็อกที่สะท้อนจะยังคงรูปแบบที่จัดการในระบบต้นทาง ความต้องการของผู้บริโภคโดยทั่วไปสามารถเข้ากันได้ แต่ Power BI Direct Lake มีความต้องการจัดเก็บข้อมูลเพิ่มเติมเพื่อประสิทธิภาพสูงสุด

ใช้ตารางแชร์เดียวเมื่อข้อกําหนดของมันสอดคล้องกัน สําหรับข้อยกเว้นที่จัดเต็มตารางอื่น ดูที่ เมื่อสร้างตารางใหม่

เข้าใจการเป็นเจ้าของเลย์เอาต์

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

ที่เก็บข้อมูล วิธีเขียนหรือการนําเข้า การจัดวางและการดูแลรักษา ปุ่มควบคุม
Lakehouse Spark จัดการโดยผู้ใช้ ขนาดไฟล์: ขนาดไฟล์เป้าหมายแบบปรับตัวและเป้าหมายการบีบอัดระดับไฟล์
การเขียนและบํารุงรักษา: เวกเตอร์ลบ, การบีบอัดอัตโนมัติ, การเพิ่มประสิทธิภาพการเขียน, OPTIMIZE, และVACUUM
การจัดระเบียบข้อมูล: การจัดกลุ่มของเหลว, การแบ่งพาร์ติชัน, Z-Order และ V-Order
Lakehouse Fabric pipeline Copy activity หรือ Dataflow Gen2 บริการนี้จะเขียนข้อมูล; เจ้าของบ้านริมทะเลสาบดูแลโต๊ะอาหาร การตั้งค่าการเขียนเฉพาะปลายทาง ดําเนินการบํารุงรักษาที่เข้ากันได้แยกต่างหากโดยใช้ Spark, การบํารุงรักษา Lakehouse หรือกิจกรรมบํารุงรักษาท่อส่ง
คลังสินค้า Fabric คลังข้อมูล, Fabric pipeline Copy activity หรือ Dataflow Gen2 จัดการคลังสินค้า การจัดกลุ่มข้อมูลและการตั้งค่า V-Order ระดับคลังสินค้า
รายการที่สะท้อน บริการมิเรอร์ ขึ้นอยู่กับ ประเภทการสะท้อน การมิเรอร์ฐานข้อมูลใช้การจัดวาง V-Ordered Delta ที่จัดการโดยระบบโดยไม่มีการควบคุมการจัดวางโดยตรง แคตตาล็อกที่สะท้อนจะยังคงรูปแบบไฟล์ต้นฉบับ ซึ่งคุณสามารถปรับแต่งในระบบต้นทางเมื่อได้รับการสนับสนุน

คําแนะนําข้ามภาระงาน

ตารางต่อไปนี้สรุปแนวทางที่แนะนําโดยผู้ผลิตและผู้บริโภค

ผู้ผลิต ผู้บริโภค วิธีการที่แนะนํา
Lakehouse: นักเขียนประกายไฟ Spark ใช้ค่าเริ่มต้นของ Fabric Spark runtime 2.0 หรือใหม่กว่า และเปิดใช้งานการบีบอัดอัตโนมัติ พิจารณาการจัดกลุ่มของเหลวเมื่อเงื่อนไขที่วัดได้จะได้รับประโยชน์จากการปรับปรุงการข้ามไฟล์
Lakehouse: นักเขียนประกายไฟ จุดสิ้นสุดการวิเคราะห์ SQL ใช้รูปแบบเดียวกับที่แนะนําสําหรับ Spark อย่าตั้งขนาดไฟล์เป้าหมายแบบคงที่ จํากัดแถว หรือ V-Order เพียงเพื่อประสิทธิภาพของ SQL analytics endpoint เท่านั้น
Lakehouse: นักเขียนประกายไฟ Power BI Direct Lake ใช้รูปแบบเดียวกับที่แนะนําสําหรับ Spark และเปิดใช้งาน V-Order เพิ่มเติม หรือใช้readHeavyForPBIโปรไฟล์ทรัพยากร
Lakehouse: Fabric pipeline หรือ Dataflow Gen2 writer Spark, ปลายทางวิเคราะห์ SQL หรือ Power BI Direct Lake ตรวจสอบการจัดวางไฟล์ที่เกิดขึ้นและกําหนดเวลาการบํารุงรักษาบ้านพักริมทะเลสาบที่รองรับแยกกัน โหมดปลายทางบางโหมด เช่น Dataflow Gen2 incremental refresh จะมีข้อจํากัดในการบํารุงรักษา
คลังสินค้า Fabric คลังข้อมูล หรือ Spark ใช้เลย์เอาต์ที่จัดการโดยระบบ Fabric คลังข้อมูล จัดการการบดอัดและการบํารุงรักษาอื่น ๆ โดยอัตโนมัติ ใช้ การจัดกลุ่มข้อมูล เพื่อปรับปรุงการข้ามไฟล์สําหรับงานที่มีเงื่อนไขเลือกเฉพาะซ้ํา
คลังสินค้า Power BI Direct Lake คงการตั้งค่า Warehouse V-Order ไว้เป็นค่าเริ่มต้น ใช้ การจัดกลุ่มข้อมูล เมื่อเป็นประโยชน์ต่อรูปแบบการค้นหาที่ใช้ร่วมกัน
Mirroring Spark, ปลายทางวิเคราะห์ SQL หรือ Power BI Direct Lake สําหรับการมิเรอร์ฐานข้อมูล ให้ใช้รูปแบบ V-Ordered Delta ที่จัดการโดยระบบ สําหรับแคตตาล็อกที่สะท้อน ให้ปรับแต่งไฟล์พื้นฐานในระบบต้นทางเมื่อรองรับ ดูว่า Mirroring in Fabric คืออะไร?

ปรับแต่งตาราง Lakehouse

ตาราง Lakehouse Delta ต้องการกลยุทธ์การบํารุงรักษาที่ชัดเจน ไม่ว่าจะเขียนโดย Spark, Pipeline Copy activity หรือ Dataflow Gen2 Spark เป็นตัวอย่างหลักในส่วนนี้เพราะให้การควบคุมการจัดวางและบํารุงรักษาที่กว้างที่สุดใน Fabric

สำคัญ

การดูแลตารางเป็นสิ่งสําคัญสําหรับประสิทธิภาพการเขียนและอ่านที่ดีที่สุดในทุกเอนจิน แม้แต่งานที่เพิ่มเฉพาะส่วนเสริมซึ่งทํางานได้ดีในช่วงแรกโดยไม่ต้องบํารุงรักษา ก็อาจสะสมไฟล์ขนาดเล็กมากเกินไป ซึ่งส่งผลกระทบต่อ Spark, SQL analytics endpoint, Direct Lake และโปรแกรมอ่านข้อมูลภายนอก ดูวิธีการ อัดโต๊ะ Delta สําหรับการอัดอัตโนมัติ และแบบแมนนวล

ใช้ค่าเริ่มต้นของรันไทม์ Spark

เมื่อ Spark เขียนตาราง ให้ใช้ค่าเริ่มต้นของ Fabric Spark runtime 2.0 หรือใหม่กว่า:

  • เปิดใช้งาน ขนาดไฟล์เป้าหมายแบบปรับตัว ได้ มันจะเลือกเป้าหมายสําหรับแต่ละตารางโดยอัตโนมัติตั้งแต่ 128 MB ถึง 1 GB
  • เปิดใช้งาน เป้าหมายการบีบอัดไฟล์ในระดับ ไฟล์เพื่อหลีกเลี่ยงการเขียนไฟล์ซ้ําที่บรรลุเป้าหมายการปรับเปลี่ยนก่อนหน้า
  • เปิดใช้งาน เวกเตอร์การลบ ไว้
  • อย่ากําหนดจํานวนแถวสูงสุดต่อไฟล์อย่างอิสระ ความกว้างของแถวแตกต่างกัน ดังนั้นการจํากัดแถวอาจสร้างไฟล์ขนาดเล็กเกินไปสําหรับตารางที่แคบ

ใน Fabric Spark runtime 1.3 ขนาดไฟล์เป้าหมายแบบปรับได้, เป้าหมายการบีบอัดระดับไฟล์ และเวกเตอร์การลบมีให้เลือกเป็นการตั้งค่าแบบเลือกเข้า

เมื่อ Pipeline Copy activity หรือ Dataflow Gen2 เขียนตาราง ให้ตรวจสอบเค้าโครงไฟล์ที่ได้และตั้งเวลาบํารุงรักษาแยกต่างหาก อย่าคิดว่าผู้เขียนเหล่านี้จะใช้ค่าเริ่มต้นของ Spark ขณะรันไทม์

สำคัญ

ปลายทางบ้านพักทะเลสาบ Dataflow Gen2 ที่ใช้การรีเฟรชแบบเพิ่มทีละน้อยไม่รองรับOPTIMIZEหรือREORG TABLE ปฏิบัติตามข้อจํากัดการรีเฟรชแบบเพิ่มขึ้นของ Dataflow Gen2

ป้องกันและบีบอัดไฟล์ขนาดเล็ก

สําหรับตารางที่เขียนโดย Spark ควรเลือกการบีบอัดอัตโนมัติ ฟีเจอร์นี้ประเมินการกระจายตัวของตารางหลังจากเขียนและรันการบีบอัดเฉพาะเมื่อจําเป็นเท่านั้น วิธีนี้ช่วยขจัดความจําเป็นในการตรวจสอบสุขภาพโต๊ะแยกต่างหากก่อนเริ่มการบํารุงรักษา

ใช้คําแนะนําต่อไปนี้สําหรับข้อยกเว้นและฟีเจอร์เสริม:

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

OPTIMIZE บีบอัดไฟล์และล้างเวกเตอร์ลบไฟล์โดยอัตโนมัติเมื่อมีเวกเตอร์ลบมากกว่า 5% ถูกอ้างอิงด้วยเวกเตอร์ลบ ใช้ REORG TABLE ... APPLY (PURGE) เฉพาะเมื่อคุณต้องลบข้อมูลที่ต่ํากว่าเกณฑ์นั้นหรือต้องปฏิบัติตามข้อกําหนดเฉพาะเท่านั้น

หมายเหตุ

การบีบอัดอัตโนมัติจะล้างเวกเตอร์ลบเฉพาะเมื่อพาร์ติชันนั้นตอบสนองต่อทริกเกอร์ไฟล์ขนาดเล็กด้วย หากงานทํางานทําการอัปเดตหรือลบโดยไม่สร้างไฟล์ขนาดเล็ก ให้ทํางาน OPTIMIZE เป็นระยะเพื่อล้างเวกเตอร์การลบที่มีคุณสมบัติเหมาะสม ใช้ REORG TABLE ... APPLY (PURGE) เมื่อจําเป็นต้องบังคับให้ล้างออกทางกายภาพ

รัน VACUUM ในตารางเวลาแยกต่างหากเพื่อลบไฟล์ที่ไม่ได้อ้างอิงหลังจากช่วงเวลาการเก็บรักษา VACUUM กู้คืนพื้นที่จัดเก็บแต่ไม่ปรับปรุงการจัดวางไฟล์ที่ใช้งานอยู่

Warning

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

จัดระเบียบข้อมูลสําหรับการข้ามไฟล์

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

หลีกเลี่ยงการแบ่งพาร์ติชันโดยค่าเริ่มต้น ใช้เมื่อมีข้อกําหนดเฉพาะที่สมควรต่อการแลกเปลี่ยนในการดําเนินงาน เช่น การแยกตัวเขียนข้อมูลพร้อมกันที่อัปเดต ลบ หรือรวมข้อมูลข้ามพาร์ติชันที่ไม่เชื่อมต่อกัน สําหรับข้อมูลเพิ่มเติม โปรดดูที่ เมื่อใดควรใช้การแบ่งพาร์ติชัน

สําหรับตารางที่แบ่งพาร์ติชันที่มีอยู่แล้ว ให้พิจารณา Z-Order เมื่อพรีดิเคตแบบเลือกได้มักจะกรองบนคอลัมน์เดียวกันภายในพาร์ติชัน

ปรับแต่งตารางที่จัดการโดยคลังสินค้า

Fabric คลังข้อมูล จัดการการจัดวางตาราง Delta ทางกายภาพโดยไม่ขึ้นกับวิธีการนําเข้าข้อมูล

ใช้การควบคุมเชิงกลยุทธ์ที่ Warehouse เปิดเผยเพื่อปรับแต่งการจัดวางข้อมูล:

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

Warning

การปิดใช้งาน V-Order เป็นการดําเนินการในระดับคลังสินค้าที่ไม่สามารถย้อนกลับได้ ทดสอบงานอ่านและเขียนทั้งหมดก่อนปิดการใช้งาน

สําหรับคําแนะนําเกี่ยวกับคลังสินค้าอย่างครบถ้วน โปรดดูที่แนวทางประสิทธิภาพใน Fabric คลังข้อมูล

ปรับแต่งข้อมูลที่สะท้อน

ความสามารถในการปรับปรุงการจัดวางทางกายภาพของคุณขึ้นอยู่กับว่า Fabric จะจําลองข้อมูลหรืออ้างอิงไฟล์ต้นทาง:

  • การมิเรอร์ฐานข้อมูล: Fabric จะจําลองข้อมูลต้นทางไปยังตาราง Delta ใน OneLake และจัดการการจัดวางและบํารุงรักษาไฟล์ V-Ordered คุณไม่สามารถกําหนดค่าขนาดไฟล์เป้าหมาย การทําความสะอาดเวกเตอร์การลบ การจัดกลุ่มของเหลว การแบ่งพาร์ติชัน หรือ V-Order บนปลายทางที่มิเรอร์ได้โดยตรง
  • แคตตาล็อกแบบมิเรอร์: Fabric ซิงโครไนซ์ข้อมูลเมตาและใช้ทางลัด OneLake เพื่ออ้างอิงข้อมูลต้นทางที่มีอยู่ Fabric ไม่ได้เขียนใหม่หรือดูแลไฟล์เหล่านี้ ปรับปรุงการจัดวางและการทําความสะอาดระบบต้นฉบับเมื่อฟีเจอร์ที่รองรับอนุญาต การเปลี่ยนแปลงเหล่านั้นจะเห็นได้ผ่านทางลัดโดยไม่ต้องสร้างสําเนาใหม่ใน Fabric

สําหรับข้อมูลที่สะท้อนในฐานข้อมูล:

  • ใช้เงื่อนไขเฉพาะและหลีกเลี่ยงคอลัมน์ที่ไม่จําเป็นในคําสั่ง Spark และ SQL
  • ออกแบบโมเดลเชิงความหมายของ Power BI และมาตรการ DAX เพื่อการใช้พลังงาน Direct Lake อย่างมีประสิทธิภาพ

สําหรับแคตตาล็อกแบบมิเรอร์:

  • ใช้ฟีเจอร์การดูแลตารางและการจัดวางที่แพลตฟอร์มต้นทางรองรับ
  • ประเมินไฟล์ต้นทางและการกระจายกลุ่มแถวสําหรับผู้บริโภค Fabric ที่สอบถามทางลัด
  • สําหรับ Direct Lake ให้ประเมินการสร้างเลเยอร์บริการแบบ V-Ordered ที่จําลองมิติเพิ่มเติมเมื่อเลย์เอาต์ต้นทางไม่สามารถตอบสนองความต้องการด้านประสิทธิภาพได้

สําหรับแนวคิด ประเภท และแหล่งข้อมูลที่รองรับการมิเรอร์ ดูที่ What is Mirroring in Fabric? และ How metadata mirroring work.

ใช้การปรับแต่งเฉพาะผู้บริโภค

Spark และ SQL analytics endpoint ทํางานได้ดีบนรูปแบบบ้านริมทะเลสาบแบบปรับเปลี่ยนได้เดียวกัน ใช้ ขนาดไฟล์เป้าหมายแบบปรับตัว ป้องกันไฟล์ขนาดเล็กเกินไป และใช้ การจัดกลุ่มของเหลว เมื่อเงื่อนไขที่วัดได้จะได้รับประโยชน์จากการ ข้ามไฟล์ที่ดีขึ้น อย่าเปิดใช้งาน V-Order เพียงเพื่อประสิทธิภาพของ Spark หรือ SQL analytics เท่านั้น สําหรับรายละเอียดเฉพาะเอนจิน ดูที่ข้อควรพิจารณาด้านประสิทธิภาพของ SQL analytics endpoint

Power BI Direct Lake

Direct Lake ใช้ตาราง Delta พื้นฐานเดียวกันแต่เพิ่มคําแนะนําเกี่ยวกับการแปลงรหัสและการ เฟรมแบบเพิ่มทีละน้อย:

หมายเหตุ

Direct Lake มักจะทําผลงานได้ดีที่สุดเมื่อมีกลุ่มแถวระหว่าง 1 ล้านถึง 16 ล้านแถว ประเมินการกระจายแถวและประสิทธิภาพของ Direct Lake ก่อนเปลี่ยนการตั้งค่าผู้ผลิตที่รองรับ

สําหรับตารางที่เขียนโดย Spark จะ spark.sql.parquet.native.writer.maxRowGroupRowCount ตั้งค่าจํานวนแถวสูงสุดต่อกลุ่มแถวเมื่อ เอนจินประมวลผลต้นฉบับ เขียนไฟล์ Parquet ค่าตั้งต้นคือ 0, ซึ่งไม่ได้กําหนดค่าสูงสุด หากการวิเคราะห์แสดงว่าขนาดกลุ่มแถวส่งผลต่อประสิทธิภาพของ Direct Lake ให้ตั้งขีดจํากัดที่ทดสอบก่อนเขียนหรือเขียนตารางใหม่ ตัวอย่างเช่น:

spark.conf.set("spark.sql.parquet.native.writer.maxRowGroupRowCount", 8_000_000)

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

สําหรับคําแนะนําโดยละเอียดเกี่ยวกับการจัดกรอบ การแปลงไฟล์ กลุ่มแถว รูปแบบการอัปเดต และ Delta Analyzer โปรดดูที่ เข้าใจประสิทธิภาพของคําสั่งค้นหา Direct Lake

นําคําแนะนําไปใช้กับเลเยอร์เมดัลเลียน

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

ชั้น เป้าหมายหลัก คําแนะนําข้ามภาระงาน
บรอนซ์ (การลงจอด) รักษาความซื่อสัตย์ของแหล่งและอัตราการรับข้อมูลที่ผ่านเข้าไป ให้ความสําคัญกับความเร็วในการเขียนในขณะที่ยังคงรักษาตารางที่เขียนโดย Spark ด้วยการบีบอัดอัตโนมัติ หลีกเลี่ยงโมเดลความหมาย Power BI Direct Lake บนตาราง Bronze ดิบ เว้นแต่โมเดลและรูปร่างข้อมูลจะถูกออกแบบมาเพื่อการใช้งานนั้นโดยเฉพาะ
เงิน (ดูแล) ให้ข้อมูลที่ผ่านการตรวจสอบและเป็นไปตามมาตรฐานเพื่อนํากลับมาใช้ใหม่ นําตารางนี้กลับมาใช้ใหม่กับผู้บริโภค Fabric ที่รองรับ สําหรับตารางบ้านพักที่เขียนโดย Spark ให้เปิดใช้งาน V-Order เฉพาะเมื่อ Direct Lake เป็นผู้บริโภคหลักเท่านั้น
ทองคํา (เสิร์ฟ) ให้บริการมิติ ข้อเท็จจริง ข้อมูลรวม และโมเดลการวิเคราะห์ที่พร้อมสําหรับธุรกิจ แนะนําให้ใช้เลเยอร์นี้สําหรับโมเดลเชิงความหมายของ Direct Lake นําตารางนี้กลับมาใช้ใหม่ในผู้บริโภคที่เข้ากันได้ และใช้การควบคุมเฉพาะผู้ผลิตที่อธิบายไว้ในบทความนี้

แก้ไขปัญหาการจัดวางและการบํารุงรักษา

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

เงื่อนไข สัญญาณ โต๊ะ Lakehouse ตารางคลังสินค้า
ไฟล์ขนาดเล็กเกินไป จํานวนไฟล์เพิ่มขึ้นเร็วกว่าขนาดตารางที่ใช้งานอยู่ และไฟล์จะต่ํากว่าเป้าหมายการปรับตัว ด้วย Spark ให้รันครั้งเดียวOPTIMIZEสําหรับงานค้างที่มีอยู่ จากนั้นเปิดใช้งานการอัดอัตโนมัติ สําหรับการเขียน Pipeline Copy activity หรือ Dataflow Gen2 ให้ตั้งเวลาการบํารุงรักษาบ้านพักริมทะเลสาบที่รองรับแยกต่างหาก ไม่มีการกระทํา การอัดคลังสินค้าเป็นไปโดยอัตโนมัติ
ไฟล์ขนาดใหญ่เก่า ไฟล์ยังคงสูงกว่าเป้าหมายการปรับตัวในปัจจุบันมาก และไฟล์ที่น้อยเกินไปจํากัดความขนานในการสแกน เขียนตารางใหม่โดยใช้การเขียนทับหรือCREATE OR REPLACE TABLE AS SELECTเปิดใช้งานขนาดไฟล์เป้าหมายแบบปรับได้ ไม่มีการกระทํา คลังสินค้าจัดการขนาดไฟล์โดยอัตโนมัติ
การสะสมเวกเตอร์ลบ DESCRIBE HISTORYเมตริกแสดงให้เห็นว่าการลบเวกเตอร์ถูกเพิ่มหรืออัปเดตเร็วกว่าการบีบอัดลบ ซึ่งอาจเพิ่มภาระการอ่าน เปิดใช้งานการ อัดอัตโนมัติ ไว้ หากเวกเตอร์การลบสะสมโดยไม่ทําให้เกิดการบีบอัดไฟล์ขนาดเล็ก ให้ตั้งเวลาไว้OPTIMIZE ใช้ REORG TABLE ... APPLY (PURGE) เฉพาะกับข้อกําหนดการลบข้อมูลที่ชัดเจนเท่านั้น ไม่มีการกระทํา การทําความสะอาดระบบจัดการ
การข้ามไฟล์ที่ไม่ดี พรีดิเคตแบบเลือกจะสแกนตารางเป็นส่วนใหญ่ หรือ การประเมินคุณภาพการจัดกลุ่ม แสดงการจัดระเบียบที่ไม่ดี ด้วย Spark สามารถกําหนดค่า การจัดกลุ่มของเหลว หรือใช้ Z-Order สําหรับตารางที่แบ่งพาร์ติชันที่มีอยู่แล้ว กําหนดค่าการจัดกลุ่มข้อมูลคลังสินค้า
การแปลงไฟล์แบบ Direct Lake overhead Delta Analyzer แสดงไฟล์จํานวนมาก กลุ่มแถวเล็ก หรือการแปลงไฟล์ใหม่อย่างกว้างขวางหลังการอัปเดต บีบอัดไฟล์ขนาดเล็ก ตรวจสอบ กลุ่มแถว และใช้ V-Order กับตารางที่เขียนโดย Spark สามารถตั้งค่าค ลัสเตอร์ของเหลว เพื่อเพิ่มคุณภาพการบีบอัดภายในไฟล์ Parquet ได้ตามต้องการ เปิดใช้งาน V-Order และประเมินการจัดกลุ่มข้อมูล
การเติบโตของพื้นที่จัดเก็บไฟล์ที่ไม่มีการอ้างอิง พื้นที่จัดเก็บของ OneLake เติบโตเร็วกว่าขนาดตารางที่ใช้งานอยู่หลังจากมีการเปลี่ยนแปลงข้อมูล รัน VACUUM ตามข้อกําหนดการเก็บรักษา ไม่มีการกระทํา การทําความสะอาดระบบจัดการ

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

สําหรับโต๊ะ lakehouse ตัวเลือกการตรวจสอบที่รองรับ Spark ได้แก่:

  • เรียกใช้DESCRIBE DETAILเพื่อตรวจสอบจํานวนไฟล์ ขนาดรวม และคุณสมบัติที่ประเมินdelta.targetFileSize.adaptive
  • รันเพื่อ DESCRIBE HISTORY ทบทวนรูปแบบการเขียนและประวัติการบํารุงรักษา
  • ใช้ Delta Analyzer เมื่อคุณต้องการวิเคราะห์กลุ่มแถวและรูปแบบการอัปเดตของ Direct Lake อย่างละเอียด

ตรวจสอบขนาดไฟล์เฉลี่ย

ใช้ DESCRIBE DETAIL คํานวณขนาดไฟล์เฉลี่ยเป็นตัวบ่งชี้เบื้องต้นของเค้าโครงตาราง:

details = spark.sql("DESCRIBE DETAIL schema_name.table_name").first()

table_size_gb = details["sizeInBytes"] / (1024**3)
num_files = details["numFiles"]
avg_file_size_mb = (
    details["sizeInBytes"] / num_files / (1024**2)
    if num_files
    else 0
)

print(f"Table size: {table_size_gb:.2f} GB")
print(f"Number of files: {num_files}")
print(f"Average file size: {avg_file_size_mb:.2f} MB")

ค่าเฉลี่ยสามารถซ่อนความเอียงระหว่างพาร์ติชันหรือไฟล์ที่บีบอัดล่าสุดและก่อนหน้าได้ หากค่าเฉลี่ยแสดงปัญหาเกี่ยวกับการจัดวาง ให้ตรวจสอบไฟล์ Parquet แต่ละไฟล์ หรือใช้ Delta Analyzer เพื่อประเมินการแจกจ่ายก่อนเปลี่ยนการตั้งค่าบํารุงรักษา

เมื่อใดควรสร้างตารางใหม่

อย่าสร้างตารางทางกายภาพอีกเพียงเพราะเอนจิน Fabric หลายตัวใช้ข้อมูลทั้งหมด

สร้างตารางอื่นเมื่อมีวัตถุประสงค์อิสระ เช่น:

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