แชร์ผ่าน


อะไรคือ autotune สําหรับการกําหนดค่า Apache Spark ใน Fabric?

Autotune ปรับการกําหนดค่า Apache Spark โดยอัตโนมัติเพื่อเร่งความเร็วการดําเนินการของปริมาณงานและเพื่อปรับประสิทธิภาพโดยรวมให้เหมาะสมที่สุด Autotune ช่วยประหยัดเวลาและทรัพยากรเมื่อเทียบกับการปรับแต่งด้วยตนเอง ซึ่งจําเป็นต้องใช้ความพยายาม ทรัพยากร เวลา และการทดลองที่กว้างขวาง Autotune ใช้ข้อมูลการดําเนินการในอดีตจากปริมาณงานของคุณเพื่อค้นหาซ้ํา ๆ และใช้การกําหนดค่าที่มีประสิทธิภาพที่สุดสําหรับปริมาณงานที่เฉพาะเจาะจง

หมายเหตุ

คุณลักษณะการปรับแต่งคิวรี autotune ใน Microsoft Fabric กําลังอยู่ในช่วงตัวอย่าง Autotune จะพร้อมใช้งานในทุกภูมิภาคการผลิต แต่จะถูกปิดใช้งานตามค่าเริ่มต้น คุณสามารถเปิดใช้งานผ่านการตั้งค่าการกําหนดค่า Spark ภายในสภาพแวดล้อม หรือภายในเซสชันเดียวโดยรวมการตั้งค่า Spark ที่เกี่ยวข้องในสมุดบันทึก Spark หรือรหัสข้อกําหนดงาน Spark ของคุณ

การปรับแต่งคิวรี่

Autotune กําหนดค่าการตั้งค่า Apache Spark สามรายการสําหรับคิวรีแต่ละรายการของคุณแยกต่างหาก:

  • spark.sql.shuffle.partitions - ตั้งค่าจํานวนพาร์ติชันสําหรับการสลับข้อมูลในระหว่างการรวมหรือการรวม ค่าเริ่มต้นคือ 200
  • spark.sql.autoBroadcastJoinThreshold - ตั้งค่าขนาดตารางสูงสุดเป็นไบต์ที่กระจายไปยังโหนดผู้ปฏิบัติงานทั้งหมดเมื่อมีการดําเนินการรวม ค่าเริ่มต้นคือ 10 MB
  • spark.sql.files.maxPartitionBytes - กําหนดจํานวนไบต์สูงสุดที่จะแพ็คลงในพาร์ติชันเดียวเมื่ออ่านไฟล์ ใช้ได้กับแหล่งที่มาของไฟล์ Parquet, JSON และ ORC ค่าเริ่มต้นคือ 128 MB

เคล็ดลับ

การปรับแต่งคิวรี Autotune จะตรวจสอบคิวรีแต่ละรายการและสร้างแบบจําลอง ML ที่แตกต่างกันสําหรับแต่ละคิวรี ซึ่งเป้าหมายเฉพาะ:

  • คิวรีที่ซ้ํา
  • คิวรีที่ทํางานนาน (ที่มีการดําเนินการมากกว่า 15 วินาที)
  • คิวรี Apache Spark SQL API (ยกเว้นคิวรีที่เขียนใน RDD API ซึ่งหาได้ยากมาก) แต่เราปรับคิวรีทั้งหมดให้เหมาะสมโดยไม่คํานึงถึงภาษา (สเกลา PySpark, R, Spark SQL)

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

สกรีนช็อตของเวลาการดําเนินการที่มีการเปิดใช้งาน autotune

การหยวนที่ยึดตาม AI เบื้องหลัง Autotune

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

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

จากมุมมอง AI ที่รับผิดชอบ คุณลักษณะ Autotune ประกอบด้วยกลไกความโปร่งใสที่ออกแบบมาเพื่อแจ้งให้คุณทราบเกี่ยวกับการใช้งานและประโยชน์ของข้อมูลของคุณ ความปลอดภัยและความเป็นส่วนตัวสอดคล้องกับมาตรฐานของ Microsoft การตรวจสอบอย่างต่อเนื่องจะรักษาประสิทธิภาพและการทํางานของระบบหลังการเปิดใช้

