แชร์ผ่าน


ใช้ Livy API เพื่อส่งและดําเนินการงานเซสชัน Spark ด้วยข้อมูลประจําตัวผู้ใช้

นําไปใช้กับ:✅ วิศวกรข้อมูลและวิทยาศาสตร์ข้อมูลใน Microsoft Fabric

เริ่มต้นใช้งานด้วย Livy API สําหรับ Fabric Data Engineering โดยการสร้างเลคเฮ้าส์ การรับรองความถูกต้องกับโทเค็น Microsoft Entra ค้นหาจุดสิ้นสุด Livy API ส่งงานชุดงานหรือเซสชันจากไคลเอ็นต์ระยะไกลไปยังการคํานวณ Fabric Spark และตรวจสอบผลลัพธ์

ข้อกำหนดเบื้องต้น

การเลือก REST API client

คุณสามารถใช้ภาษาการเขียนโปรแกรมต่าง ๆ หรือไคลเอ็นต์ GUI เพื่อโต้ตอบกับจุดสิ้นสุด REST API ในบทความนี้ เราใช้ Visual Studio Code Visual Studio Code จําเป็นต้องกําหนดค่าด้วย Jupyter Notebooks, PySpark และ ไลบรารีการรับรองความถูกต้องของ Microsoft (MSAL) สําหรับ Python

วิธีการอนุญาตคําขอ Livy API ด้วยโทเค็น Entra SPN

เมื่อต้องการทํางานกับ Fabric API รวมถึง Livy API ก่อนอื่นคุณต้องสร้างแอปพลิเคชัน Microsoft Entra และสร้างข้อมูลลับและใช้ข้อมูลลับนั้นในโค้ดของคุณ แอปพลิเคชันของคุณต้องลงทะเบียน และกําหนดค่าอย่างเพียงพอเพื่อดําเนินการเรียกใช้ API กับ Fabric สําหรับข้อมูลเพิ่มเติม ดู เพิ่มและจัดการข้อมูลประจําตัวของแอปพลิเคชันใน Microsoft Entra ID

หลังจากสร้างการลงทะเบียนแอปแล้ว ให้สร้างความลับของไคลเอ็นต์

สกรีนช็อตที่แสดงการลงทะเบียนแอป Entra และการเพิ่มความลับของไคลเอ็นต์

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

  2. ถัดไป เราจําเป็นต้องเพิ่มข้อมูลลับไคลเอ็นต์ในพื้นที่ทํางานของเรา

    สกรีนช็อตที่แสดงจัดการตัวเลือกการเข้าถึงการตั้งค่าของเลคเฮ้าส์

  3. ค้นหาข้อมูลลับไคลเอ็นต์ Entra และเพิ่มข้อมูลลับนั้นลงในพื้นที่ทํางาน และตรวจสอบให้แน่ใจว่าข้อมูลลับที่เพิ่งเพิ่มเข้าไปใหม่มีสิทธิ์ระดับผู้ดูแลระบบ

    สกรีนช็อตที่แสดงการเพิ่มบริการ SPN หลักใหม่ไปยังพื้นที่ทํางาน

วิธีอนุญาตคําขอ API Livy ด้วยโทเค็นแอป Entra

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

มีสิทธิในขอบเขตของ Microsoft Entra จํานวนมากที่จําเป็นในการดําเนินการงาน Livy ตัวอย่างนี้ใช้รหัส Spark อย่างง่าย + การเข้าถึงที่เก็บข้อมูล + SQL:

  • Code.AccessAzureDataExplorer.All

  • Code.AccessAzureDataLake.All

  • Code.AccessAzureKeyvault.All

  • Code.AccessFabric.All

  • Code.AccessStorage.All

  • Item.ReadWrite.All

  • Lakehouse.Execute.All

  • Workspace.ReadWrite.All

    สกรีนช็อตที่แสดงสิทธิ์ Livy API ในศูนย์การจัดการ Microsoft Entra

หมายเหตุ

ในระหว่างการแสดงตัวอย่างสาธารณะ ขอบเขตเหล่านี้อาจมีการเปลี่ยนแปลงเมื่อเราเพิ่มขอบเขตที่ละเอียดขึ้นอีกสองสามขอบเขต เมื่อการเปลี่ยนแปลงขอบเขตเหล่านี้เกิดขึ้น แอป Livy ของคุณอาจเสียหาย ตรวจสอบรายการนี้เนื่องจากจะได้รับการอัปเดตด้วยขอบเขตเพิ่มเติม

