การทํางานร่วมกันในรูปแบบตาราง Delta Lake

ใน Microsoft Fabric รูปแบบตาราง Delta Lake เป็นมาตรฐานสําหรับการวิเคราะห์ Delta Lake เป็นเลเยอร์ที่เก็บข้อมูลแบบโอเพนซอร์สที่นํา ACID (อะตอม ความสม่ําเสมอ การแยก การแยก ความทนทาน) กับปริมาณงานข้อมูลขนาดใหญ่และการวิเคราะห์

ประสบการณ์การใช้งาน Fabric ทั้งหมดสร้างและใช้ตาราง Delta Lake โดยให้ประสบการณ์ผลิตภัณฑ์แบบครบวงจร ตาราง Delta Lake ที่ผลิตโดยกลไกการคํานวณหนึ่งโปรแกรม เช่น Fabric คลังข้อมูล หรือ Synapse Spark สามารถใช้ได้โดยเครื่องมืออื่น เช่น Power BI เมื่อคุณนําเข้าข้อมูลลงใน Fabric จะจัดเก็บข้อมูลเป็นตารางเดลต้าตามค่าเริ่มต้น คุณสามารถรวมข้อมูลภายนอกที่มีตาราง Delta Lake ได้อย่างง่ายดายโดยใช้ทางลัด OneLake

คุณลักษณะเดลต้าเลคและประสบการณ์การใช้งาน Fabric

เพื่อให้สามารถทํางานร่วมกันได้ ประสบการณ์ Fabric ทั้งหมดจึงสอดคล้องกับคุณลักษณะ Delta Lake และความสามารถของ Fabric ประสบการณ์บางอย่างสามารถเขียนไปยังตาราง Delta Lake เท่านั้นในขณะที่ประสบการณ์อื่น สามารถอ่านจากตารางดังกล่าวได้

  • ผู้เขียน: คลังข้อมูล กระแสข้อมูล และส่งออกแบบจําลองความหมาย Power BI ไปยัง OneLake
  • ผู้อ่าน: จุดสิ้นสุดการวิเคราะห์ SQL และแบบจําลองความหมายของทะเลสาบโดยตรงของ Power BI
  • ผู้เขียนและผู้อ่าน: รันไทม์ Fabric Spark, กระแสข้อมูล, ไปป์ไลน์ และฐานข้อมูล Kusto Query Language (KQL)

เมทริกซ์ต่อไปนี้แสดงคุณลักษณะหลักของ Delta Lake และความพร้อมใช้งานในแต่ละประสบการณ์ Fabric

ความสามารถของผ้า การแมปคอลัมน์ เวกเตอร์การลบ การเขียนตามลําดับ V การปรับตารางให้เหมาะสมและการบํารุงรักษา พาร์ ติ ชัน
คลังข้อมูลส่งออก Delta Lake ชื่อ: ใช่
ID: ไม่ใช่
ใช่ ใช่ ใช่ อ่าน: N/A (ไม่สามารถใช้ได้)
เขียน: ไม่ใช่
จุดสิ้นสุดการวิเคราะห์ SQL ชื่อ: ใช่
ID: ไม่ใช่
ใช่ N/A (ไม่สามารถใช้ได้) N/A (ไม่สามารถใช้ได้) อ่าน: ใช่
เขียน: N/A (ไม่สามารถใช้ได้)
สํารวจและแสดงตัวอย่างของเลคเฮ้าส์ ชื่อ: ใช่
ID: ไม่ใช่
ใช่ N/A (ไม่สามารถใช้ได้) ใช่ อ่าน: ใช่
เขียน: N/A (ไม่สามารถใช้ได้)
Fabric Spark รันไทม์ 2.0 ชื่อ: ใช่
ID: ใช่
ใช่ ใช่ ใช่ อ่าน: ใช่
เขียน: ใช่
รันไทม์ Fabric Spark 1.3 ชื่อ: ใช่
ID: ใช่
ใช่ ใช่ ใช่ อ่าน: ใช่
เขียน: ใช่
รันไทม์ Fabric Spark 1.2 ชื่อ: ใช่
ID: ใช่
ใช่ ใช่ ใช่ อ่าน: ใช่
เขียน: ใช่
รันไทม์ Fabric Spark 1.1 ชื่อ: ใช่
ID: ใช่
ไม่ใช่ ใช่ ใช่ อ่าน: ใช่
เขียน: ใช่
สมุดบันทึก Python ชื่อ: ไม่ใช่
ID: ไม่ใช่
ไม่ใช่ ไม่ใช่ ใช่ อ่าน: ใช่
เขียน: ใช่
กระแสข้อมูล รุ่น 2 ชื่อ: ใช่
ID: ไม่ใช่
ใช่ ใช่ ไม่ใช่ อ่าน: ใช่
เขียน: ใช่
Pipelines ชื่อ: ไม่ใช่
ID: ไม่ใช่
ไม่ใช่ ใช่ ไม่ใช่ อ่าน: ใช่
เขียน: ใช่ เขียนทับเท่านั้น
แบบจําลองความหมายทะเลสาบโดยตรงของ Power BI ชื่อ: ใช่
ID: ใช่
ใช่ N/A (ไม่สามารถใช้ได้) N/A (ไม่สามารถใช้ได้) อ่าน: ใช่
เขียน: N/A (ไม่สามารถใช้ได้)
ส่งออกแบบจําลองความหมาย Power BI ไปยัง OneLake ชื่อ: ใช่
ID: ไม่ใช่
N/A (ไม่สามารถใช้ได้) ใช่ ไม่ใช่ อ่าน: N/A (ไม่สามารถใช้ได้)
เขียน: ไม่ใช่
ฐานข้อมูล KQL ชื่อ: ใช่
ID: ไม่ใช่
ใช่ ไม่ใช่ ไม่มี 1 อ่าน: ใช่
เขียน: ใช่
เหตุการณ์สตรีม ชื่อ: ไม่ใช่
ID: ไม่ใช่
ไม่ใช่ ไม่ใช่ ไม่ใช่ อ่าน: N/A (ไม่สามารถใช้ได้)
เขียน: ใช่