เปิดใช้งานการแสดงอัตโนมัติ

Autotune จะพร้อมใช้งานในทุกภูมิภาคการผลิต แต่ จะถูกปิดใช้งานตามค่าเริ่มต้น คุณสามารถเปิดใช้งานผ่านการตั้งค่าการกําหนดค่า Spark ภายในสภาพแวดล้อมได้ เมื่อต้องการเปิดใช้งาน Autotune ให้สร้างสภาพแวดล้อมใหม่หรือตั้งค่าคุณสมบัติ Spark 'spark.ms.autotune.enabled = true' ตามที่แสดงในสกรีนช็อตด้านล่าง การตั้งค่านี้จะถูกสืบทอดโดยสมุดบันทึกและงานทั้งหมดที่ทํางานในสภาพแวดล้อมนั้น ซึ่งจะปรับให้เป็นแบบอัตโนมัติ

สกรีนช็อตของการเปิดใช้งาน autotune

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

หมายเหตุ

Autotune เข้ากันได้กับ Fabric Runtime 1.1 และรันไทม์ 1.2 Autotune จะไม่ทํางานเมื่อ โหมด การทํางานพร้อมกันสูงหรือเมื่อ เปิดใช้งานจุด สิ้นสุดส่วนตัว อย่างไรก็ตาม autotune รวมกับการปรับขนาดอัตโนมัติอย่างราบรื่นโดยไม่คํานึงถึงการกําหนดค่า

คุณสามารถเปิดใช้งานการเรียกใช้อัตโนมัติภายในเซสชันเดียวได้ รวมถึงการตั้งค่า Spark ที่เกี่ยวข้องในสมุดบันทึก Spark หรือรหัส Spark Job Definition ของคุณ

%%sql
SET spark.ms.autotune.enabled=TRUE

คุณสามารถควบคุม Autotune ผ่านการตั้งค่า Spark สําหรับสมุดบันทึก Spark หรือรหัสข้อกําหนดงาน Spark ที่เกี่ยวข้องของคุณ เมื่อต้องการปิดใช้งาน Autotune ให้ดําเนินการคําสั่งต่อไปนี้เป็นเซลล์แรก (สมุดบันทึก) หรือบรรทัดของรหัส (SJD)

%%sql 
SET spark.ms.autotune.enabled=FALSE 

กรณีศึกษา

เมื่อดําเนินการคิวรี Apache Spark autotune จะสร้างแบบจําลอง ML ที่กําหนดเองเฉพาะเพื่อปรับการดําเนินการของคิวรีให้เหมาะสม ซึ่งวิเคราะห์รูปแบบคิวรีและความต้องการของทรัพยากร พิจารณาคิวรีเริ่มต้นเพื่อกรองชุดข้อมูลตามแอตทริบิวต์เฉพาะ เช่น ประเทศ ในขณะที่ตัวอย่างนี้ใช้การกรองทางภูมิศาสตร์ หลักการจะนําไปใช้กับแอตทริบิวต์หรือการดําเนินการใด ๆ ภายในคิวรีโดยสากล:

%%pyspark
df.filter(df.country == "country-A")

Autotune จะเรียนรู้จากคิวรีนี้ โดยปรับการดําเนินการในภายหลังให้เหมาะสม เมื่อคิวรี่เปลี่ยนแปลง เช่น โดยการเปลี่ยนค่าตัวกรองหรือใช้การแปลงข้อมูลที่แตกต่างกัน สาระสําคัญเชิงโครงสร้างของคิวรีมักจะสอดคล้องกัน:

%%pyspark
df.filter(df.country == "country-B")

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

บันทึก

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

สกรีนช็อตของบันทึก autotune ภายในฮับการตรวจสอบ