ลูกค้าบางรายต้องการสิทธิ์ที่ละเอียดมากกว่ารายการก่อนหน้า คุณสามารถลบ Item.ReadWrite.All และแทนที่ด้วยสิทธิ์ระดับแยกย่อยเหล่านี้ได้:

  • Code.AccessAzureDataExplorer.All
  • Code.AccessAzureDataLake.All
  • Code.AccessAzureKeyvault.All
  • Code.AccessFabric.All
  • Code.AccessStorage.All
  • Lakehouse.Execute.All
  • Lakehouse.ReadWrite.All
  • Workspace.ReadWrite.All
  • Notebook.ReadWrite.All
  • SparkJobDefinition.ReadWrite.All
  • MLModel.ReadWrite.All
  • MLExperiment.ReadWrite.All
  • Dataset.ReadWrite.All

เมื่อคุณลงทะเบียนแอปพลิเคชันของคุณ คุณจะต้องใช้ทั้ง ID แอปพลิเคชัน (ไคลเอนต์) และ ID ไดเรกทอรี (ผู้เช่า)

สกรีนช็อตแสดงภาพรวมแอป Livy API ในศูนย์การจัดการ Microsoft Entra

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

วิธีการค้นหาจุดสิ้นสุด Fabric Livy API

สิ่งประดิษฐ์ของเลคเฮ้าส์จําเป็นสําหรับการเข้าถึงจุดสิ้นสุดของ Livy เมื่อสร้าง Lakehouse แล้ว จุดสิ้นสุด Livy API สามารถอยู่ภายในแผงการตั้งค่าได้

สกรีนช็อตแสดงจุดสิ้นสุด Livy API ในการตั้งค่า Lakehouse

จุดสิ้นสุดของ Livy API จะเป็นไปตามรูปแบบนี้:

https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/

URL จะถูกผนวกเข้ากับเซสชัน<หรือ>ชุดงาน<โดย>ขึ้นอยู่กับสิ่งที่คุณเลือก

ดาวน์โหลดไฟล์ Swagger API Livy

ไฟล์ Swagger แบบเต็มสําหรับ Livy API จะพร้อมใช้งานที่นี่

ส่งงาน Livy API

ตอนนี้การตั้งค่าของ Livy API เสร็จสมบูรณ์แล้ว คุณสามารถเลือกที่จะส่งชุดงานหรือเซสชันงานได้

การรวมกับสภาพแวดล้อม Fabric

ตามค่าเริ่มต้น เซสชัน Livy API นี้จะเรียกใช้กับพูลเริ่มต้นสําหรับพื้นที่ทํางาน อีกวิธีหนึ่งคือ คุณสามารถใช้ Fabric Environments สร้าง กําหนดค่า และใช้สภาพแวดล้อมใน Microsoft Fabric เพื่อกําหนดพูล Spark ที่เซสชัน Livy API ใช้สําหรับงาน Spark เหล่านี้ได้

หากต้องการใช้ Fabric Environment ในเซสชัน Livy Spark เพียงแค่อัปเดต json เพื่อรวมส่วนนี้

create_livy_session = requests.post(livy_base_url, headers = headers, json={
    "conf" : {
        "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
    }
)

หากต้องการใช้ Fabric Environment ในเซสชันชุด Livy Spark เพียงแค่อัปเดตส่วนข้อมูล json ดังที่แสดงด้านล่าง

payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py", 
"conf": {
    "spark.targetLakehouse": "Fabric_LakehouseID",
    "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}"  # remove this line to use starter pools instead of an environment, replace "EnvironmentID" with your environment ID
    }
}

วิธีการตรวจสอบประวัติคําขอ

คุณสามารถใช้ฮับการตรวจสอบเพื่อดูการส่ง Livy API ก่อนหน้าของคุณ และแก้ไขจุดบกพร่องของข้อผิดพลาดในการส่งได้

สกรีนช็อตที่แสดงการส่ง Livy API ก่อนหน้านี้ในฮับการตรวจสอบ