Fabric Runtime 1.2 (GA)

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

คอมโพเนนต์หลักของรันไทม์ 1.2 ประกอบด้วย:

  • Apache Spark 3.4.1
  • ระบบปฏิบัติการ: นาวิกโยธิน 2.0
  • Java: 11
  • สเกลา: 2.12.17
  • Python: 3.10
  • ทะเลสาบเดลต้า: 2.4.0
  • R: 4.2.2

เคล็ดลับ

ใช้เวอร์ชันรันไทม์ GA ล่าสุดเสมอสําหรับปริมาณงานการผลิตของคุณ ซึ่งปัจจุบันคือ Runtime 1.3

สกรีนช็อตแสดงตําแหน่งที่จะเลือกเวอร์ชันรันไทม์

Microsoft Fabric Runtime 1.2 มาพร้อมกับคอลเลกชันของแพคเกจระดับเริ่มต้น รวมถึงการติดตั้ง Anaconda แบบเต็มและไลบรารีที่ใช้งานทั่วไปสําหรับ Java/Scala, Python และ R ไลบรารีเหล่านี้จะรวมโดยอัตโนมัติเมื่อใช้สมุดบันทึกหรืองานในแพลตฟอร์ม Microsoft Fabric โปรดดูเอกสารประกอบสําหรับรายการไลบรารีทั้งหมด Microsoft Fabric จะเผยแพร่การอัปเดตการบํารุงรักษาสําหรับ Runtime 1.2 เป็นระยะ ๆ โดยให้บริการการแก้ไขข้อบกพร่อง การปรับปรุงประสิทธิภาพการทํางาน และโปรแกรมแก้ไขการรักษาความปลอดภัย เพื่อให้ได้รับข้อมูลล่าสุดเพื่อให้มั่นใจถึงประสิทธิภาพการทํางานและความน่าเชื่อถือที่ดีที่สุดสําหรับงานการประมวลผลข้อมูลของคุณ

คุณลักษณะใหม่และการปรับปรุงของ Spark Release 3.4.1

Apache Spark 3.4.0 เป็นรุ่นที่ห้าในเส้น 3.x การเผยแพร่นี้ขับเคลื่อนโดยชุมชนโอเพนซอร์สแก้ไขตั๋ว Jira กว่า 2,600 ใบ ซึ่งแนะนําไคลเอ็นต์ Python สําหรับ Spark Connect ปรับปรุงการสตรีมที่มีโครงสร้างด้วยการติดตามความคืบหน้าต่างเวลาและการประมวลผลที่สถานะ Python ซึ่งขยายการครอบคลุม Pandas API ด้วยการสนับสนุนอินพุต NumPy ลดความซับซ้อนของการย้ายจากคลังข้อมูลแบบดั้งเดิมผ่านการปฏิบัติตามข้อกําหนด ANSI และฟังก์ชันใหม่ที่มีอยู่ภายใน นอกจากนี้ยังช่วยปรับปรุงประสิทธิภาพการพัฒนาและการดีบักด้วยการทําโปรไฟล์หน่วยความจํา นอกจากนี้ รันไทม์ 1.2 ขึ้นอยู่กับ Apache Spark 3.4.1 ซึ่งเป็นการเปิดตัวการบํารุงรักษาที่มุ่งเน้นไปที่การแก้ไขความเสถียร

จุดเด่นหลัก

อ่านเวอร์ชันเต็มของบันทึกย่อประจํารุ่นสําหรับ Apache Spark เวอร์ชันเฉพาะ โดยไปที่ทั้ง Spark 3.4.0 และ Spark 3.4.1

การปรับคิวรีแบบกําหนดเองใหม่ให้เหมาะสม

การสนับสนุนการเขียนพร้อมกันใน Spark

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

เมื่อต้องการเข้าถึงคุณลักษณะนี้ ให้ spark.sql.enable.concurrentWrites เปิดใช้งานค่าสถานะคุณลักษณะ ซึ่งจะเปิดใช้งานตามค่าเริ่มต้นเริ่มต้นจาก Runtime 1.2 (Spark 3.4) แม้ว่าคุณลักษณะนี้จะพร้อมใช้งานในเวอร์ชัน Spark 3 รุ่นอื่น ๆ แต่ไม่ได้เปิดใช้งานตามค่าเริ่มต้น คุณลักษณะนี้ไม่สนับสนุนการดําเนินการแบบขนานของคิวรี INSERT OVERWRITE ที่งานที่เกิดขึ้นพร้อมกันแต่ละงานจะเขียนทับข้อมูลบนพาร์ติชันที่แตกต่างกันของตารางเดียวกันแบบไดนามิก สําหรับวัตถุประสงค์นี้ Spark มีคุณลักษณะทางเลือกซึ่งสามารถเปิดใช้งานได้โดยการกําหนดค่าspark.sql.sources.partitionOverwriteModeการตั้งค่าเป็นแบบไดนามิก

การอ่านอย่างชาญฉลาดซึ่งข้ามไฟล์จากงานที่ล้มเหลว

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

ค่า spark.sql.auto.cleanup.enabled สถานะควบคุมคุณลักษณะใหม่ของเราแก้ไขปัญหานี้ เมื่อเปิดใช้งาน Spark จะข้ามการอ่านไฟล์ที่ยังไม่ได้รับการบันทึกโดยอัตโนมัติเมื่อดําเนินการ spark.read หรือเลือกคิวรีจากตาราง ไฟล์ที่เขียนก่อนที่จะเปิดใช้งานคุณลักษณะนี้จะยังคงอ่านได้ตามปกติ