1 ฐานข้อมูล KQL มีความสามารถในการบํารุงรักษาตารางบางอย่าง เช่น การเก็บรักษา ข้อมูลจะถูกลบออกเมื่อสิ้นสุดระยะเวลาการเก็บรักษาจาก OneLake สําหรับข้อมูลเพิ่มเติม ให้ดู หนึ่งสําเนาแบบลอจิคัล

ความสามารถของผ้า การคลัสเตอร์ของเหลว TIMESTAMP_NTZ เวอร์ชัน Delta reader/writer และคุณลักษณะตารางเริ่มต้น การขยายประเภท
คลังข้อมูลส่งออก Delta Lake ไม่ใช่ ไม่ใช่ ผู้อ่าน: 3
ผู้เขียน: 7
เวกเตอร์การลบ
การแมปคอลัมน์ (ชื่อ)
ใช่
จุดสิ้นสุดการวิเคราะห์ SQL ใช่ ไม่ใช่ N/A (ไม่สามารถใช้ได้) ใช่
สํารวจและแสดงตัวอย่างของเลคเฮ้าส์ ใช่ ใช่ N/A (ไม่สามารถใช้ได้) ใช่
Fabric Spark รันไทม์ 2.0 ใช่ ใช่ ผู้อ่าน: 3
ผู้เขียน: 7
เวกเตอร์การลบ
ใช่
รันไทม์ Fabric Spark 1.3 ใช่ ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ไม่ใช่
รันไทม์ Fabric Spark 1.2 ใช่ อ่านอย่างเดียว ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ไม่ใช่
รันไทม์ Fabric Spark 1.1 ใช่ อ่านอย่างเดียว ไม่ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ไม่ใช่
สมุดบันทึก Python ไม่ใช่ ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ไม่ใช่
กระแสข้อมูล รุ่น 2 ใช่ อ่านอย่างเดียว ไม่ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ใช่
Pipelines ใช่ อ่านอย่างเดียว ไม่ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ใช่: ไปป์ไลน์ข้อมูล DI (กิจกรรมการคัดลอก การค้นหา)
หมายเลข: ไปป์ไลน์ DI CopyJob
แบบจําลองความหมายทะเลสาบโดยตรงของ Power BI ใช่ ไม่ใช่ N/A (ไม่สามารถใช้ได้) ใช่
ส่งออกแบบจําลองความหมาย Power BI ไปยัง OneLake ไม่ใช่ ไม่ใช่ ผู้อ่าน: 2
ผู้เขียน: 5
การแมปคอลัมน์ (ชื่อ)
ไม่ใช่
ฐานข้อมูล KQL ไม่ใช่ ไม่ใช่ ผู้อ่าน: 1
ผู้เขียน: 1
ไม่ใช่
เหตุการณ์สตรีม ไม่ใช่ ไม่ใช่ ผู้อ่าน: 1
ผู้เขียน: 2
ไม่ใช่

