หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
เลคเฮ้าส์รองรับการสร้าง Schema แบบกําหนดเอง Schema ช่วยให้คุณสามารถจัดกลุ่มตารางของคุณเข้าด้วยกันเพื่อให้สามารถค้นหาข้อมูลได้ดีขึ้น ควบคุมการเข้าถึง และอื่น ๆ
สร้างโครงสร้างของเลคเฮ้าส์
หากต้องการเปิดใช้งานการสนับสนุนสคีมาสําหรับเลคเฮาส์ของคุณ ให้ทําเครื่องหมายในช่องถัดจาก สคีมาเลคเฮาส์ ไว้เมื่อคุณสร้าง
Note
หากคุณต้องการสร้างเลคเฮาส์โดยไม่รองรับสคีมา คุณสามารถยกเลิกการเลือกช่องทําเครื่องหมายได้
เมื่อคุณสร้างเลคเฮ้าส์ คุณสามารถค้นหาสคีมาเริ่มต้นที่ชื่อว่า dbo ภายใต้ ตาราง Schema นี้มักจะอยู่ที่นั่น และไม่สามารถเปลี่ยนแปลงหรือเอาออกได้ เมื่อต้องการสร้าง Schema ใหม่ ให้วางเมาส์เหนือ ตาราง เลือก ... และเลือก Schema ใหม่ ใส่ชื่อสคีมาของคุณ และเลือก สร้าง คุณจะเห็น Schema ของคุณแสดงอยู่ภายใต้ ตาราง ตามลําดับตัวอักษร
จัดเก็บตารางในแบบแผนของเลคเฮ้าส์
คุณต้องมีชื่อ Schema เพื่อจัดเก็บตารางใน Schema มิฉะนั้น จะไปที่ schema dbo เริ่มต้น
df.write.mode("Overwrite").saveAsTable("contoso.sales")
คุณสามารถใช้ Lakehouse Explorer เพื่อจัดเรียงตารางของคุณ และลากและวางชื่อตารางไปยัง Schema ที่แตกต่างกัน
ข้อควรระวัง
ถ้าคุณปรับเปลี่ยนตาราง คุณต้องอัปเดตรายการที่เกี่ยวข้อง เช่น โค้ดสมุดบันทึกหรือกระแสข้อมูล เพื่อให้แน่ใจว่ารายการเหล่านั้นสอดคล้องกับ Schema ที่ถูกต้อง
นําตารางหลายตารางที่มีทางลัด Schema มาใช้
หากต้องการอ้างอิงตาราง Delta หลายตารางจาก Lakehouse ของ Fabric หรือที่เก็บข้อมูลภายนอก ให้ใช้ทางลัด Schema ที่แสดงตารางทั้งหมดภายใต้ schema หรือโฟลเดอร์ที่เลือก การเปลี่ยนแปลงใด ๆ ไปยังตารางในตําแหน่งที่ตั้งต้นทางจะปรากฏใน schema หากต้องการสร้างทางลัดของ Schema ให้วางเมาส์เหนือ ตาราง เลือกที่ ... และเลือก ทางลัด Schema ใหม่ จากนั้นเลือก Schema ในเลคเฮ้าส์อื่น หรือโฟลเดอร์ที่มีตาราง Delta บนที่เก็บข้อมูลภายนอกของคุณ เช่น Azure Data Lake Storage (ADLS) Gen2 ที่สร้างสคีมาใหม่ด้วยตารางอ้างอิงของคุณ
เข้าถึง schema ของ lakehouse สําหรับการรายงาน Power BI
หากต้องการสร้างแบบจําลองความหมายของคุณ เพียงแค่เลือกตารางที่คุณต้องการใช้ ตารางสามารถอยู่ในรูปแบบที่แตกต่างกัน ถ้าตารางจากสคีมาที่แตกต่างกันใช้ชื่อเดียวกัน คุณจะเห็นตัวเลขถัดจากชื่อตารางเมื่ออยู่ในมุมมองแบบจําลอง
Schema ของเลคเฮ้าส์ในสมุดบันทึก
เมื่อคุณดู schema ที่เปิดใช้งาน lakehouse ในตัวสํารวจวัตถุของสมุดบันทึก คุณเห็นตารางอยู่ใน schema คุณสามารถลากและวางตารางลงในเซลล์โค้ดและรับส่วนย่อยของโค้ดที่อ้างถึง schema ที่ตารางอยู่ ใช้ namespace นี้เพื่ออ้างอิงถึงตารางในโค้ดของคุณ: "workspace.lakehouse.schema.table" ถ้าคุณออกจากองค์ประกอบใด ๆ ตัวดําเนินการจะใช้การตั้งค่าเริ่มต้น ตัวอย่างเช่น ถ้าคุณตั้งชื่อตารางเท่านั้น ระบบจะใช้ Schema เริ่มต้น (dbo) จาก lakehouse ตามค่าเริ่มต้นสําหรับสมุดบันทึก
สำคัญ
ถ้าคุณต้องการใช้ Schema ในโค้ดของคุณ ตรวจสอบให้แน่ใจว่า เลคเฮาส์เริ่มต้นสําหรับสมุดบันทึกเปิดใช้งาน Schema หรือไม่มีเลคเฮาส์เริ่มต้นที่เลือกไว้
คิวรี Spark SQL แบบข้ามพื้นที่ทํางาน
ใช้เนมสเปซ "workspace.lakehouse.schema.table" เพื่ออ้างถึงตารางในโค้ดของคุณ ด้วยวิธีนี้ คุณสามารถรวมตารางจากพื้นที่ทํางานที่แตกต่างกันหากผู้ใช้ที่เรียกใช้โค้ดมีสิทธิ์ในการเข้าถึงตาราง
SELECT *
FROM operations.hr.hrm.employees as employees
INNER JOIN global.corporate.company.departments as departments
ON employees.deptno = departments.deptno;
การอ้างอิงเลคเฮาส์ที่ไม่ใช่สคีมา
เมื่อคุณตั้งค่าเลคเฮาส์ที่เปิดใช้งาน Schema หรือไม่มีเลคเฮาส์เป็นค่าเริ่มต้นในสมุดบันทึกของคุณ โค้ด Spark จะใช้การอ้างอิงที่เปิดใช้งาน Schema สําหรับตาราง อย่างไรก็ตาม คุณยังคงสามารถเข้าถึงเลคเฮาส์ได้โดยไม่ต้องเปิดใช้งานสคีมาภายในโค้ดเดียวกันโดยอ้างอิงเป็น "lakehouse.table"
นอกจากนี้ยังสามารถเข้าร่วมโต๊ะจากเลคเฮาส์ประเภทต่างๆ ได้อีกด้วย
SELECT *
FROM workspace.schemalh.schema.table as schematable
INNER JOIN workspace.nonschemalh.table as nonschematable
ON schematable.id = nonschematable.id;
เพื่อช่วยในการเปลี่ยนและปรับโครงสร้างโค้ดที่มีอยู่เป็นเลคเฮาส์ที่เปิดใช้งานสคีมา จึงรองรับการตั้งชื่อสี่ส่วนสําหรับเลคเฮาส์ที่ไม่มีสคีมา คุณสามารถอ้างอิงตารางเป็น "workspace.lakehouse.dbo.table" โดยที่ "dbo" ทําหน้าที่เป็นชื่อ Schema แม้ว่าจะยังไม่มีอยู่ในเลคเฮาส์ที่ไม่ได้เปิดใช้งาน Schema ก็ตาม วิธีนี้ช่วยให้คุณอัปเดตโค้ดของคุณโดยไม่มีการหยุดทํางานก่อนที่จะเปิดใช้งานการสนับสนุน Schema ในเลคเฮาส์ของคุณ
API สําหรับสคีมาเลคเฮาส์
หากต้องการสร้างเลคเฮาส์ด้วยสคีมา ให้ใช้ Create Lakehouse - REST API และระบุ "enableSchemas": true ในคําขอ creationPayload เมื่อต้องการแสดงรายการตาราง สคีมา หรือรับรายละเอียดตาราง ให้ใช้ OneLake table API สําหรับเดลต้า
การเปิดใช้งานสคีมาสําหรับเลคเฮาส์ที่มีอยู่
เรายังคงสนับสนุนเลคเฮาส์ที่ไม่ใช่สคีมาและกําลังทํางานเพื่อความเท่าเทียมกันของคุณลักษณะที่สมบูรณ์ระหว่างทั้งสองประเภท นอกจากนี้ยังรองรับการทํางานร่วมกันอย่างเต็มรูปแบบใน Spark ทําให้สามารถสืบค้นและเข้าร่วมเลคเฮาส์ประเภทต่างๆ ได้ เร็วๆ นี้ เราจะแนะนําเครื่องมือที่จะช่วยให้ลูกค้าเปลี่ยนเลคเฮาส์ของตนจาก nonschema เป็นเวอร์ชันที่เปิดใช้งาน Schema ช่วยให้คุณได้รับประโยชน์จากฟีเจอร์ที่ได้รับการปรับปรุงโดยไม่จําเป็นต้องย้ายข้อมูลหรือประสบปัญหาการหยุดทํางาน
ข้อจํากัดปัจจุบัน
ยังมีข้อจํากัดบางประการเกี่ยวกับเลคเฮาส์ที่เปิดใช้งานสคีมาใน Spark ซึ่งกําลังเปิดตัวในอีกไม่กี่เดือนข้างหน้า
| คุณลักษณะ/ฟังก์ชันการทํางานที่ไม่รองรับ | การแก้ไขปัญหาชั่วคราว |
|---|---|
| มุมมอง Spark | ใช้มุมมองทะเลสาบ Materizlized |
| แชร์เลคเฮ้าส์ | สร้างทางลัดในเลคเฮาส์ด้วยบทบาทพื้นที่ทํางานไปยังตารางเลคเฮาส์ที่แชร์และเข้าถึงผ่านทางลัด |
| ตาราง ADLS ภายนอก | ใช้ทางลัด OneLake |
| การป้องกันการเข้าถึงขาออก | สําหรับสถานการณ์ที่เกี่ยวข้องกับการเข้าถึงเลคเฮาส์จากพื้นที่ทํางานต่างๆ โดยใช้ Spark SQL statemets โปรดใช้เลคเฮาส์ที่ไม่ใช่สคีมา |