แชร์ผ่าน


การป้องกันการเข้าถึงขาออกของพื้นที่ทํางานสําหรับปริมาณงานด้านวิศวกรรมข้อมูล

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

ทําความเข้าใจการป้องกันการเข้าถึงขาออกด้วยวิศวกรรมข้อมูล

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

ไดอะแกรมของการป้องกันการเข้าถึงขาออกของพื้นที่ทํางานในสถานการณ์วิศวกรรมข้อมูล

การกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับวิศวกรรมข้อมูล

คุณสามารถสร้างรายการที่อนุญาตได้โดยใช้ปลายทางส่วนตัวที่มีการจัดการเท่านั้น กฎการเชื่อมต่อข้อมูลไม่ได้รับการสนับสนุนสําหรับปริมาณงานวิศวกรรมข้อมูล เมื่อต้องการกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับวิศวกรรมข้อมูล:

  1. ทําตามขั้นตอนเพื่อเปิดใช้งานการป้องกันการเข้าถึงขาออก

  2. หลังจากเปิดใช้งานการป้องกันการเข้าถึงขาออกแล้ว คุณสามารถตั้งค่า ปลายทางส่วนตัวที่มีการจัดการ เพื่ออนุญาตให้เข้าถึงพื้นที่ทํางานอื่นๆ หรือทรัพยากรภายนอกได้ตามต้องการ

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

ชนิดรายการวิศวกรรมข้อมูลที่ได้รับการสนับสนุน

ชนิดรายการวิศวกรรมข้อมูลต่อไปนี้ได้รับการสนับสนุนด้วยการป้องกันการเข้าถึงขาออก:

  • เลคเฮาส์
  • Notebooks
  • คําจํากัดความของ Spark Job
  • สภาพแวดล้อม

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

Notebooks

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

Source ปลายทาง มีการตั้งค่าตําแหน่งข้อมูลส่วนตัวที่มีการจัดการหรือไม่ สมุดบันทึกหรืองาน Spark สามารถเชื่อมต่อกับปลายทางได้หรือไม่
โน้ตบุ๊ก (พื้นที่ทํางาน A) เลคเฮาส์ (พื้นที่ทํางาน B) ใช่ จุดสิ้นสุดส่วนตัวที่มีการจัดการข้ามพื้นที่ทํางานจาก A ถึง B ถูกตั้งค่าใน A ใช่
โน้ตบุ๊ก (พื้นที่ทํางาน A) เลคเฮาส์ (พื้นที่ทํางาน B) ไม่ ไม่
โน้ตบุ๊ก (พื้นที่ทํางาน A) ภายนอก Azure Data Lake Storage (ADLS) G2/แหล่งข้อมูลอื่น ๆ ใช่ ปลายทางส่วนตัวที่มีการจัดการได้รับการตั้งค่าจาก A ไปยังแหล่งข้อมูลภายนอก ใช่
โน้ตบุ๊ก (พื้นที่ทํางาน A) ADLS G2 ภายนอก/แหล่งข้อมูลอื่นๆ ไม่ ไม่

การทําความเข้าใจลักษณะการทํางานของเส้นทางไฟล์ในสมุดบันทึก Fabric

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

เส้นทางสัมพัทธ์

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

ตัวอย่าง:
Files/people.csv

รหัสประกายไฟ:

df = spark.read.format("csv").option("header", "true").load("Files/people.csv")

เส้นทางสัมพัทธ์ทํางานได้ทันทีและไม่ต้องกําหนดค่าเพิ่มเติม

เส้นทางที่มีคุณสมบัติครบถ้วน (สัมบูรณ์)

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

ตัวอย่างไม่ถูกต้อง (จะล้มเหลว):
abfss://your_workspace@onelake.dfs.fabric.microsoft.com/your_lakehouse.Lakehouse/Files/people.csv

การเข้าถึงข้อมูลในพื้นที่ทํางาน

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

รูปแบบ URI ที่ถูกต้อง:
abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Files/people.csv

ตัวอย่างโค้ด Spark:

