Narzędzia NotebookUtils lakehouse

Użyj do notebookutils.lakehouse programowego zarządzania przedmiotami nad domem nad jeziorem w notatnikach Fabric. Możesz tworzyć, pobierać, aktualizować, usuwać i wystawiać domy nad jeziorem bezpośrednio z kodu notatnika.

Narzędzia lakehouse są dostępne w notatnikach Python, PySpark, Scala i R. Przykłady na tej stronie używają języka Python jako języka podstawowego, a odpowiedniki Języka Scala i R są wyświetlane dla kluczowych metod.

Uwaga / Notatka

Instalacje użyteczności publicznej Lakehouse są obsługiwane wyłącznie w Fabric. Nie są one dostępne w usłudze Azure Synapse Analytics.

Aby wyświetlić dostępne metody i ich opisy, wywołaj metodę notebookutils.lakehouse.help().

Omówienie metod

Poniższa tabela zawiera podsumowanie dostępnych metod:

Metoda Opis Zwroty
create Tworzy nowy domek nad jeziorem z opcjonalnym wsparciem dla schematów. Artifactobiekt z właściwościami: id, , displayNamedescriptioni workspaceId.
get Odzyskuje domek nad jeziorem z nazwy. Artifact obiekt z podstawowymi metadanymi.
getWithProperties Odzyskuje domek nad jeziorem z rozległymi nieruchomościami. Artifact obiekt z rozszerzonymi metadanymi i szczegółami połączenia.
update Aktualizuje istniejącą nazwę lub opis domku nad jeziorem. Zaktualizowany Artifact obiekt.
delete Usuwa domek nad jeziorem. Boolean. Wartość True w przypadku powodzenia; w przeciwnym razie wartość False.
list Wystawia domy nad jeziorem w miejscu pracy. Tablica Artifact obiektów.
listTables Wymienia stoliki w domku nad jeziorem. Tablica Table obiektów.
loadTable Uruchamia operację ładowania stołu przy jeziorze. Boolean. Wartość True w przypadku powodzenia; w przeciwnym razie wartość 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

Wszystkie metody akceptują opcjonalny workspaceId parametr. Pominięcie powoduje, że operacja dotyczy bieżącego obszaru roboczego. Określ identyfikator obszaru roboczego dla dostępu między obszarami roboczymi. Musisz mieć odpowiednie uprawnienia w docelowym obszarze roboczym.

Utwórz dom nad jeziorem

Użyj notebookutils.lakehouse.create() do stworzenia nowego domku nad jeziorem w obecnej przestrzeni roboczej lub w określonej przestrzeni. Nazwy usługi Lakehouse muszą być unikatowe w obszarze roboczym.

Parametry

Parametr Typ Wymagane Opis
name Sznurek Yes Nazwa wystawowa domu nad jeziorem. Musi być unikatowa w obszarze roboczym.
description Sznurek Nie. Opis tekstowy domu nad jeziorem.
definition Obiekt Nie. Obiekt strukturalnej definicji dla domku nad jeziorem. Przekaż {"enableSchemas": True} lub równoważną postać obiektu dla twojego języka, aby włączyć obsługę schematu.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.

Tworzenie podstawowej usługi Lakehouse

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

Uwaga / Notatka

Przekaż definition jako obiekt ustrukturyzowany dla języka notesu, taki jak słownik języka Python, scala Maplub lista języka R.

Stwórz domek nad jeziorem z wsparciem schematów

Po włączeniu wsparcia dla schematów, Lakehouse obsługuje wiele schematów do organizowania tabel. Przekaż {"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}")

Tworzenie usługi Lakehouse w innym obszarze roboczym

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

Grupowo tworzą domy nad jeziorem

Możesz tworzyć wiele domów nad jeziorem w pętli, aby tworzyć środowiska dla różnych zespołów lub projektów:

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

Tip

Używaj opisowych nazw, które odzwierciedlają cel domku nad jeziorem. Rozważ konwencje nazewnictwa dla rozdzielania środowisk, takie jak dev, test i prod.

Kup domek nad jeziorem