คุณสามารถค้นหาชนิดของรายการต่าง ๆ ในบันทึกของคุณ ต่อไปนี้รวมถึงคีย์:

สถานภาพ คำอธิบาย
AUTOTUNE_DISABLED ข้าม Autotune ถูกปิดใช้งาน เนื่องจากการตั้งค่านี้ใช้ไม่ได้ การป้องกันการค้นคืนและการปรับคิวรีให้เหมาะสม เปิดใช้งาน Autotune เพื่อใช้ความสามารถอย่างเต็มที่ในขณะที่คํานึงถึงความเป็นส่วนตัวของลูกค้า"
QUERY_TUNING_DISABLED ข้าม ปิดใช้งานการปรับแต่งคิวรี Autotune เปิดใช้งานเพื่อปรับการตั้งค่าสําหรับคิวรี Spark SQL ของคุณอย่างละเอียด
QUERY_PATTERN_NOT_MATCH ข้าม รูปแบบแบบสอบถามไม่ตรงกัน Autotune จะมีผลสําหรับคิวรีแบบอ่านอย่างเดียว
QUERY_DURATION_TOO_SHORT ข้าม ระยะเวลาคิวรีของคุณสั้นเกินไปที่จะปรับให้เหมาะสม Autotune จําเป็นต้องใช้คิวรีที่ยาวขึ้นสําหรับการปรับแต่งที่มีประสิทธิภาพ คิวรีควรทํางานเป็นเวลาอย่างน้อย 15 วินาที
QUERY_TUNING_SUCCEED สำเร็จ การปรับแต่งคิวรีเสร็จสมบูรณ์ ใช้การตั้งค่าสปาร์คที่เหมาะสม

หมายเหตุความโปร่งใส

เพื่อปฏิบัติตามมาตรฐาน AI ที่รับผิดชอบ ส่วนนี้มีจุดมุ่งหมายเพื่อชี้แจงการใช้งานและการตรวจสอบคุณสมบัติ Autotune ส่งเสริมความโปร่งใสและเปิดใช้งานการตัดสินใจที่มีข้อมูล

วัตถุประสงค์ของ Autotune

Autotune ได้รับการพัฒนาเพื่อเพิ่มประสิทธิภาพของปริมาณงาน Apache Spark สําหรับผู้เชี่ยวชาญด้านข้อมูลเป็นหลัก ฟังก์ชั่นที่สําคัญได้แก่:

  • การปรับการกําหนดค่า Apache Spark แบบอัตโนมัติเพื่อลดเวลาในการดําเนินการ
  • ลดความพยายามในการปรับแต่งด้วยตนเอง
  • ใช้ข้อมูลปริมาณงานในอดีตเพื่อปรับแต่งการกําหนดค่าซ้ํา ๆ

การตรวจสอบ Autotune

Autotune ได้รับการทดสอบอย่างครอบคลุมเพื่อให้มั่นใจถึงประสิทธิภาพและความปลอดภัย:

  • การทดสอบที่เข้มงวดด้วยปริมาณงาน Spark ที่หลากหลายเพื่อตรวจสอบประสิทธิภาพของอัลกอริทึมการปรับแต่ง
  • การเปรียบเทียบวิธีการเพิ่มประสิทธิภาพ Spark มาตรฐานเพื่อแสดงให้เห็นถึงประโยชน์ด้านประสิทธิภาพ
  • กรณีศึกษาในโลกแห่งความจริงที่เน้นคุณค่าในทางปฏิบัติของ Autotune
  • ยึดถือมาตรฐานความปลอดภัยและความเป็นส่วนตัวที่เข้มงวดเพื่อปกป้องข้อมูลของผู้ใช้

ข้อมูลผู้ใช้ถูกใช้เพื่อปรับปรุงประสิทธิภาพการทํางานของปริมาณงานของคุณโดยเฉพาะด้วยการป้องกันที่แข็งแกร่งเพื่อป้องกันการใช้งานในทางที่ผิดหรือการเปิดเผยข้อมูลที่มีความละเอียดอ่อน