หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้ REORG คําสั่งเมื่อคุณต้องการเขียนส่วนหนึ่งของตารางเดลต้าใหม่สําหรับเป้าหมายการบํารุงรักษาเฉพาะ ใน Fabric REORG จะจัดระเบียบเค้าโครงทางกายภาพของตารางใหม่โดยการเขียนไฟล์ข้อมูลใหม่หรืออัปเดตข้อมูลเมตาของตาราง โดยขึ้นอยู่กับตัวเลือกที่คุณเลือก
REORG แตกต่างจากการบีบอัดไฟล์ตามปกติ กําหนดเป้าหมายสถานการณ์ต่างๆ เช่น การลบแถวที่เวกเตอร์การลบทําเครื่องหมายว่าถูกลบ
REORG ทําอะไร
REORG TABLE เขียนสถานะตารางใหม่สําหรับการดําเนินการบํารุงรักษาที่กําหนดไว้
-
APPLY (PURGE)เขียนไฟล์ข้อมูลที่ได้รับผลกระทบใหม่เพื่อให้แถวที่ถูกลบแบบนุ่มนวลผ่านเวกเตอร์การลบจะถูกลบออกจากไฟล์ Parquet ที่อยู่เบื้องหลัง
ใช้ REORG เมื่อคุณต้องการผลลัพธ์การเขียนใหม่ที่เฉพาะเจาะจง ไม่ใช่แค่ไฟล์ที่เล็กลงหรือน้อยลง
ใช้ PURGE เพื่อลบแถวที่ถูกลบแบบชั่วคราว
เวกเตอร์การลบช่วยให้ Delta Lake ทําเครื่องหมายแถวว่าถูกลบโดยไม่ต้องเขียนไฟล์ Parquet ต้นฉบับใหม่ทันที ลักษณะการทํางานนั้นช่วยให้การดําเนินการลบมีประสิทธิภาพ แต่ข้อมูลแถวที่ถูกลบยังคงมีอยู่ในไฟล์ทางกายภาพจนกว่าคุณจะเขียนใหม่
เมื่อคุณเรียกใช้ REORG TABLE ... APPLY (PURGE) Fabric จะเขียนแฟ้มที่ได้รับผลกระทบใหม่ และเอาแถวที่ถูกลบแบบชั่วคราวออกจากแฟ้ม Parquet ที่ใช้งานอยู่ หลังจาก PURGE เสร็จสิ้นแถวที่ถูกลบเหล่านั้นจะหายไปจากไฟล์ที่เขียนใหม่
Note
PURGE โดยทั่วไปไม่จําเป็นต้องเป็นขั้นตอนการบํารุงรักษาแยกต่างหาก
OPTIMIZE ล้างไฟล์โดยอัตโนมัติที่มีการอ้างอิงบันทึกมากกว่า 5% โดยเวกเตอร์การลบระหว่างการบีบอัด จอง PURGE ไว้สําหรับสถานการณ์ที่คุณต้องการควบคุมอย่างชัดเจนเมื่อแถวที่ถูกลบแบบชั่วคราวถูกลบออกทางกายภาพ
ตัวเลือกนี้มีประโยชน์เมื่อ:
- คุณมีข้อกําหนดด้านการปฏิบัติตามข้อกําหนดหรือ GDPR และจําเป็นต้องลบข้อมูลที่ถูกลบออกตามกําหนดเวลาที่กําหนด
- คุณต้องการบังคับล้างไฟล์ที่ต่ํากว่าเกณฑ์
OPTIMIZE5% ที่ใช้
ตรวจทานไวยากรณ์
ใช้ตัวอย่างต่อไปนี้ amp ในสมุดบันทึก Fabric
ล้างแถวที่ถูกลบแบบชั่วคราวออกจากตาราง
REORG TABLE table_name APPLY (PURGE)
ล้างแถวที่ถูกลบแบบชั่วคราวสําหรับการจับคู่ข้อมูลเท่านั้น
REORG TABLE table_name WHERE predicate APPLY (PURGE)
ใช้ WHERE ส่วนคําสั่งเมื่อคุณต้องการกําหนดเป้าหมายพาร์ติชันเฉพาะหรือส่วนข้อมูลที่เล็กกว่า
REORG TABLE sales.orders
WHERE order_date = DATE '2026-05-01'
APPLY (PURGE)
เลือก REORG หรือ OPTIMIZE
REORG และ OPTIMIZE แก้ปัญหาต่างๆ
-
OPTIMIZEทําการบดอัดถังขยะ มันรวมไฟล์ขนาดเล็กเป็นไฟล์ขนาดใหญ่เพื่อปรับปรุงประสิทธิภาพการสแกน -
REORG ... APPLY (PURGE)ลบแถวที่เวกเตอร์การลบทําเครื่องหมายว่าลบแล้ว
คุณสามารถใช้ทั้งสองคําสั่งร่วมกันได้ ตัวอย่างเช่น คุณอาจเรียกใช้ REORG ... APPLY (PURGE) เพื่อลบข้อมูลที่ถูกลบออก จากนั้นเรียกใช้ OPTIMIZE เพื่อปรับปรุงเค้าโครงแฟ้ม
ทําความเข้าใจเวกเตอร์การลบ
เวกเตอร์การลบคือโครงสร้างข้อมูลเมตาที่ทําเครื่องหมายแถวว่าถูกลบโดยไม่ต้องเขียนไฟล์ Parquet ที่มีแถวเหล่านั้นใหม่ทันที ผู้อ่านให้เกียรติเวกเตอร์การลบ ดังนั้นแถวที่ถูกลบจะไม่ปรากฏในผลลัพธ์แบบสอบถาม แต่ไบต์จะยังคงอยู่ในที่เก็บข้อมูลจนกว่าจะมีการเขียนใหม่
REORG ... APPLY (PURGE) เป็นขั้นตอนที่ลบแถวเหล่านั้นออกจากไฟล์ Parquet ที่เขียนใหม่
เรียกใช้ REORG ใน Fabric
เรียกใช้ REORG จากประสบการณ์ที่ใช้ Spark ใน Fabric เช่น:
- โน้ตบุ๊คผ้า
- ข้อกําหนดงาน Spark
อย่าเรียกใช้ REORG จากตําแหน่งข้อมูลการวิเคราะห์ SQL
REORG เป็นคําสั่งการบํารุงรักษา Spark SQL สําหรับตารางเดลต้า
ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด
- เรียกใช้
PURGEเฉพาะเมื่อคุณมีความต้องการเฉพาะ เช่น ข้อกําหนดการปฏิบัติตามข้อกําหนดOPTIMIZEล้างไฟล์โดยอัตโนมัติที่มีการอ้างอิงบันทึกมากกว่า 5% โดยเวกเตอร์การลบ ดังนั้นการบํารุงรักษาตามปกติจึงไม่จําเป็นต้องมีขั้นตอนแยกต่างหากPURGE - เรียกใช้
PURGEก่อนVACUUMเมื่อคุณต้องการลบข้อมูลที่ถูกลบออกตามข้อกําหนดหรือข้อกําหนดของ GDPR - ใช้
WHEREเพรดิเคตเพื่อกําหนดเป้าหมายพาร์ติชันเฉพาะเมื่อคุณไม่จําเป็นต้องเขียนตารางแบบเต็มใหม่ - ใช้
UPGRADE UNIFORMเมื่อคุณต้องการเครื่องอ่าน Iceberg แต่วางแผนสําหรับข้อมูลเมตาเพิ่มเติมที่ UniForm เก็บรักษาไว้ - ปฏิบัติ
REORGและเป็นOPTIMIZEการดําเนินการบํารุงรักษาเสริม ไม่ใช่การดําเนินการที่เปลี่ยนได้