การปรับแต่งตาราง Delta Lake

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Delta Lake คืออะไร?

  • Storage layer แบบ open source สำหรับ lakehouse
  • รองรับ ACID transactions การจัดการ metadata และ versioning
  • Fabric ใช้รูปแบบตาราง Delta Lake (Parquet) เป็นมาตรฐาน
  • ใช้งานร่วมกันได้ข้ามประสบการณ์ใน Fabric

ไดอะแกรมสถาปัตยกรรม Fabric แสดงข้อมูลที่นำเข้าและจัดเก็บเป็นตาราง Delta Lake จากนั้นสืบค้นด้วย Power BI

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การบำรุงรักษาตาราง

  • รักษาตาราง Delta ให้อยู่ในสภาพพร้อมใช้งาน
  • การดำเนินการบำรุงรักษาตาราง:
    • Optimize
    • V-Order
    • Vacuum
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Optimize

  • รวมไฟล์ Parquet ขนาดเล็กหลายไฟล์เป็นไฟล์ขนาดใหญ่ไฟล์เดียว
    • ขนาดไฟล์ที่เหมาะสมอยู่ระหว่าง 128MB ถึง 1GB
    • ปรับปรุงการบีบอัดและการกระจายข้อมูล ทำให้อ่านข้อมูลได้มีประสิทธิภาพมากขึ้น
    • แนะนำให้รัน optimize หลังจากโหลดตารางขนาดใหญ่

ไดอะแกรมแสดงตาราง lakehouse ที่ประกอบด้วยไฟล์ Parquet ขนาดเล็กหลายสิบไฟล์ถูก optimize รวมเป็นไฟล์ Parquet ขนาดใหญ่สองไฟล์ โดยไฟล์เดิมยังคงอยู่แต่ไม่ได้ใช้งาน

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Optimize

  • รวมไฟล์ Parquet ขนาดเล็กหลายไฟล์เป็นไฟล์ขนาดใหญ่ไฟล์เดียว
    • ขนาดไฟล์ที่เหมาะสมอยู่ระหว่าง 128MB ถึง 1GB
    • ปรับปรุงการบีบอัดและการกระจายข้อมูล ทำให้อ่านข้อมูลได้มีประสิทธิภาพมากขึ้น
    • แนะนำให้รัน optimize หลังจากโหลดตารางขนาดใหญ่

ไดอะแกรมแสดงตาราง lakehouse ที่ประกอบด้วยไฟล์ Parquet ขนาดเล็กหลายสิบไฟล์ถูก optimize รวมเป็นไฟล์ Parquet ขนาดใหญ่สองไฟล์ โดยไฟล์เดิมยังคงอยู่แต่ไม่ได้ใช้งาน

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การรันคำสั่ง Optimize จาก Lakehouse explorer

ภาพหน้าจอคำสั่ง Maintenance ใน Lakehouse explorer โดยไฮไลต์ตัวเลือก Run OPTIMIZE command

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การรันคำสั่ง Optimize ใน Spark SQL

%%sql
OPTIMIZE <lakehouse>.<table>;
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การรันคำสั่ง Optimize ใน PySpark

from delta.tables import DeltaTable

dt = DeltaTable.forPath( spark, "Tables/<table>" )
dt.optimize().executeCompaction()
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

V-Order

  • การปรับแต่งพิเศษที่ใช้เมื่อเขียนไฟล์ Parquet
  • เปิดใช้งานโดยค่าเริ่มต้น
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การใช้งาน V-Order จาก Lakehouse explorer

ภาพหน้าจอคำสั่ง Maintenance ใน Lakehouse explorer โดยไฮไลต์ตัวเลือก Apply V-ORDER

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การควบคุมการเขียน V-Order ใน Apache Spark session

  • เปิดใช้งาน V-Order สำหรับ session นี้

    %%sql 
    SET spark.sql.parquet.vorder.enabled=TRUE
    

     

  • ปิดใช้งาน V-Order สำหรับ session นี้

    %%sql 
    SET spark.sql.parquet.vorder.enabled=FALSE
    
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การใช้งาน V-Order ขณะ optimize ตาราง

%%sql 
OPTIMIZE <table|fileOrFolderPath> VORDER;
การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Vacuum

  • ลบไฟล์เก่าที่ไม่จำเป็นและเก่ากว่าเกณฑ์ระยะเวลาที่กำหนดไว้
  • ลดต้นทุนการจัดเก็บข้อมูลบน cloud

ไดอะแกรมแสดงตาราง lakehouse ที่ประกอบด้วยไฟล์ Parquet ขนาดใหญ่สองไฟล์ที่ยังใช้งานอยู่ และไฟล์ Parquet ขนาดเล็กหลายสิบไฟล์ที่ไม่ได้ใช้งานแล้วแต่ยังคงอยู่ใน storage หลังจากรัน vacuum ไฟล์เก่าจะถูกลบออกจาก storage

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Vacuum

  • ลบไฟล์เก่าที่ไม่จำเป็นและเก่ากว่าเกณฑ์ระยะเวลาที่กำหนดไว้
  • ลดต้นทุนการจัดเก็บข้อมูลบน cloud

ไดอะแกรมแสดงตาราง lakehouse ที่ประกอบด้วยไฟล์ Parquet ขนาดใหญ่สองไฟล์ที่ยังใช้งานอยู่ และไฟล์ Parquet ขนาดเล็กหลายสิบไฟล์ที่ไม่ได้ใช้งานแล้วแต่ยังคงอยู่ใน storage หลังจากรัน vacuum ไฟล์เก่าจะถูกลบออกจาก storage

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

การรัน Vacuum จาก Lakehouse explorer

ภาพหน้าจอคำสั่ง Maintenance ใน Lakehouse explorer โดยไฮไลต์ตัวเลือก Run VACUUM

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

มาฝึกกันเถอะ!

การแปลงและวิเคราะห์ข้อมูลด้วย Microsoft Fabric

Preparing Video For Download...