NotebookUtils lakehouse-verktyg

Använd notebookutils.lakehouse för att hantera lakehouse-objekt programmatiskt i Fabric-anteckningsböcker. Du kan skapa, hämta, uppdatera, radera och lista sjöhus direkt från anteckningsbokkod.

Lakehouse-verktygen finns tillgängliga i Python, PySpark, Scala och R-notebooks. 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-ledningar stöds endast i 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 sjöhus med valfritt schemastöd. Artifact objekt med egenskaper: id, displayName, descriptionoch workspaceId.
get Hämtar ett sjöhus med namn. Artifact objekt med grundläggande metadata.
getWithProperties Hämtar ett sjöhus med utökade fastigheter. Artifact objekt med utökade metadata och anslutningsinformation.
update Uppdaterar ett befintligt namn eller beskrivning av ett sjöhus. Uppdaterat Artifact objekt.
delete Tar bort ett sjöhus. Boolean. True om det lyckas; annars False.
list Listar sjöhus i en arbetsmiljö. Matris med Artifact objekt.
listTables Listar bord i ett sjöhus. Matris med Table objekt.
loadTable Startar en lastningsoperation för ett sjöhusbord. 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 sjöhus

Använd notebookutils.lakehouse.create() för att skapa ett nytt sjöhus i den aktuella arbetsytan eller en specificerad arbetsyta. Lakehouse-namn måste vara unika i en arbetsyta.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Visningsnamn på sjöhuset. Måste vara unik i arbetsytan.
description String No En textbeskrivning för sjöhuset.
definition Objekt No Strukturerat definitionsobjekt för sjöhuset. 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 sjöhus 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 skapar sjöhus

Du kan skapa flera sjöhus i en loop för att tillhandahålla 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 speglar syftet med sjöhuset. Överväg namngivningskonventioner för miljöseparation, såsom utveckling, test och produktion.

Skaffa ett sjöhus

Använd notebookutils.lakehouse.get() för att hämta ett sjöhus vid namn. Om du utelämnar namnet använder NotebookUtils det nuvarande standardlakehouse.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String No Namnet på sjöhuset att hämta. Går automatiskt till det nuvarande sjöhuset när 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 sjöhus med utökade fastigheter

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

Skaffa ett sjöhus från en annan arbetsplats

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 sjöhus

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

Viktigt!

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

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Nuvarande namn på sjöhuset.
newName String Ja Nytt namn på sjöhuset.
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 sjöhus

Använd notebookutils.lakehouse.delete() för att permanent ta bort ett sjöhus från en arbetsplats.

Försiktighet

Borttagningen är permanent och kan inte ångras. Verifiera namnet på lakehouse innan du tar bort det och kontrollera om det finns beroende anteckningsböcker, pipelines eller arbetsflöden som refererar till det.

Parameters

Parameter Type Obligatoriskt Beskrivning
name String Ja Namnet på sjöhuset ska raderas.
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 över sjöhus

Använd notebookutils.lakehouse.list() för att räkna upp sjöhus i en arbetsplats.

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änder att notebookutils.lakehouse.listTables() lista alla bord i ett sjöhus.

Parameters

Parameter Type Obligatoriskt Beskrivning
lakehouse String No Namnet på sjöhuset. Går automatiskt till det nuvarande sjöhuset när 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 ladda 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å sjöhuset. Går automatiskt till det nuvarande sjöhuset när 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 Väg till källfilen relativt 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")