df = spark.read.format("csv").option("header", "true").load("abfss://4c8efb42-7d2a-4a87-b1b1-e7e98bea053d@onelake.dfs.fabric.microsoft.com/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/Files/people.csv")

วิธีค้นหา Workspace และ Lakehouse ID

  • รหัสพื้นที่ทํางาน: GUID หลังจาก /groups/ ใน URL พื้นที่ทํางาน Fabric ของคุณ
  • รหัสเลคเฮาส์: GUID หลังจาก /lakehouses/ ใน URL

ตัวอย่าง URL:
https://app.fabric.microsoft.com/groups/4c8efb42-7d2a-4a87-b1b1-e7e98bea053d/lakehouses/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/...

Note

ใช้ Workspace ID และ Lakehouse ID ใน URI เสมอเมื่อเข้าถึงข้อมูลในพื้นที่ทํางาน

งาน Spark

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

  • การติดตั้งแพ็คเกจ Python โดยตรงจาก PyPI โดยใช้ pip install
  • การเข้าถึงสาธารณสมบัติ เช่น https://login.microsoftonline.com
  • การเชื่อมต่อกับ API หรือเว็บไซต์ภายนอก

Microsoft Fabric บังคับใช้ข้อจํากัดนี้ผ่านเครือข่ายเสมือนที่มีการจัดการ (VNET ที่มีการจัดการ) ซึ่งแยกคลัสเตอร์ Spark ออกจากเครือข่ายภายนอก เว้นแต่จะได้รับสิทธิ์การเข้าถึงที่ชัดเจน

การเชื่อมต่อที่ปลอดภัยด้วยอุปกรณ์ปลายทางส่วนตัวที่มีการจัดการ

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

  • บริการภายนอก (ตัวอย่างเช่น ฐานข้อมูล Azure SQL, ที่เก็บข้อมูล Azure Blob)
  • พื้นที่ทํางาน Fabric อื่นๆ ภายในผู้เช่าเดียวกัน

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

การติดตั้งไลบรารีอย่างปลอดภัยในพื้นที่ทํางานที่มีการป้องกันการเข้าถึงขาออก

เนื่องจาก Fabric บล็อกการรับส่งข้อมูลทางอินเทอร์เน็ตสาธารณะ คลัสเตอร์ Spark จึงไม่สามารถติดตั้งแพ็คเกจจาก PyPI ได้โดยตรงโดยใช้ pip install.

คุณมีสองตัวเลือกที่ปลอดภัยสําหรับการติดตั้งไลบรารีในพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก:

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

  2. โฮสต์มิเรอร์ PyPI ส่วนตัว: ตั้งค่าที่เก็บ PyPI ส่วนตัวบน Azure Storage และซิงโครไนซ์กับแพคเกจที่เลือกจากดัชนี PyPI สาธารณะ กําหนดค่าสภาพแวดล้อม Fabric ของคุณเพื่อติดตั้งแพ็คเกจจากมิเรอร์ส่วนตัวนี้โดยใช้ปลายทางส่วนตัวที่มีการจัดการ โดยรักษาความสอดคล้องกับนโยบายความปลอดภัยของเครือข่าย

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

