หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้เพื่อnotebookutils.lakehouseจัดการรายการบ้านพักในทะเลสาบด้วยโปรแกรมในสมุดบันทึก Fabric คุณสามารถสร้าง รับ อัปเดต ลบ และลงรายการบ้านริมทะเลสาบได้โดยตรงจากโค้ดสมุดบันทึก
ยูทิลิตี้ lakehouse มีให้ใช้งานในโน้ตบุ๊ก Python, PySpark, Scala และ R ตัวอย่างในหน้านี้ใช้ Python เป็นภาษาหลัก โดยแสดง Scala และ R เทียบเท่าสําหรับวิธีการหลัก
Note
สาธารณูปโภค Lakehouse รองรับเฉพาะใน Fabric เท่านั้น ไม่พร้อมใช้งานใน Azure Synapse Analytics
หากต้องการแสดงวิธีการที่ใช้ได้และคําอธิบาย ให้เรียกnotebookutils.lakehouse.help()
ภาพรวมของวิธีการ
ตารางต่อไปนี้สรุปวิธีการที่พร้อมใช้งาน:
| เมธอด | คำอธิบาย | การส่งคืน |
|---|---|---|
create |
สร้างบ้านพักทะเลสาบใหม่ พร้อมรองรับสคีมาเสริม |
Artifactวัตถุที่มีคุณสมบัติ: id, , displayNamedescription, และworkspaceId |
get |
นําบ้านริมทะเลสาบมาตามชื่อ |
Artifact ที่มีข้อมูลเมตาพื้นฐาน |
getWithProperties |
รับบ้านริมทะเลสาบที่มีทรัพย์สินขยายออกไป |
Artifact ออบเจ็กต์ที่มีข้อมูลเมตาและรายละเอียดการเชื่อมต่อเพิ่มเติม |
update |
อัปเดตชื่อหรือคําอธิบายของบ้านพักริมทะเลสาบที่มีอยู่ | วัตถุที่อัปเดตArtifact |
delete |
ลบบ้านพักริมทะเลสาบ |
Boolean
True หากสําเร็จ Falseมิฉะนั้น |
list |
แสดงบ้านริมทะเลสาบในพื้นที่ทํางาน | อาร์เรย์ของ Artifact วัตถุ |
listTables |
แสดงรายชื่อโต๊ะในบ้านพักริมทะเลสาบ | อาร์เรย์ของ Table วัตถุ |
loadTable |
เริ่มการโหลดสําหรับโต๊ะบ้านริมทะเลสาบ |
Boolean
True หากสําเร็จ Falseมิฉะนั้น |
# Method signatures
notebookutils.lakehouse.create(name: String, description: String = "", definition: Object = {}, workspaceId: String = ""): Artifact
notebookutils.lakehouse.get(name: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.getWithProperties(name: String, workspaceId: String = ""): Artifact
notebookutils.lakehouse.update(name: String, newName: String, description: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.delete(name: String, workspaceId: String = ""): Boolean
notebookutils.lakehouse.list(workspaceId: String = "", maxResults: Int = 1000): Array[Artifact]
notebookutils.lakehouse.listTables(lakehouse: String = "", workspaceId: String = "", maxResults: Int = 1000): Array[Table]
notebookutils.lakehouse.loadTable(loadOption: Object, table: String, lakehouse: String = "", workspaceId: String = ""): Boolean
วิธีการทั้งหมดยอมรับพารามิเตอร์ที่ไม่บังคับworkspaceId เมื่อละเว้นการดําเนินการจะกําหนดเป้าหมายพื้นที่ทํางานปัจจุบัน ระบุรหัสพื้นที่ทํางานสําหรับการเข้าถึงข้ามพื้นที่ทํางาน คุณต้องมีสิทธิ์ที่เหมาะสมในพื้นที่ทํางานเป้าหมาย
สร้างเลคเฮ้าส์
ใช้เพื่อ notebookutils.lakehouse.create() สร้างบ้านริมทะเลสาบใหม่ในพื้นที่ทํางานปัจจุบันหรือพื้นที่ทํางานที่ระบุ ชื่อเลคเฮาส์ต้องไม่ซ้ํากันภายในพื้นที่ทํางาน
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
name |
สตริง | ใช่ | แสดงชื่อบ้านพักริมทะเลสาบ ต้องไม่ซ้ํากันภายในพื้นที่ทํางาน |
description |
สตริง | ไม่ใช่ | คําอธิบายข้อความสําหรับบ้านพักริมทะเลสาบ |
definition |
วัตถุ | ไม่ใช่ | วัตถุนิยามแบบมีโครงสร้างสําหรับบ้านพักริมทะเลสาบ ผ่าน {"enableSchemas": True} หรือฟอร์มออบเจ็กต์ที่เทียบเท่าสําหรับภาษาของคุณเพื่อเปิดใช้งานการสนับสนุน Schema |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
สร้างเลคเฮาส์พื้นฐาน
artifact = notebookutils.lakehouse.create("lakehouse_name", "Description of the Lakehouse")
Note
ส่งผ่าน definition เป็นวัตถุที่มีโครงสร้างสําหรับภาษาสมุดบันทึกของคุณ เช่น พจนานุกรม Python, Scala Mapหรือรายการ R
สร้างบ้านริมทะเลสาบพร้อมรองรับสคีมา
เมื่อคุณเปิดใช้งานการสนับสนุนสคีมา บ้านทะเลสาบจะรองรับสคีมาหลายตัวสําหรับจัดระเบียบตาราง ส่งผ่าน {"enableSchemas": True} เป็น definition พารามิเตอร์:
artifact = notebookutils.lakehouse.create(
"SalesAnalyticsWithSchema",
"Lakehouse with schema support for multi-tenant data",
{"enableSchemas": True}
)
print(f"Created lakehouse with schema support: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")
สร้างเลคเฮาส์ในพื้นที่ทํางานอื่น
workspace_id = "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb"
artifact = notebookutils.lakehouse.create(
name="SharedAnalytics",
description="Shared analytics lakehouse",
workspaceId=workspace_id
)
print(f"Created lakehouse in workspace: {workspace_id}")
สร้างบ้านริมทะเลสาบเป็นชุด
คุณสามารถสร้างบ้านพักหลายหลังในลูปเพื่อจัดเตรียมสภาพแวดล้อมสําหรับทีมหรือโครงการที่แตกต่างกัน:
departments = ["Sales", "Marketing", "Finance", "Operations"]
created_lakehouses = []
for dept in departments:
lakehouse = notebookutils.lakehouse.create(
name=f"{dept}Analytics",
description=f"Analytics lakehouse for {dept} department"
)
created_lakehouses.append(lakehouse)
print(f"Created: {lakehouse.displayName}")
print(f"Created {len(created_lakehouses)} lakehouses")
เคล็ดลับ
ใช้ชื่อที่อธิบายได้ชัดเจนซึ่งสะท้อนวัตถุประสงค์ของบ้านพักริมทะเลสาบ พิจารณาการตั้งชื่อสําหรับการแยกสภาพแวดล้อม เช่น dev, test และ prod
หาบ้านพักริมทะเลสาบ
ใช้ notebookutils.lakehouse.get() เรียกบ้านริมทะเลสาบตามชื่อ ถ้าคุณละชื่อ NotebookUtils จะใช้บ้านทะเลสาบเริ่มต้นในปัจจุบัน
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
name |
สตริง | ไม่ใช่ | ชื่อบ้านพักริมทะเลสาบที่จะนํากลับมา ค่าเริ่มต้นจะเป็นบ้านพักทะเลสาบปัจจุบันเมื่อไม่มี |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
artifact = notebookutils.lakehouse.get("lakehouse_name", "optional_workspace_id")
print(f"Lakehouse Name: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")
print(f"Workspace ID: {artifact.workspaceId}")
รับบ้านริมทะเลสาบที่มีอสังหาริมทรัพย์ขยาย
ใช้ notebookutils.lakehouse.getWithProperties() เมื่อคุณต้องการคุณสมบัติเพิ่มเติมนอกเหนือจากข้อมูลเมตาพื้นฐาน เช่น สตริงการเชื่อมต่อหรือรายละเอียดการกําหนดค่า:
artifact = notebookutils.lakehouse.getWithProperties("lakehouse_name", "optional_workspace_id")
print(f"Lakehouse: {artifact.displayName}")
print(f"Properties: {artifact.properties}")
หาบ้านริมทะเลสาบจากพื้นที่ทํางานอื่น
workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)
print(f"Retrieved: {artifact.displayName} from workspace {workspace_id}")
ปรับปรุงเลคเฮ้าส์
ใช้เพื่อ notebookutils.lakehouse.update() อัปเดตชื่อหรือคําอธิบายของบ้านพักริมทะเลสาบที่มีอยู่
สำคัญ
การเปลี่ยนชื่อบ้านพักริมทะเลสาบอาจทําให้การพึ่งพาที่อยู่ปลายน้ํา เช่น สมุดบันทึก ท่อส่ง หรือทางลัดที่อ้างอิงชื่อเดิมถูกทําลาย ประสานงานการเปลี่ยนชื่อกับทีมของคุณก่อนนําไปใช้
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
name |
สตริง | ใช่ | ชื่อปัจจุบันของบ้านพักริมทะเลสาบ |
newName |
สตริง | ใช่ | ชื่อใหม่ของบ้านพักริมทะเลสาบ |
description |
สตริง | ไม่ใช่ | ปรับปรุงคําอธิบาย |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
updated_artifact = notebookutils.lakehouse.update(
"old_name",
"new_name",
"Updated description",
"optional_workspace_id"
)
print(f"Updated lakehouse: {updated_artifact.displayName}")
ลบเลคเฮ้าส์
ใช้เพื่อ notebookutils.lakehouse.delete() รื้อถอนบ้านริมทะเลสาบออกจากพื้นที่ทํางานอย่างถาวร
ข้อควรระวัง
การลบเป็นแบบถาวรและไม่สามารถยกเลิกได้ ตรวจสอบชื่อ lakehouse ก่อนลบ และตรวจสอบสมุดบันทึก ท่อส่ง หรือเวิร์กโฟลว์ที่อ้างอิงถึง
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
name |
สตริง | ใช่ | ชื่อบ้านพักริมทะเลสาบที่จะลบ |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")
if is_deleted:
print("Lakehouse deleted successfully")
else:
print("Failed to delete lakehouse")
รายชื่อบ้านพักริมทะเลสาบ
ใช้ notebookutils.lakehouse.list() ในการนับบ้านริมทะเลสาบในพื้นที่ทํางาน
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
maxResults |
Int | ไม่ใช่ | จํานวนสินค้าสูงสุดที่จะส่งคืน ค่าเริ่มต้นเป็น 1000 |
artifacts_list = notebookutils.lakehouse.list("optional_workspace_id")
print(f"Found {len(artifacts_list)} lakehouses:")
for lh in artifacts_list:
print(f" - {lh.displayName} (ID: {lh.id})")
Note
ใน Scala วิธีการนี้ list สนับสนุน maxResults วิธีเดียวกับภาษาโน้ตบุ๊กอื่นๆ ตัวอย่างเช่น ใช้ list(workspaceId, maxResults).
แสดงรายการตาราง
ใช้ notebookutils.lakehouse.listTables() สําหรับจัดรายการโต๊ะทั้งหมดในบ้านริมทะเลสาบ
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
lakehouse |
สตริง | ไม่ใช่ | ชื่อบ้านพักริมทะเลสาบ ค่าเริ่มต้นจะเป็นบ้านพักทะเลสาบปัจจุบันเมื่อไม่มี |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
maxResults |
Int | ไม่ใช่ | จํานวนสินค้าสูงสุดที่จะส่งคืน ค่าเริ่มต้นเป็น 1000 |
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")
โหลดตาราง
ใช้เพื่อ notebookutils.lakehouse.loadTable() โหลดข้อมูลจากไฟล์ไปยังตาราง lakehouse
พารามิเตอร์
| พารามิเตอร์ | ประเภท | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
loadOption |
วัตถุ | ใช่ | ตัวเลือกการโหลดแบบมีโครงสร้างที่ระบุเส้นทางไฟล์ โหมด รูปแบบ และการตั้งค่าการโหลดอื่นๆ |
table |
สตริง | ใช่ | ชื่อของตารางเป้าหมาย |
lakehouse |
สตริง | ไม่ใช่ | ชื่อบ้านพักริมทะเลสาบ ค่าเริ่มต้นจะเป็นบ้านพักทะเลสาบปัจจุบันเมื่อไม่มี |
workspaceId |
สตริง | ไม่ใช่ | รหัสพื้นที่ทํางานเป้าหมาย ค่าเริ่มต้นเป็นพื้นที่ทํางานปัจจุบัน |
loadOptionวัตถุสนับสนุนคีย์ต่อไปนี้:
| กุญแจ | คำอธิบาย |
|---|---|
relativePath |
เส้นทางไปยังไฟล์ต้นทางสัมพันธ์กับรากของ lakehouse (เช่น Files/myFile.csv) |
pathType |
ประเภทของเส้นทาง ใช้สําหรับ File ไฟล์เดียว |
mode |
โหมดโหลด เช่น Overwrite หรือAppend |
recursive |
ตั้งค่าเป็น True รวมไฟล์ในโฟลเดอร์ย่อย |
formatOptions |
พจนานุกรมที่มีการตั้งค่าเฉพาะรูปแบบ เช่น format, และ headerdelimiter |
ตัวอย่าง:
result = notebookutils.lakehouse.loadTable(
{
"relativePath": "Files/myFile.csv",
"pathType": "File",
"mode": "Overwrite",
"recursive": False,
"formatOptions": {
"format": "Csv",
"header": True,
"delimiter": ","
}
}, "table_name", "lakehouse_name", "optional_workspace_id")
if result:
print("Table loaded successfully")
else:
print("Table load failed")