NotebookUtils – nástroje lakehouse

Použijte notebookutils.lakehouse pro programové řízení položek v Lakehouse v Fabric notebooks. Můžete vytvářet, získávat, aktualizovat, mazat a nabízet jezerní domy přímo z kódu notebooku.

Lakehouse utility jsou dostupné v noteboích Python, PySpark, Scala a R. Příklady na této stránce používají Python jako primární jazyk s ekvivalenty Jazyka Scala a R zobrazenými pro klíčové metody.

Poznámka:

Služby v Lakehouse jsou podporovány pouze ve Fabric. Nejsou dostupné ve službě Azure Synapse Analytics.

Chcete-li zobrazit dostupné metody a jejich popisy, zavolejte notebookutils.lakehouse.help().

Přehled metod

Následující tabulka shrnuje dostupné metody:

Metoda Description Návraty
create Vytvoří nový jezerní dům s volitelnou podporou schémat. Artifact objekt s vlastnostmi: id, displayName, descriptiona workspaceId.
get Získá jezeřský domek jménem. Artifact objekt se základními metadaty.
getWithProperties Získá domek u jezera s rozšířenými pozemky. Artifact objekt s rozšířenými metadaty a podrobnostmi o připojení.
update Aktualizuje stávající název nebo popis jezerního domu. Aktualizovaný Artifact objekt.
delete Smaže jezerní domek. Boolean. Je-li úspěšné, je True; v opačném případě False.
list Uvádí domky u jezera v pracovním prostoru. Pole objektů Artifact.
listTables Uvádí stoly v chatě u jezera. Pole objektů Table.
loadTable Spustí operaci nakládání stolu v jezeře. Boolean. Je-li úspěšné, je True; v opačném případě 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

Všechny metody přijímají volitelný workspaceId parametr. Pokud tento parametr vynecháte, operace cílí na aktuální pracovní prostor. Zadejte ID pracovního prostoru pro přístup mezi pracovními prostory. V cílovém pracovním prostoru musíte mít odpovídající oprávnění.

Vytvořte jezerní dům

Použijte notebookutils.lakehouse.create() k vytvoření nového jezerního domu v současném pracovním prostoru nebo v určeném pracovním prostoru. Názvy lakehouse musí být v rámci pracovního prostoru jedinečné.

Parametry

Parameter Typ Povinné Description
name String Ano Zobrazovací název jezerního domu. Musí být v rámci pracovního prostoru jedinečný.
description String Ne Textový popis jezerního domu.
definition Objekt Ne Strukturovaný definační objekt pro jezerní domek. Předáním {"enableSchemas": True} nebo ekvivalentního objektu odpovídajícího vašemu jazyku povolíte podporu schématu.
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.

Vytvoření základního lakehouse

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

Poznámka:

Předejte definition jako strukturovaný objekt pro jazyk poznámkového bloku, jako je slovník Pythonu, Map Scala nebo seznam R.

Vytvořte jezerní domek s podporou schématu

Když povolíte podporu schémat, lakehouse podporuje více schémat pro organizaci tabulek. Předejte {"enableSchemas": True} jako definition parametr:

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

Vytvořte lakehouse v jiném pracovním prostoru

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

Hromadně zakládají jezerní domy

Můžete vytvořit více jezerních domů v smyčce pro nastavení prostředí pro různé týmy nebo projekty:

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

Návod

Používejte popisná jména, která odrážejí účel jezerního domu. Zvažte konvence pojmenování pro oddělení prostředí, jako jsou vývoj, testování a produkci.

Pořiďte si domek u jezera

Použil jsem notebookutils.lakehouse.get() k získání jezerního domu podle jména. Pokud vynecháte název, NotebookUtils používá aktuální výchozí jezerní dom.

Parametry

Parameter Typ Povinné Description
name String Ne Název jezerního domu k vyzvednutí. Pokud je vynechán, výchozí je aktuální jezerní domek.
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.
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}")

Pořiďte si jezerní dům s rozšířenými pozemky

Použijte notebookutils.lakehouse.getWithProperties() , když potřebujete rozšířené vlastnosti nad rámec základních metadat, jako jsou připojovací řetězce nebo podrobnosti o konfiguraci:

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

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

Kupte si domek u jezera z jiného pracoviště

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

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

Aktualizace lakehouse

Použijte k notebookutils.lakehouse.update() aktualizaci názvu nebo popisu stávajícího jezerního domu.

Důležité

Přejmenování jezerního domu může zrušit závislosti na proudu, jako jsou zápisníky, potrubí nebo zkratky odkazující na původní název. Před použitím nich můžete koordinovat přejmenování s týmem.

Parametry

Parameter Typ Povinné Description
name String Ano Současný název jezerního domu.
newName String Ano Nový název pro jezerní domek.
description String Ne Aktualizovaný popis
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

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

Odstranit lakehouse

Použijte notebookutils.lakehouse.delete() k trvalému odstranění jezerního domu z pracovního prostoru.

Upozornění

Odstranění je trvalé a nedá se vrátit zpět. Před smazáním ověřte název lakehouse a zkontrolujte, zda se na něj neodkazují závislé zápisníky, pipeline nebo workflowy.

Parametry

Parameter Typ Povinné Description
name String Ano Název jezerního domu smazat.
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

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

Seznam jezerních domů

Použijte notebookutils.lakehouse.list() k vyjmenování jezerních domů v pracovním prostoru.

Parametry

Parameter Typ Povinné Description
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.
maxResults int Ne Maximální počet vrácených položek Výchozí nastavení je 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})")

Poznámka:

V jazyce Scala list metoda podporuje maxResults stejným způsobem jako jiné jazyky v poznámkovém bloku. Například použijte list(workspaceId, maxResults).

Seznam tabulek

Používejte notebookutils.lakehouse.listTables() všechny stoly v jezerním domku.

Parametry

Parameter Typ Povinné Description
lakehouse String Ne Název jezerního domu. Pokud je vynechán, výchozí je aktuální jezerní domek.
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.
maxResults int Ne Maximální počet vrácených položek Výchozí nastavení je 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Načtení tabulky

Používá se notebookutils.lakehouse.loadTable() k načtení dat ze souborů do tabulky Lakehouse.

Parametry

Parameter Typ Povinné Description
loadOption Objekt Ano Možnosti strukturovaného načtení, které určují cestu k souboru, režim, formát a další nastavení načítání.
table String Ano Název cílové tabulky.
lakehouse String Ne Název jezerního domu. Pokud je vynechán, výchozí je aktuální jezerní domek.
workspaceId String Ne ID cílového pracovního prostoru. Výchozí hodnota aktuálního pracovního prostoru.

Objekt loadOption podporuje následující klíče:

Klíč Description
relativePath Cesta ke zdrojovému souboru vzhledem ke kořeni jezerního domu (například Files/myFile.csv).
pathType Typ cesty. Použijte File pro jeden soubor.
mode Režim načítání, například Overwrite nebo Append.
recursive Nastavte na True zahrnutí souborů do podsložek.
formatOptions Slovník s nastavením specifickým pro formát, jako format, header a delimiter.

Příklad:

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