ตัวเลือกที่ 1: อัปโหลดและใช้ไฟล์วงล้อ

  1. ระบุแพ็คเกจที่ขาดหายไปซึ่งไม่รวมอยู่ในรันไทม์ Fabric Spark

  2. เรียกใช้สคริปต์ต่อไปนี้บนทรัพยากรการประมวลผลของคุณเพื่อตั้งค่าสภาพแวดล้อม python ภายในเครื่องที่เหมือนกับรันไทม์ Microsoft Fabric Spark 1.3 สคริปต์นี้ต้องการไฟล์ YAML ที่มีรายการไลบรารีทั้งหมดที่รวมอยู่ในสภาพแวดล้อมที่อบไว้ล่วงหน้า

  3. ตรวจสอบให้แน่ใจว่า ไลบรารีส่วนตัวที่โฮสต์ของ Microsoft ถูกลบออกจาก YAML นี้

    wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh 
    bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh 
    chmod 755 -R /usr/lib/miniforge3/ 
    export PATH="/usr/lib/miniforge3/bin:$PATH" 
    sudo apt-get update 
    sudo apt-get -yq install gcc g++ 
    conda env create -n <custom-env-name> -f Python<version>-CPU.yml 
    source activate <custom-env-name> 
    
  4. สามารถใช้สคริปต์เพื่อส่งผ่านไฟล์ requirements.txt ของคุณ ซึ่งมีแพ็คเกจและเวอร์ชันทั้งหมดที่คุณต้องการติดตั้งในรันไทม์ Spark โดยจะพิมพ์ชื่อของไฟล์ล้อใหม่/การพึ่งพาสําหรับข้อกําหนดไลบรารีอินพุตของคุณ

    pip install -r <input-user-req.txt> > pip_output.txt 
    cat pip_output.txt | grep "Using cached *" 
    
  5. ดาวน์โหลด .whl ไฟล์ด้วยตนเอง

  6. ใช้ Environment Artifact เพื่ออัปโหลดวงล้อที่จําเป็นทั้งหมด

  7. แนบสภาพแวดล้อมกับสมุดบันทึกหรืองาน

ตัวเลือกที่ 2: โฮสต์มิเรอร์ PyPI ส่วนตัวบน Azure Storage

ข้อกําหนดเบื้องต้น
การซิงค์เริ่มต้นของที่เก็บ PyPI

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

การบํารุงรักษา

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

  • ความเร็วเครือข่าย
  • ทรัพยากรเซิร์ฟเวอร์ เช่น CPU, หน่วยความจํา และ I/O ของดิสก์บนทรัพยากรการประมวลผลที่เรียกใช้ Bandersnatch
  • ความเร็วของดิสก์ (SSD เทียบกับ HDD) ส่งผลต่อความเร็วในการเขียนข้อมูล
  • การตั้งค่าเริ่มต้นเทียบกับการซิงค์การบํารุงรักษา: การซิงค์เริ่มต้นจะดาวน์โหลดที่เก็บทั้งหมดและอาจใช้เวลาตั้งแต่ 8 ถึง 48 ชั่วโมง แต่การซิงค์ในภายหลังจะเร็วกว่าเนื่องจากจะอัปเดตเฉพาะแพ็คเกจใหม่หรือที่เปลี่ยนแปลงเท่านั้น
