NotebookUtils lakehouse-verktyg

Använd notebookutils.lakehouse för att hantera Lakehouse-objekt programmatiskt i Fabric Notebooks. Du kan skapa, hämta, uppdatera, ta bort och lista Lakehouses direkt från notebook-kod.

Lakehouse-verktyg finns tillgängliga i Python-, PySpark-, Scala- och R-anteckningsböcker. Exemplen på den här sidan använder Python som primärt språk, med Scala- och R-motsvarigheter som visas för nyckelmetoder.

Anmärkning

Lakehouse-verktyg stöds endast i Microsoft Fabric. De är inte tillgängliga i Azure Synapse Analytics.

Om du vill visa tillgängliga metoder och deras beskrivningar anropar du notebookutils.lakehouse.help().

Översikt över metoder

I följande tabell sammanfattas de tillgängliga metoderna:

Metod Beskrivning Retur
create Skapar ett nytt Lakehouse med valfritt schemastöd. Artifact objekt med egenskaper: id, displayName, descriptionoch workspaceId.
get Hämtar ett Lakehouse utifrån dess namn. Artifact objekt med grundläggande metadata.
getWithProperties Hämtar ett Lakehouse med utökade egenskaper. Artifact objekt med utökade metadata och anslutningsinformation.
update Uppdaterar ett befintligt Lakehouse-namn eller en beskrivning. Uppdaterat Artifact objekt.
delete Tar bort ett Lakehouse. Boolean. True om det lyckas; annars False.
list Listar Lakehouses på en arbetsyta. Matris med Artifact objekt.
listTables Visar tabeller i ett Lakehouse. Matris med Table objekt.
loadTable Startar en laddningsoperation för en Lakehouse-tabell. Boolean. True om det lyckas; annars 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

Alla metoder accepterar en valfri workspaceId parameter. När åtgärden utelämnas riktas den mot den aktuella arbetsytan. Ange ett arbetsyte-ID för åtkomst mellan arbetsytor. Du måste ha rätt behörigheter på målarbetsytan.

Skapa ett Lakehouse

Använd notebookutils.lakehouse.create() för att skapa en ny Lakehouse på den aktuella arbetsytan eller en angiven arbetsyta. Lakehouse-namn måste vara unika i en arbetsyta.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Visningsnamn för Lakehouse. Måste vara unik i arbetsytan.
description String No En textbeskrivning för Lakehouse.
definition Objekt No Strukturerat definitionsobjekt för Lakehouse. Skicka {"enableSchemas": True} eller motsvarande objektformulär för ditt språk för att aktivera schemastöd.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.

Skapa ett grundläggande Lakehouse

artifact = notebookutils.lakehouse.create("lakehouse_name", "Description of the Lakehouse")

Anmärkning

Skicka definition som ett strukturerat objekt för ditt notebook-språk, till exempel en Python-ordlista, en Scala Mapeller en R-lista.

Skapa ett Lakehouse med schemastöd

När du aktiverar schemastöd stöder Lakehouse flera scheman för att organisera tabeller. Skicka {"enableSchemas": True} som definition-parameter:

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}")

Skapa ett Lakehouse på en annan arbetsyta

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}")

Batch skapa Lakehouses

Du kan skapa flera Lakehouses i en loop för att etablera miljöer för olika team eller projekt:

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")

Tips/Råd

Använd beskrivande namn som återspeglar Lakehouse-syftet och överväg namngivningskonventioner för miljöavgränsning (utveckling, testning, prod).

Skaffa ett Lakehouse

Använd notebookutils.lakehouse.get() för att hämta ett Lakehouse med namn. Om du utelämnar namnet använder NotebookUtils det aktuella standard-Lakehouse.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String No Namnet på Lakehouse som ska hämtas. Används som standard för det aktuella Lakehouse om det utelämnas.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.
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}")

Skaffa ett Lakehouse med utökade egenskaper

Använd notebookutils.lakehouse.getWithProperties() när du behöver utökade egenskaper utöver grundläggande metadata, till exempel anslutningssträngar eller konfigurationsinformation:

artifact = notebookutils.lakehouse.getWithProperties("lakehouse_name", "optional_workspace_id")

print(f"Lakehouse: {artifact.displayName}")
print(f"Properties: {artifact.properties}")

Hämta ett Lakehouse från en annan arbetsyta

workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)

print(f"Retrieved: {artifact.displayName} from workspace {workspace_id}")

Uppdatera ett Lakehouse

Använd notebookutils.lakehouse.update() för att uppdatera namnet eller beskrivningen av ett befintligt Lakehouse.

Viktigt!

Att byta namn på ett Lakehouse kan bryta nedströmsberoenden, till exempel anteckningsböcker, pipelines eller genvägar som refererar till det ursprungliga Lakehouse-namnet. Samordna namnbyten med ditt team innan du tillämpar dem.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Aktuellt namn på Lakehouse.
newName String Ja Nytt namn på Lakehouse.
description String No Uppdaterad beskrivning.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

print(f"Updated lakehouse: {updated_artifact.displayName}")

Ta bort ett Lakehouse

Använd notebookutils.lakehouse.delete() för att permanent ta bort en Lakehouse från en arbetsyta.

Försiktighet

Borttagningen är permanent och kan inte ångras. Kontrollera Lakehouse-namnet innan du tar bort och sök efter beroende notebook-filer, pipelines eller arbetsflöden som refererar till det.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Namnet på lakehouse som ska tas bort.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

if is_deleted:
    print("Lakehouse deleted successfully")
else:
    print("Failed to delete lakehouse")

Lista sjöstugor

Använd notebookutils.lakehouse.list() för att räkna upp Lakehouses på en arbetsyta.

Parameters

Parameter Type Obligatoriskt Beskrivning
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.
maxResults Int No Maximalt antal objekt som ska returneras. Standardinställningen är 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})")

Anmärkning

I Scala stöder metoden list på samma sätt som de andra språken i notebook maxResults. Använd till exempel list(workspaceId, maxResults).

Lista tabeller

Använd notebookutils.lakehouse.listTables() för att lista alla tabeller i ett Lakehouse.

Parameters

Parameter Type Obligatoriskt Beskrivning
lakehouse String No Namnet på Lakehouse. Används som standard för det aktuella Lakehouse om det utelämnas.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.
maxResults Int No Maximalt antal objekt som ska returneras. Standardinställningen är 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Ladda tabell

Använd notebookutils.lakehouse.loadTable() för att läsa in data från filer till en Lakehouse-tabell.

Parameters

Parameter Type Obligatoriskt Beskrivning
loadOption Objekt Ja Strukturerade inläsningsalternativ som anger filsökväg, läge, format och andra inläsningsinställningar.
table String Ja Namn på måltabellen.
lakehouse String No Namnet på Lakehouse. Används som standard för det aktuella Lakehouse om det utelämnas.
workspaceId String No Målarbetsytans ID. Ställs in på den aktuella arbetsytan som standard.

Objektet loadOption stöder följande nycklar:

Nyckel Beskrivning
relativePath Sökväg till källfilen i förhållande till Lakehouse-roten (till exempel Files/myFile.csv).
pathType Typ av sökväg. Använd File för en enda fil.
mode Inläsningsläge, till exempel Overwrite eller Append.
recursive Ange True för att inkludera filer i undermappar.
formatOptions En ordlista med formatspecifika inställningar som format, headeroch delimiter.

Ett exempel:

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")