หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
การป้องกันการเข้าถึงขาออกของพื้นที่ทํางานช่วยให้สามารถควบคุมการสื่อสารภายนอกจากพื้นที่ทํางาน Microsoft Fabric ได้อย่างแม่นยํา เมื่อเปิดใช้งานคุณลักษณะนี้ รายการพื้นที่ทํางานวิศวกรรมข้อมูล เช่น สมุดบันทึก ข้อกําหนดงาน Spark และเลคเฮาส์ จะถูกจํากัดไม่ให้ทําการเชื่อมต่อขาออกไปยังปลายทางสาธารณะ เว้นแต่จะได้รับสิทธิ์การเข้าถึงอย่างชัดเจนผ่านปลายทางส่วนตัวที่มีการจัดการที่ได้รับอนุมัติ ความสามารถนี้มีความสําคัญสําหรับองค์กรในสภาพแวดล้อมที่ปลอดภัยหรือมีการควบคุม เนื่องจากช่วยป้องกันการขโมยข้อมูลและบังคับใช้ขอบเขตเครือข่ายขององค์กร
ทําความเข้าใจการป้องกันการเข้าถึงขาออกด้วยวิศวกรรมข้อมูล
เมื่อเปิดใช้งานการป้องกันการเข้าถึงขาออก การเชื่อมต่อขาออกทั้งหมดจากพื้นที่ทํางานจะถูกบล็อกตามค่าเริ่มต้น ผู้ดูแลระบบพื้นที่ทํางานสามารถสร้างข้อยกเว้นเพื่อให้สิทธิ์การเข้าถึงเฉพาะปลายทางที่ได้รับอนุมัติโดยการกําหนดค่าปลายทางส่วนตัวที่มีการจัดการ:
การกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับวิศวกรรมข้อมูล
คุณสามารถสร้างรายการที่อนุญาตได้โดยใช้ปลายทางส่วนตัวที่มีการจัดการเท่านั้น กฎการเชื่อมต่อข้อมูลไม่ได้รับการสนับสนุนสําหรับปริมาณงานวิศวกรรมข้อมูล เมื่อต้องการกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับวิศวกรรมข้อมูล:
ทําตามขั้นตอนเพื่อเปิดใช้งานการป้องกันการเข้าถึงขาออก
หลังจากเปิดใช้งานการป้องกันการเข้าถึงขาออกแล้ว คุณสามารถตั้งค่า ปลายทางส่วนตัวที่มีการจัดการ เพื่ออนุญาตให้เข้าถึงพื้นที่ทํางานอื่นๆ หรือทรัพยากรภายนอกได้ตามต้องการ
เมื่อกําหนดค่าแล้ว รายการวิศวกรรมข้อมูลสามารถเชื่อมต่อกับปลายทางส่วนตัวที่มีการจัดการที่ได้รับอนุมัติเท่านั้น
ชนิดรายการวิศวกรรมข้อมูลที่ได้รับการสนับสนุน
ชนิดรายการวิศวกรรมข้อมูลต่อไปนี้ได้รับการสนับสนุนด้วยการป้องกันการเข้าถึงขาออก:
- เลคเฮาส์
- 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.
คุณมีสองตัวเลือกที่ปลอดภัยสําหรับการติดตั้งไลบรารีในพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก:
อัปโหลดและใช้ไฟล์วงล้อ: เตรียมไฟล์วงล้อแพ็คเกจ Python ที่จําเป็นด้วยตนเองบนทรัพยากรการประมวลผลที่เชื่อถือได้ จากนั้นอัปโหลดไปยังสภาพแวดล้อม Fabric ของคุณ วิธีนี้ช่วยให้แน่ใจว่ามีการติดตั้งเฉพาะแพ็คเกจที่ได้รับอนุมัติและหลีกเลี่ยงการเข้าถึงอินเทอร์เน็ตสาธารณะ
โฮสต์มิเรอร์ PyPI ส่วนตัว: ตั้งค่าที่เก็บ PyPI ส่วนตัวบน Azure Storage และซิงโครไนซ์กับแพคเกจที่เลือกจากดัชนี PyPI สาธารณะ กําหนดค่าสภาพแวดล้อม Fabric ของคุณเพื่อติดตั้งแพ็คเกจจากมิเรอร์ส่วนตัวนี้โดยใช้ปลายทางส่วนตัวที่มีการจัดการ โดยรักษาความสอดคล้องกับนโยบายความปลอดภัยของเครือข่าย
เลือกแนวทางที่เหมาะกับความต้องการขององค์กรของคุณมากที่สุดสําหรับการจัดการแพ็คเกจและความปลอดภัย
ตัวเลือกที่ 1: อัปโหลดและใช้ไฟล์วงล้อ
ระบุแพ็คเกจที่ขาดหายไปซึ่งไม่รวมอยู่ในรันไทม์ Fabric Spark
เรียกใช้สคริปต์ต่อไปนี้บนทรัพยากรการประมวลผลของคุณเพื่อตั้งค่าสภาพแวดล้อม python ภายในเครื่องที่เหมือนกับรันไทม์ Microsoft Fabric Spark 1.3 สคริปต์นี้ต้องการไฟล์ YAML ที่มีรายการไลบรารีทั้งหมดที่รวมอยู่ในสภาพแวดล้อมที่อบไว้ล่วงหน้า
ตรวจสอบให้แน่ใจว่า ไลบรารีส่วนตัวที่โฮสต์ของ 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>สามารถใช้สคริปต์เพื่อส่งผ่านไฟล์ requirements.txt ของคุณ ซึ่งมีแพ็คเกจและเวอร์ชันทั้งหมดที่คุณต้องการติดตั้งในรันไทม์ Spark โดยจะพิมพ์ชื่อของไฟล์ล้อใหม่/การพึ่งพาสําหรับข้อกําหนดไลบรารีอินพุตของคุณ
pip install -r <input-user-req.txt> > pip_output.txt cat pip_output.txt | grep "Using cached *"ดาวน์โหลด
.whlไฟล์ด้วยตนเองใช้ Environment Artifact เพื่ออัปโหลดวงล้อที่จําเป็นทั้งหมด
แนบสภาพแวดล้อมกับสมุดบันทึกหรืองาน
ตัวเลือกที่ 2: โฮสต์มิเรอร์ PyPI ส่วนตัวบน Azure Storage
ข้อกําหนดเบื้องต้น
- ทรัพยากรการประมวลผล เช่น เครื่องพัฒนา Linux, ระบบย่อย Windows สําหรับ Linux (WSL) หรือเครื่องเสมือน Azure (VM.
- บัญชีที่เก็บข้อมูล Azure เพื่อจัดเก็บแพคเกจที่มิเรอร์
- สาธารณูปโภค:
- Bandersnatch: เครื่องมือมิเรอร์ PyPI สําหรับการซิงโครไนซ์ที่เก็บ ดูเอกสารประกอบของ Bandersnatch
- Azure CLI, Blobfuse2 หรือ AzCopy: ยูทิลิตี้สําหรับการอัปโหลดและซิงโครไนซ์ไฟล์กับ Azure Storage
การซิงค์เริ่มต้นของที่เก็บ PyPI
ในขั้นตอนแรก คุณต้องทําการซิงค์ที่เก็บ PyPI ที่เก็บ PyPI ที่สมบูรณ์มีแพ็คเกจจํานวนมากและกําลังขยายอย่างต่อเนื่องดังนั้นการดาวน์โหลดครั้งแรกอาจใช้เวลาตั้งแต่ 8 ถึง 48 ชั่วโมงขึ้นอยู่กับฮาร์ดแวร์และเครือข่ายของคุณ สําหรับขนาดที่เก็บปัจจุบันและจํานวนแพ็คเกจ โปรดดูที่ สถิติ · PyPI
การบํารุงรักษา
จําเป็นต้องมีการตรวจสอบและอัปเดตเป็นระยะเพื่อให้มิเรอร์ซิงค์กัน ปัจจัยต่อไปนี้มีผลต่อความเร็วในการซิงโครไนซ์:
- ความเร็วเครือข่าย
- ทรัพยากรเซิร์ฟเวอร์ เช่น CPU, หน่วยความจํา และ I/O ของดิสก์บนทรัพยากรการประมวลผลที่เรียกใช้ Bandersnatch
- ความเร็วของดิสก์ (SSD เทียบกับ HDD) ส่งผลต่อความเร็วในการเขียนข้อมูล
- การตั้งค่าเริ่มต้นเทียบกับการซิงค์การบํารุงรักษา: การซิงค์เริ่มต้นจะดาวน์โหลดที่เก็บทั้งหมดและอาจใช้เวลาตั้งแต่ 8 ถึง 48 ชั่วโมง แต่การซิงค์ในภายหลังจะเร็วกว่าเนื่องจากจะอัปเดตเฉพาะแพ็คเกจใหม่หรือที่เปลี่ยนแปลงเท่านั้น
ขั้นตอนการตั้งค่า
ตั้งค่าเครื่องพัฒนา 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"ติดตั้ง Bandersnatch เพื่อมิเรอร์ PyPI Bandersnatch เป็นเครื่องมือมิเรอร์ PyPI ที่ดาวน์โหลดที่เก็บ PyPI ทั้งหมดและไฟล์ดัชนีที่เกี่ยวข้องบนระบบไฟล์ในเครื่อง
# Install Bandersnatch pip install bandersnatchกําหนดค่า Bandersnatch: สร้างไฟล์ bandersnatch.conf ด้วยการกําหนดค่าที่ระบุในตัวอย่างบน GitHub ที่ bandersnatch/src/bandersnatch/example.conf
เรียกใช้คําสั่งมิเรอร์เพื่อทําการซิงโครไนซ์ครั้งเดียวกับเซิร์ฟเวอร์หลัก PyPI
bandersnatch --config <path-to-bandersnatch.conf> mirrorคําสั่งนี้จะสร้างไดเร็กทอรีย่อยต่อไปนี้ในไดเร็กทอรีมิเรอร์ของคุณบนระบบไฟล์โลคัล
Note
การซิงค์เริ่มต้นต้องใช้เวลาในการทํางาน (ดูที่ สถิติ · PyPI) Bandersnatch ยังรองรับการมิเรอร์แบบเลือกโดยใช้ปลั๊กอินรายการที่อนุญาตและรายการบล็อก ซึ่งช่วยให้สามารถจัดการการพึ่งพาได้อย่างมีประสิทธิภาพมากขึ้น ด้วยการกรองบรรจุภัณฑ์ที่ไม่จําเป็น คุณสามารถลดขนาดของกระจก ลดทั้งต้นทุนและความพยายามในการบํารุงรักษา ตัวอย่างเช่น หากมิเรอร์มีไว้สําหรับ Fabric เท่านั้น คุณสามารถยกเว้นไบนารีของ Windows เพื่อเพิ่มประสิทธิภาพการจัดเก็บข้อมูล เราขอแนะนําให้ประเมินตัวเลือกการกรองเหล่านี้ตามกรณีการใช้งานของคุณ
ดูเพิ่มเติมที่ การกรองกระจก — เอกสารประกอบ Bandersnatch
ในการตรวจสอบการตั้งค่ามิเรอร์คุณสามารถใช้เซิร์ฟเวอร์ HTTP เพื่อให้บริการมิเรอร์ PyPI ในเครื่องของคุณ คําสั่งนี้เริ่มต้นเซิร์ฟเวอร์ HTTP อย่างง่ายบนพอร์ต 8000 ที่ให้บริการเนื้อหาของไดเร็กทอรีมิเรอร์:
cd <directory-to-mirror> python -m http.server 8000กําหนดค่า pip เพื่อใช้มิเรอร์ PyPI ในเครื่อง:
pip install <package> -index-url http://localhost:8000/simpleอัปโหลดมิเรอร์ไปยังบัญชีที่เก็บข้อมูล และเลือก เปิดใช้งานเว็บไซต์แบบคงที่ บนบัญชีที่เก็บข้อมูล Azure ของคุณ การตั้งค่านี้ช่วยให้คุณสามารถโฮสต์เนื้อหาแบบคงที่ เช่น PyPI ในหน้าดัชนี การเปิดใช้งานการตั้งค่านี้จะสร้างคอนเทนเนอร์ชื่อ $web โดยอัตโนมัติ
คุณสามารถใช้ Azure CLI หรือ AzCopy ของ blobfuse2 เพื่ออัปโหลดมิเรอร์ภายในเครื่องจากเครื่องพัฒนาของคุณไปยังบัญชีที่เก็บข้อมูล Azure ของคุณ
- อัปโหลดโฟลเดอร์แพคเกจไปยังคอนเทนเนอร์ที่คุณเลือกบนคอนเทนเนอร์บัญชีที่เก็บข้อมูล
- อัปโหลดโฟลเดอร์ Simple, PyPI, local-stats และ JSON ไปยังคอนเทนเนอร์ของบัญชีที่เก็บข้อมูล$web
หากต้องการใช้มิเรอร์นี้ในรายการสภาพแวดล้อม Fabric ของคุณ ให้สร้างตําแหน่งข้อมูลส่วนตัวที่มีการจัดการสองจุดใน Fabric:
- หนึ่งสําหรับคอนเทนเนอร์ blob (แพคเกจ)
- หนึ่งสําหรับเว็บไซต์แบบคงที่ (ดัชนี)
ใช้ Environment Artifact เพื่อระบุไฟล์ yml เพื่อติดตั้งการจัดการไลบรารีในสภาพแวดล้อม Fabric
dependencies: - pip - pip: - pytest==8.2.2 - --index-url https://<storage-account-name>.z5.web.core.windows.net/simpleหรือคุณสามารถติดตั้งแพ็คเกจได้โดยตรงภายในสมุดบันทึกโดยใช้
%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 สามารถแก้ไขเส้นทางได้อย่างถูกต้องและหลีกเลี่ยงข้อผิดพลาดการหมดเวลาของซ็อกเก็ต เรียนรู้เพิ่มเติม