ขั้นตอนการตั้งค่า
  1. ตั้งค่าเครื่องพัฒนา Linux VM หรือ Windows Subsystem สําหรับ Linux (WSL))

    wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh 
    bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh 
    chmod 755 -R /usr/lib/miniforge3/ 
    
    # Add Python executable to PATH 
    export PATH="/usr/lib/miniforge3/bin:$PATH" 
    
  2. ติดตั้ง Bandersnatch เพื่อมิเรอร์ PyPI Bandersnatch เป็นเครื่องมือมิเรอร์ PyPI ที่ดาวน์โหลดที่เก็บ PyPI ทั้งหมดและไฟล์ดัชนีที่เกี่ยวข้องบนระบบไฟล์ในเครื่อง

    # Install Bandersnatch 
    pip install bandersnatch
    
  3. กําหนดค่า Bandersnatch: สร้างไฟล์ bandersnatch.conf ด้วยการกําหนดค่าที่ระบุในตัวอย่างบน GitHub ที่ bandersnatch/src/bandersnatch/example.conf

  4. เรียกใช้คําสั่งมิเรอร์เพื่อทําการซิงโครไนซ์ครั้งเดียวกับเซิร์ฟเวอร์หลัก PyPI

    bandersnatch --config <path-to-bandersnatch.conf> mirror

    คําสั่งนี้จะสร้างไดเร็กทอรีย่อยต่อไปนี้ในไดเร็กทอรีมิเรอร์ของคุณบนระบบไฟล์โลคัล

    Note

    การซิงค์เริ่มต้นต้องใช้เวลาในการทํางาน (ดูที่ สถิติ · PyPI) Bandersnatch ยังรองรับการมิเรอร์แบบเลือกโดยใช้ปลั๊กอินรายการที่อนุญาตและรายการบล็อก ซึ่งช่วยให้สามารถจัดการการพึ่งพาได้อย่างมีประสิทธิภาพมากขึ้น ด้วยการกรองบรรจุภัณฑ์ที่ไม่จําเป็น คุณสามารถลดขนาดของกระจก ลดทั้งต้นทุนและความพยายามในการบํารุงรักษา ตัวอย่างเช่น หากมิเรอร์มีไว้สําหรับ Fabric เท่านั้น คุณสามารถยกเว้นไบนารีของ Windows เพื่อเพิ่มประสิทธิภาพการจัดเก็บข้อมูล เราขอแนะนําให้ประเมินตัวเลือกการกรองเหล่านี้ตามกรณีการใช้งานของคุณ

    ดูเพิ่มเติมที่ การกรองกระจก — เอกสารประกอบ Bandersnatch

  5. ในการตรวจสอบการตั้งค่ามิเรอร์คุณสามารถใช้เซิร์ฟเวอร์ HTTP เพื่อให้บริการมิเรอร์ PyPI ในเครื่องของคุณ คําสั่งนี้เริ่มต้นเซิร์ฟเวอร์ HTTP อย่างง่ายบนพอร์ต 8000 ที่ให้บริการเนื้อหาของไดเร็กทอรีมิเรอร์:

    cd <directory-to-mirror>
    python -m http.server 8000
    
  6. กําหนดค่า pip เพื่อใช้มิเรอร์ PyPI ในเครื่อง:

    pip install <package> -index-url http://localhost:8000/simple 
    
  7. อัปโหลดมิเรอร์ไปยังบัญชีที่เก็บข้อมูล และเลือก เปิดใช้งานเว็บไซต์แบบคงที่ บนบัญชีที่เก็บข้อมูล Azure ของคุณ การตั้งค่านี้ช่วยให้คุณสามารถโฮสต์เนื้อหาแบบคงที่ เช่น PyPI ในหน้าดัชนี การเปิดใช้งานการตั้งค่านี้จะสร้างคอนเทนเนอร์ชื่อ $web โดยอัตโนมัติ

    คุณสามารถใช้ Azure CLI หรือ AzCopy ของ blobfuse2 เพื่ออัปโหลดมิเรอร์ภายในเครื่องจากเครื่องพัฒนาของคุณไปยังบัญชีที่เก็บข้อมูล Azure ของคุณ

    • อัปโหลดโฟลเดอร์แพคเกจไปยังคอนเทนเนอร์ที่คุณเลือกบนคอนเทนเนอร์บัญชีที่เก็บข้อมูล
    • อัปโหลดโฟลเดอร์ Simple, PyPI, local-stats และ JSON ไปยังคอนเทนเนอร์ของบัญชีที่เก็บข้อมูล$web
  8. หากต้องการใช้มิเรอร์นี้ในรายการสภาพแวดล้อม Fabric ของคุณ ให้สร้างตําแหน่งข้อมูลส่วนตัวที่มีการจัดการสองจุดใน Fabric:

    • หนึ่งสําหรับคอนเทนเนอร์ blob (แพคเกจ)
    • หนึ่งสําหรับเว็บไซต์แบบคงที่ (ดัชนี)
  9. ใช้ Environment Artifact เพื่อระบุไฟล์ yml เพื่อติดตั้งการจัดการไลบรารีในสภาพแวดล้อม Fabric

    dependencies: 
      - pip 
      - pip: 
        - pytest==8.2.2 
        - --index-url https://<storage-account-name>.z5.web.core.windows.net/simple 
    
  10. หรือคุณสามารถติดตั้งแพ็คเกจได้โดยตรงภายในสมุดบันทึกโดยใช้ %pip install คําสั่ง:

   %pip install pytest --index-url https://<storage-account-name>.z5.web.core.windows.net/simple

สคีมาเลคเฮาส์และการป้องกันการเข้าถึงขาออก

