แชร์ผ่าน


รันไทม์ Apache Spark ใน Fabric

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

ส่วนประกอบหลักของรันไทม์ Fabric:

  • Apache Spark - ไลบรารีการประมวลผลแบบกระจายโอเพนซอร์สที่มีประสิทธิภาพซึ่งช่วยให้การประมวลผลข้อมูลและการวิเคราะห์งานขนาดใหญ่ได้ Apache Spark มอบแพลตฟอร์มที่หลากหลายและมีประสิทธิภาพสูงสําหรับประสบการณ์ด้านวิศวกรรมข้อมูลและวิทยาศาสตร์ข้อมูล

  • Delta Lake - เลเยอร์การจัดเก็บโอเพนซอร์สที่นําการทําธุรกรรม ACID และคุณสมบัติความน่าเชื่อถือของข้อมูลอื่น ๆ ไปยัง Apache Spark Delta Lake ช่วยเพิ่มความสามารถในการประมวลผลข้อมูลและรับประกันความสอดคล้องของข้อมูลในการดําเนินการที่เกิดขึ้นพร้อมกันหลายรายการภายใน Fabric Runtime

  • กลไก การดําเนินการแบบเนทีฟ - คือการปรับปรุงเปลี่ยนแปลงสําหรับปริมาณงาน Apache Spark ซึ่งนําเสนอประสิทธิภาพที่สําคัญโดยการดําเนินการคิวรี Spark โดยตรงบนโครงสร้างพื้นฐานของเลคเฮ้าส์ การรวมเข้าด้วยกันอย่างราบรื่น ไม่จําเป็นต้องมีการเปลี่ยนแปลงรหัสและหลีกเลี่ยงการล็อกผู้จัดจําหน่ายซึ่งสนับสนุนทั้งรูปแบบ Parquet และ Delta ทั่วทั้ง Apache Spark API ใน Runtime 1.3 (Spark 3.5) กลไกนี้เพิ่มความเร็วในการคิวรี่ได้เร็วขึ้นกว่า OSS Spark แบบเดิมถึงสี่เท่า ดังที่แสดงในเกณฑ์มาตรฐาน TPC-DS 1TB ลดค่าใช้จ่ายในการดําเนินงานและปรับปรุงประสิทธิภาพในงานข้อมูลต่าง ๆ รวมถึงการนําเข้าข้อมูล ETL การวิเคราะห์ และคิวรีแบบโต้ตอบ สร้างขึ้นจาก Velox ของ Meta และ Apache Gluten ของ Intel เพื่อเพิ่มประสิทธิภาพการใช้ทรัพยากรในขณะที่จัดการกับสถานการณ์การประมวลผลข้อมูลที่หลากหลาย

  • แพคเกจระดับเริ่มต้นสําหรับ Java/Scala, Python และ R - แพคเกจที่สนับสนุนภาษาและสภาพแวดล้อมการเขียนโปรแกรมที่หลากหลาย แพคเกจเหล่านี้จะถูกติดตั้งและกําหนดค่าโดยอัตโนมัติ ซึ่งช่วยให้นักพัฒนาสามารถใช้ภาษาการเขียนโปรแกรมที่ต้องการสําหรับงานการประมวลผลข้อมูล

  • Microsoft Fabric Runtime ถูกสร้างขึ้นจาก ระบบปฏิบัติการโอเพนซอร์สที่แข็งแกร่ง เพื่อให้มั่นใจถึงความเข้ากันได้กับการกําหนดค่าฮาร์ดแวร์และความต้องการของระบบต่าง ๆ

ด้านล่าง นี้ คุณจะพบการเปรียบเทียบที่ครอบคลุมของคอมโพเนนต์ที่สําคัญ รวมถึงเวอร์ชันของ Apache Spark ระบบปฏิบัติการที่รองรับ Java, Scala, Python, Delta Lake และ R สําหรับรันไทม์ที่ใช้ Apache Spark ภายในแพลตฟอร์ม Microsoft Fabric