โน้ต

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

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

ในขณะนี้ Fabric ไม่รองรับคุณลักษณะ Delta Lake เหล่านี้:

  • จุดตรวจสอบ V2 ไม่สามารถใช้ได้อย่างสม่ําเสมอในทุกประสบการณ์การใช้งาน เฉพาะสมุดบันทึก Spark และงาน Spark เท่านั้นที่สามารถอ่านและเขียนไปยังตารางด้วยจุดตรวจสอบ V2 ได้ จุดสิ้นสุดการวิเคราะห์ Lakehouse และ SQL แสดงรายการตารางที่มีไฟล์ V2 Checkpoint ใน __delta_log โฟลเดอร์ไม่ถูกต้อง
  • Delta Lake 3.x Uniform คุณลักษณะนี้ได้รับการสนับสนุนเฉพาะในการคํานวณ Spark ของ Data Engineering (Notebooks, Spark Jobs) เท่านั้น
  • การเขียนคอลัมน์ข้อมูลประจําตัว (คุณลักษณะ Azure Databricks)
  • Lakeflow Spark Declarative Pipelines (คุณลักษณะ Azure Databricks)
  • คุณสมบัติ Delta Lake 4.x ภายนอก Lakehouse และ Spark Notebooks และ Jobs: การเปรียบเทียบ ชนิดตัวแปร การคอมมิตที่ประสานกัน และอื่นๆ รองรับการขยายชนิดตามที่ระบุไว้ในเมทริกซ์คุณลักษณะก่อนหน้าในบทความนี้
  • โน้ตบุ๊ก Python รองรับคุณสมบัติ Delta Lake: โน้ตบุ๊ก Python ใช้ delta-rs (deltalake), DuckDB และ Polars แทนโปรแกรมอ่านและเขียน Spark Delta Lake เพื่ออ่านและเขียนตาราง Delta Lake เวอร์ชัน deltalake ที่ปักหมุดโดย Fabric ในปัจจุบันไม่รองรับคุณลักษณะตาราง Delta Lake บางอย่าง รวมถึงเวกเตอร์การลบ การแมปคอลัมน์ การเขียนและการเพิ่มประสิทธิภาพการจัดกลุ่มของเหลว และการขยายประเภท Polars read_delta และใช้write_deltadeltalakeเป็นแบ็กเอนด์ ดังนั้นจึงมีข้อจํากัดเหมือนกัน
  • สมุดบันทึก Python วิธีแก้ปัญหาชั่วคราวของ Delta Lake และ fallback: ฟังก์ชัน DuckDB delta_scan สามารถให้วิธีแก้ปัญหาแบบอ่านอย่างเดียวสําหรับบางตารางที่ deltalake ไม่สามารถอ่านได้ เช่น ตารางที่มีเวกเตอร์การลบ ถ้าความสามารถ Delta Lake ไม่พร้อมใช้งานหรือไม่ทํางานในสมุดบันทึก Python ให้ใช้สมุดบันทึก PySpark แทน โน้ตบุ๊ก PySpark ให้การสนับสนุน Delta Lake ที่สมบูรณ์แบบที่สุดใน Fabric และครอบคลุมสถานการณ์ Delta Lake ที่ระบุไว้สําหรับรันไทม์ Fabric Spark ในตารางเหล่านี้ สําหรับข้อมูลเพิ่มเติม โปรดดู การโต้ตอบข้อมูลในสมุดบันทึก Python และ การเลือกระหว่างสมุดบันทึก Python และ PySpark ใน Microsoft Fabric

อักขระพิเศษในชื่อตาราง

Fabric รองรับอักขระพิเศษเป็นส่วนหนึ่งของชื่อตาราง คุณลักษณะนี้ช่วยให้สามารถใช้อักขระ Unicode เพื่อเขียนชื่อตารางในประสบการณ์ Fabric

อักขระพิเศษต่อไปนี้ถูกสงวนไว้หรือไม่เข้ากันได้กับเทคโนโลยีอย่างน้อย 1 Fabric อย่างน้อย 1 ตัว และต้องไม่ใช้เป็นส่วนหนึ่งของชื่อตาราง: " (เครื่องหมายคําพูดคู่), ' (เครื่องหมายคําพูดเดี่ยว), #, %, +, :, ? หรือ ' (เครื่องหมายแบ็คติ๊ก)