การเปลี่ยนแปลงที่มองเห็นได้มีดังนี้:

  • ไฟล์ทั้งหมดจะรวมตัว tid-{jobID} ระบุในชื่อไฟล์แล้ว
  • โดยทั่วไปแทนที่จะ _success สร้างตัวทําเครื่องหมายในที่ตั้งเอาต์พุตเมื่องานเสร็จสมบูรณ์แล้ว ตัวทําเครื่องหมายใหม่ _committed_{jobID} จะถูกสร้างขึ้น มาร์กเกอร์นี้จะเชื่อมโยงรหัสงานที่สําเร็จกับชื่อไฟล์เฉพาะ
  • เราได้แนะนําคําสั่ง SQL ใหม่ที่ผู้ใช้สามารถเรียกใช้เป็นระยะเพื่อจัดการที่เก็บข้อมูลและล้างไฟล์ที่ไม่ผูกมัด ไวยากรณ์สําหรับคําสั่งนี้มีดังนี้:
    • วิธีล้างไดเรกทอรีที่ระบุ: CLEANUP ('/path/to/dir') [RETAIN number HOURS];
    • เมื่อต้องการล้างข้อมูลตารางที่ระบุ: CLEANUP [db_name.]table_name [RETAIN number HOURS]; ในไวยากรณ์ path/to/dir นี้ แสดง URI ตําแหน่งที่ตั้งที่ต้องการการล้างข้อมูล และ number เป็นค่าชนิดคู่ที่แสดงถึงระยะเวลาการเก็บรักษา ระยะเวลาการเก็บรักษาเริ่มต้นถูกตั้งค่าเป็นเจ็ดวัน
  • เราแนะนําตัวเลือกการกําหนดค่าใหม่ที่เรียกว่า spark.sql.deleteUncommittedFilesWhileListingซึ่งถูกตั้งค่า false เป็น ตามค่าเริ่มต้น การเปิดใช้งานตัวเลือกนี้ส่งผลให้การลบไฟล์ที่ไม่ได้ผูกมัดโดยอัตโนมัติระหว่างการอ่าน แต่สถานการณ์นี้อาจทําให้การดําเนินการอ่านช้าลง ขอแนะนําให้เรียกใช้คําสั่งล้างข้อมูลด้วยตนเองเมื่อไม่ได้ใช้งานคลัสเตอร์แทนการเปิดใช้งานค่าสถานะนี้

คู่มือการย้ายจากรันไทม์ 1.1 ถึงรันไทม์ 1.2

เมื่อโยกย้ายข้อมูลจากรันไทม์ 1.1 ซึ่งขับเคลื่อนโดย Apache Spark 3.3 ไปยัง Runtime 1.2 ซึ่งขับเคลื่อนโดย Apache Spark 3.4 ให้ตรวจสอบ คู่มือการโยกย้ายอย่างเป็นทางการ

คุณลักษณะใหม่และการปรับปรุงของ Delta Lake 2.4

เดลต้าเลคเป็นโครงการโอเพนซอร์ส (Open Source)ที่ช่วยสร้างสถาปัตยกรรมของเลคเฮาส์บนทะเลสาบ Delta Lake มี ทรานแซคชัน ACID การจัดการเมตาดาต้าที่ปรับขนาดได้ และรวม การประมวลผลข้อมูลสตรีมมิ่ง และ ชุดข้อมูล ไว้ด้านบนทะเลสาบข้อมูลที่มีอยู่

โดยเฉพาะอย่างยิ่ง Delta Lake มี:

  • ทรานเซคชัน ACID บน Spark: ระดับการแยกแบบอนุกรมได้ ทําให้ผู้อ่านไม่เห็นข้อมูลที่ไม่สอดคล้องกัน
  • การจัดการเมตาดาต้าที่ปรับขนาดได้: ใช้กําลังการประมวลผลแบบกระจายของ Spark เพื่อจัดการเมตาดาต้าทั้งหมดสําหรับตารางระดับ petabyte ที่มีไฟล์นับพันล้านรายการได้อย่างง่ายดาย
  • การรวมสตรีมมิ่ง และ การรวมกลุ่ม : ตารางใน Delta Lake เป็นตารางชุดงานและแหล่งการสตรีมและอ่างล้างหน้า การรวบรวมข้อมูลการสตรีม การเติมย้อนกลับประวัติชุดงาน คิวรีแบบโต้ตอบทั้งหมดเพียงแค่ทํางานออกจากกล่อง
  • การบังคับใช้ Schema: จัดการการเปลี่ยนแปลง Schema โดยอัตโนมัติเพื่อป้องกันการแทรกเรกคอร์ดที่ไม่ดีในระหว่างการนําเข้า
  • การเดินทางในเวลา: การกําหนดเวอร์ชันข้อมูลช่วยให้สามารถย้อนกลับ เส้นทางการตรวจสอบในอดีตเต็มรูปแบบ และการทดลองการเรียนรู้ของเครื่องที่ทําซ้ําได้
  • Upserts และ deletes: สนับสนุนการดําเนินการผสาน อัปเดต และลบเพื่อเปิดใช้งานกรณีการใช้งานที่ซับซ้อน เช่น การเปลี่ยนแปลงการเก็บข้อมูล การเปลี่ยนแปลงมิติ (SCD) การดําเนินการ การสตรีม upserts และอื่น ๆ

อ่านเวอร์ชันเต็มของบันทึกย่อประจํารุ่นสําหรับ Delta Lake 2.4

แพคเกจระดับเริ่มต้นสําหรับ Java, Scala, ไลบรารี Python

สําหรับรายการแพคเกจระดับเริ่มต้นทั้งหมดสําหรับ Java, Scala, Python และเวอร์ชันที่เกี่ยวข้อง ดู บันทึกย่อประจํารุ่น