เคล็ดลับ

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

ส่วนประกอบ รันไทม์ 1.2 รันไทม์ 1.3 รันไทม์ 2.0
ขั้นตอนการเผยแพร่ EOSA GA ทดลอง (พรีวิว)
เวอร์ชัน Apache Spark 3.4.1 3.5.5 4.0.0
ระบบปฏิบัติการ นาวิกโยธิน 2.0 นาวิกโยธิน 2.0 มาริเนอร์ 3.0
รุ่น Java 11 11 21
รุ่น Scala 2.12.17 2.12.17 2.13.16
เวอร์ชัน Python 3.10 3.11 3.12.11
เวอร์ชันเดลต้าเลค 2.4.0 3.2 4.0.0

ไปที่ รันไทม์ 1.2, รันไทม์ 1.3 หรือ รันไทม์ 2.0 เพื่อสํารวจรายละเอียด ฟีเจอร์ใหม่ การปรับปรุง และสถานการณ์การโยกย้ายสําหรับรันไทม์รุ่นเฉพาะ

การปรับเนื้อผ้าให้เหมาะสม

ใน Microsoft Fabric ทั้งกลไก Spark และการใช้งาน Delta Lake จะรวมการเพิ่มประสิทธิภาพและคุณลักษณะเฉพาะของแพลตฟอร์ม คุณลักษณะเหล่านี้ได้รับการออกแบบมาเพื่อใช้การผสานรวมแบบเนทีฟภายในแพลตฟอร์ม สิ่งสําคัญคือต้องทราบว่าคุณสมบัติทั้งหมดเหล่านี้สามารถปิดใช้งานเพื่อให้ได้ฟังก์ชัน Spark และ Delta Lake มาตรฐาน ผ้ารันไทม์สําหรับ Apache Spark ครอบคลุม:

  • Apache Spark เวอร์ชันโอเพนซอร์สที่สมบูรณ์
  • คอลเลกชันของการปรับปรุงประสิทธิภาพคิวรีที่มีอยู่ภายในเกือบ 100 รายการ การเพิ่มประสิทธิภาพเหล่านี้รวมถึงคุณลักษณะเช่นการแคชพาร์ติชัน (การเปิดใช้งานแคชพาร์ติชัน FileSystem เพื่อลดการเรียกใช้เมตาสโตร์) และ Cross Join กับ Projection ของคิวรีย่อยสเกลาร์
  • แคชอัจฉริยะในตัว

ภายใน Fabric Runtime สําหรับ Apache Spark และ Delta Lake มีความสามารถของนักเขียนแบบดั้งเดิมที่รองรับสองวัตถุประสงค์หลักได้แก่:

  • ซึ่งมีประสิทธิภาพที่แตกต่างกันสําหรับการเขียนปริมาณงานปรับกระบวนการเขียนให้เหมาะสม
  • ค่าเริ่มต้นเป็นการปรับ V-Order ให้เหมาะสมของไฟล์ Delta Parquet การปรับ Delta Lake V-Order ให้เหมาะสมเป็นสิ่งสําคัญสําหรับการส่งมอบประสิทธิภาพการอ่านที่เหนือชั้นกว่าในเครื่องมือ Fabric ทั้งหมด เพื่อให้เข้าใจลึกขึ้นเกี่ยวกับวิธีการทํางานและวิธีการจัดการ โปรดดูบทความเฉพาะเกี่ยวกับ การปรับตาราง Delta Lake และ V-Order ให้เหมาะสม

การสนับสนุนรันไทม์หลายรายการ

ผ้ารองรับการทํางานหลายอย่าง ทําให้ผู้ใช้มีความยืดหยุ่นในการเปลี่ยนไปมาระหว่างกันได้อย่างราบรื่น ลดความเสี่ยงของความไม่สามารถใช้งานหรือการหยุดชะงัก

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

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

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

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