Używa się notebookutils.lakehouse.get() , by odzyskać domek nad jeziorem z nazwy. Jeśli pominiesz nazwę, NotebookUtils używa domyślnego jeziora (lakehouse).

Parametry

Parametr Typ Wymagane Opis
name Sznurek Nie. Nazwa domku nad jeziorem do odzyskania. Domyślnie przyjmuje obecny domek nad jeziorem, gdy zostanie pomijany.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.
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}")

Kup domek nad jeziorem z rozbudowanymi nieruchomościami

Użyj notebookutils.lakehouse.getWithProperties() polecenia , jeśli potrzebujesz właściwości rozszerzonych poza podstawowe metadane, takie jak parametry połączenia lub szczegóły konfiguracji:

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

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

Kup domek nad jeziorem z innego miejsca pracy

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

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

Aktualizowanie jeziora

Użyj notebookutils.lakehouse.update() do aktualizacji nazwy lub opisu istniejącego domku nad jeziorem.

Ważna

Zmiana nazwy domku nad jeziorem może przełamać zależności w dalszej fazie rzeki, takie jak notatniki, rurociągi czy skróty odwołujące się do oryginalnej nazwy. Przed ich zastosowaniem należy koordynować zmiany nazw z zespołem.

Parametry

Parametr Typ Wymagane Opis
name Sznurek Yes Obecna nazwa domku nad jeziorem.
newName Sznurek Yes Nowa nazwa dla domku nad jeziorem.
description Sznurek Nie. Zaktualizowany opis.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

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

Usuń lakehouse

Służy do notebookutils.lakehouse.delete() trwałego usunięcia domku nad jeziorem z miejsca pracy.

Ostrzeżenie

Usuwanie jest trwałe i nie można go cofnąć. Sprawdź nazwę lakehouse przed usunięciem i sprawdź, czy nie ma zależnych notatników, potoków lub workflow, które się do niej odwołują.

Parametry

Parametr Typ Wymagane Opis
name Sznurek Yes Nazwę domu nad jeziorem do usunięcia.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

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

Lista domów nad jeziorem

Używaj notebookutils.lakehouse.list() do wyliczania domów nad jeziorem w miejscu pracy.

Parametry

Parametr Typ Wymagane Opis
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.
maxResults int Nie. Maksymalna liczba elementów do zwrócenia. Domyślnie ustawia się na 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})")

Uwaga / Notatka

W języku Scala list metoda obsługuje maxResults ten sam sposób co inne języki notesu. Użyj na przykład nazwy list(workspaceId, maxResults).

Lista tabel

Używam notebookutils.lakehouse.listTables() do wypisywania wszystkich stołów w domku nad jeziorem.

Parametry

Parametr Typ Wymagane Opis
lakehouse Sznurek Nie. Nazwa domku nad jeziorem. Domyślnie przyjmuje obecny domek nad jeziorem, gdy zostanie pomijany.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.
maxResults int Nie. Maksymalna liczba elementów do zwrócenia. Domyślnie ustawia się na 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Ładowanie tabeli

Używam do notebookutils.lakehouse.loadTable() ładowania danych z plików do tabeli Lakehouse.

Parametry

Parametr Typ Wymagane Opis
loadOption Obiekt Yes Opcje ładowania strukturalnego określające ścieżkę pliku, tryb, format i inne ustawienia ładowania.
table Sznurek Yes Nazwa tabeli docelowej.
lakehouse Sznurek Nie. Nazwa domku nad jeziorem. Domyślnie przyjmuje obecny domek nad jeziorem, gdy zostanie pomijany.
workspaceId Sznurek Nie. Identyfikator docelowego obszaru roboczego. Domyślnie jest to bieżący obszar roboczy.

Obiekt loadOption obsługuje następujące klucze:

Klucz Opis
relativePath Ścieżka do pliku źródłowego względem korzenia jeziora (na przykład Files/myFile.csv).
pathType Typ ścieżki. Użyj File dla pojedynczego pliku.
mode Tryb ładowania, taki jak Overwrite lub Append.
recursive Ustaw wartość na True, aby dołączyć pliki do podfolderów.
formatOptions Słownik z ustawieniami specyficznymi dla formatu, takimi jak format, headeri delimiter.

Example:

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