เลคเฮาส์ที่ใช้ Schema ได้รับการสนับสนุนอย่างเต็มที่เมื่อเข้าถึงจากรายการภายในพื้นที่ทํางานเดียวกัน รวมถึงเมื่อเปิดใช้งานการป้องกันการเข้าถึงขาออก

ใน สถานการณ์การเข้าถึงข้ามพื้นที่ทํางาน ลักษณะการทํางานจะแตกต่างกันไปขึ้นอยู่กับวิธีการเข้าถึง Lakehouse เมื่อเปิดใช้งาน การป้องกันการเข้าถึงขาออก บนพื้นที่ทํางานที่ใช้

สถานการณ์ที่ได้รับการสนับสนุน

  • สินค้าผู้ผลิตและสินค้าอุปโภคบริโภคอยู่ใน พื้นที่ทํางานเดียวกัน
  • เลคเฮาส์ใช้สคีมา
  • การเข้าถึงดําเนินการโดยใช้ API ที่ใช้ Spark DataFrame

ในสถานการณ์เหล่านี้ การดําเนินการ Schema ของ Lakehouse จะทํางานตามที่คาดไว้

พฤติกรรมข้ามพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก

เมื่อเปิดใช้งานการป้องกันการเข้าถึงขาออกบนพื้นที่ทํางาน และ เข้าถึง Lakehouse ที่เปิดใช้งาน Schema จากพื้นที่ทํางานอื่น ลักษณะการทํางานต่อไปนี้จะนําไปใช้:

  • ✅ Access โดยใช้ Spark DataFrame API (ตัวอย่างเช่น การอ่านตารางลงใน DataFrames) ยังคงทํางานต่อไป
  • ❌ การเข้าถึงโดยใช้คําสั่ง Spark SQL อาจล้มเหลว

ตัวอย่างเช่น spark.read.table() สําเร็จ ในขณะที่ SELECT * FROM table อาจล้มเหลวในสถานการณ์ข้ามพื้นที่ทํางานเมื่อเปิดใช้งานการป้องกันการเข้าถึงขาออก

การทําความเข้าใจลักษณะการทํางานของเส้นทางไฟล์

เมื่อทํางานกับข้อมูลใน Lakehouse ของคุณโดยใช้สมุดบันทึก Fabric คุณสามารถอ้างอิงไฟล์ได้สองวิธีหลัก:

  • ถ้าพื้นที่ทํางานของคุณเปิดใช้งานการป้องกันการเข้าถึงขาออก จะใช้เครือข่ายเสมือนที่มีการจัดการ (VNET) สําหรับ Spark ในกรณีนี้ พูลเริ่มต้นจะถูกปิดใช้งาน และคุณควรคาดหวังว่าเซสชัน Spark จะใช้เวลา 3 ถึง 5 นาทีในการเริ่มต้น

  • ด้วยการป้องกันการเข้าถึงขาออก การเข้าถึงสาธารณะทั้งหมดจาก Spark จะถูกบล็อก ข้อจํากัดนี้ป้องกันไม่ให้ผู้ใช้ดาวน์โหลดไลบรารีโดยตรงจากช่องทางสาธารณะ เช่น PyPI โดยใช้ pip ในการติดตั้งไลบรารีสําหรับงานวิศวกรรมข้อมูล ผู้ใช้มีสองตัวเลือก (สําหรับรายละเอียด โปรดดู การติดตั้งไลบรารีอย่างปลอดภัยในพื้นที่ทํางานที่มีการป้องกันการเข้าถึงขาออก):

    • แพ็คเกจไลบรารีอ้างอิงจากแหล่งข้อมูลที่เชื่อมต่อกับพื้นที่ทํางาน Fabric ผ่านปลายทางส่วนตัวที่มีการจัดการ

    • อัปโหลดไฟล์วงล้อสําหรับไลบรารีและการขึ้นต่อกันที่จําเป็น (ซึ่งยังไม่ได้รวมอยู่ในรันไทม์ที่อบไว้ล่วงหน้า)

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

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