นอกจากนี้ เมื่อต้องการเปลี่ยนรันไทม์ที่ Environment ระดับรายการ ให้สร้างรายการ สภาพแวดล้อม ใหม่หรือรายการที่เปิดอยู่และที่มีอยู่ ภายใต้ดรอปดาวน์ รัน ไทม์ ให้เลือกรุ่นรันไทม์ที่คุณต้องการจากตัวเลือกที่พร้อมใช้งาน แล้วเลือก SavePublish จากนั้นเลือกการเปลี่ยนแปลงของคุณ ถัดไปคุณสามารถใช้รายการนี้Environmentกับ or Spark Job DefinitionของคุณNotebook

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

ผลของการเปลี่ยนแปลงรันไทม์ในการตั้งค่า Spark

โดยทั่วไป เราตั้งใจที่จะโยกย้ายการตั้งค่า Spark ทั้งหมด อย่างไรก็ตาม ถ้าเราระบุว่าการตั้งค่า Spark ไม่เข้ากันกับ Runtime B เราจะออกข้อความเตือนและงดใช้การตั้งค่า

การเปลี่ยนแปลงรันไทม์การตั้งค่า Spark

ผลของการเปลี่ยนแปลงรันไทม์ในการจัดการไลบรารี

โดยทั่วไป วิธีการของเราคือการโยกย้ายไลบรารีทั้งหมดจากรันไทม์ A ไปยังรันไทม์ B รวมถึงรันไทม์สาธารณะและแบบกําหนดเอง หากเวอร์ชัน Python และ R ยังคงไม่เปลี่ยนแปลง ไลบรารีควรทํางานได้อย่างถูกต้อง อย่างไรก็ตาม สําหรับ Jars มีความเป็นไปได้สูงที่อาจไม่ทํางานเนื่องจากการเปลี่ยนแปลงการพึ่งพา และปัจจัยอื่นๆ เช่น การเปลี่ยนแปลงใน Scala, Java, Spark และระบบปฏิบัติการ

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

การเปลี่ยนแปลงรันไทม์การจัดการไลบรารี

อัปเกรดโปรโตคอล Delta Lake

ฟีเจอร์ของ Delta Lake สามารถทํางานย้อนหลังได้เสมอ ทําให้มั่นใจได้ว่าตารางที่สร้างขึ้นใน Delta Lake รุ่นที่ต่ํากว่าสามารถโต้ตอบกับเวอร์ชันที่สูงกว่าได้อย่างราบรื่น อย่างไรก็ตาม เมื่อเปิดใช้งานคุณลักษณะบางอย่าง (ตัวอย่างเช่น โดยใช้ delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) วิธีการ ความเข้ากันได้ไปข้างหน้ากับเวอร์ชัน Delta Lake ที่ต่ํากว่าอาจถูกบุกรุก ในกรณีดังกล่าว คุณจําเป็นต้องปรับเปลี่ยนปริมาณงานที่อ้างอิงตารางที่อัปเกรดเพื่อให้สอดคล้องกับเวอร์ชัน Delta Lake ที่รักษาความเข้ากันได้

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

ข้อกําหนดของโปรโตคอลแบ่งออกเป็นสององค์ประกอบที่แตกต่างกัน: โปรโตคอล "อ่าน" และโปรโตคอล "เขียน" สําหรับข้อมูลเพิ่มเติม โปรดไปที่หน้า "Delta Lake จัดการความเข้ากันได้ของคุณสมบัติอย่างไร"

GIF แสดงคําเตือนทันทีเมื่อมีการใช้วิธีการ upgradeTableProtocol

ผู้ใช้สามารถดําเนินการคําสั่ง delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) ภายในสภาพแวดล้อม PySpark และใน Spark SQL และ Scala ได้ คําสั่งนี้ช่วยให้พวกเขาเริ่มต้นการอัปเดตบนตาราง Delta

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

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

สําคัญ

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

สกรีนช็อตแสดงคําเตือนเมื่ออัปเกรดโปรโตคอลเดลต้าเลค

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