โน๊ตบุ๊คยูทิลิตี้เลคเฮาส์สาธารณูปโภค

ใช้เพื่อ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")