Utilitaires NotebookUtils lakehouse

À utiliser notebookutils.lakehouse pour gérer les objets de la maison du lac de façon programmatique dans les carnets Fabric. Vous pouvez créer, obtenir, mettre à jour, supprimer et lister des maisons de lac directement à partir du code du notebook.

Les utilitaires de la maison du lac sont disponibles en notebooks Python, PySpark, Scala et R. Les exemples de cette page utilisent Python comme langage principal, avec des équivalents Scala et R indiqués pour les méthodes clés.

Note

Les services publics de Lakehouse ne sont pris en charge que dans Fabric. Ils ne sont pas disponibles dans Azure Synapse Analytics.

Pour afficher les méthodes disponibles et leurs descriptions, appelez notebookutils.lakehouse.help().

Vue d’ensemble des méthodes

Le tableau suivant récapitule les méthodes disponibles :

Méthode Description Retours
create Crée une nouvelle maison lacustre, avec un support optionnel des schémas. Artifactobjet avec des propriétés : id, , displayNamedescription, et workspaceId.
get Il récupère une maison sur le lac par son nom. Artifact objet avec des métadonnées de base.
getWithProperties Récupère une maison lacustre avec des propriétés étendues. Artifact objet avec des métadonnées étendues et des détails de connexion.
update Met à jour le nom ou la description existante d’une maison de lac. Objet mis à jour Artifact.
delete Ça supprime une maison au lac. Boolean. True en cas de réussite ; sinon, False.
list Liste des maisons de lac dans un espace de travail. Tableau d’objets Artifact.
listTables Liste des tables dans une maison sur un lac. Tableau d’objets Table.
loadTable Démarre une opération de chargement pour une table de type lakehouse. Boolean. True en cas de réussite ; sinon, 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

Toutes les méthodes acceptent un paramètre facultatif workspaceId . En cas d’omission, l’opération cible l’espace de travail actuel. Spécifiez un ID d’espace de travail pour l’accès inter-espaces de travail. Vous devez disposer d’autorisations appropriées dans l’espace de travail cible.

Créer un lakehouse.

À utiliser notebookutils.lakehouse.create() pour créer une nouvelle maison lacustre dans l’espace de travail actuel ou dans un espace spécifié. Les noms lakehouse doivent être uniques dans un espace de travail.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Oui Nom d’affichage de la maison du lac. Doit être unique dans l’espace de travail.
description Chaîne Non Une description écrite de la maison du lac.
definition Object Non Objet de définition structurée pour la maison du lac. Transmettez {"enableSchemas": True} ou l'équivalent objet de votre langue pour activer la prise en charge du schéma.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.

Créer un Lakehouse de base

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

Note

Passez definition en tant qu’objet structuré pour votre langage de notebook, tel qu’un dictionnaire Python, un Scala Map, ou une liste R.

Créez une maison lacustre avec support de schéma

Lorsque vous activez le support des schémas, le lakehouse prend en charge plusieurs schémas pour organiser les tables. Passer {"enableSchemas": True} comme paramètredefinition

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

Créer un Lakehouse dans un autre espace de travail

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

Construction en loté de maisons lacustres

Vous pouvez créer plusieurs maisons lacustres en boucle pour fournir des environnements à différentes équipes ou projets :

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

Conseil / Astuce

Utilisez des noms descriptifs qui reflètent la fonction de la maison du lac. Envisagez des conventions de nommage pour la séparation d’environnement, telles que dev, test et prod.

Prends une maison au lac

Utilisé notebookutils.lakehouse.get() pour récupérer une maison de lac par son nom. Si vous omettez le nom, NotebookUtils utilise la maison du lac par défaut actuelle.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Non Nom de la maison du lac à récupérer. Par défaut, elle revient à la maison actuelle du lac lorsqu’elle est omise.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.
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}")

Prenez une maison au bord du lac avec des propriétés agrandies

Utilisez notebookutils.lakehouse.getWithProperties() quand vous avez besoin de propriétés étendues au-delà des métadonnées de base, telles que les chaînes de connexion ou les détails de configuration :

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

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

Prenez une maison au lac depuis un autre espace de travail

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

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

Mettre à jour une infrastructure de type lakehouse

À utiliser notebookutils.lakehouse.update() pour mettre à jour le nom ou la description d’une maison lacustre existante.

Important

Renommer une maison lacustre peut briser des dépendances en aval telles que des carnets, pipelines ou raccourcis qui font référence au nom d’origine. Coordonnez les renommages avec votre équipe avant de les appliquer.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Oui Nom actuel de la maison du lac.
newName Chaîne Oui Nouveau nom pour la maison du lac.
description Chaîne Non Description mise à jour.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

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

Supprimer un lakehouse

À utiliser notebookutils.lakehouse.delete() pour retirer définitivement une maison lacustre d’un espace de travail.

Avertissement

La suppression est permanente et ne peut pas être annulée. Vérifiez le nom de la maison du lac avant de supprimer et vérifiez s’il existe des carnets dépendants, pipelines ou workflows qui y font référence.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Oui Nom de la maison du lac à supprimer.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

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

Lister les maisons lacustres

À utiliser notebookutils.lakehouse.list() pour énumérer les maisons de lac dans un espace de travail.

Paramètres

Paramètre Catégorie Obligatoire Description
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.
maxResults int Non Nombre maximal d’éléments à retourner. Par défaut, la valeur est 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

Dans Scala, list prend en charge maxResults de la même façon que les autres langages de notebook. Par exemple, utilisez list(workspaceId, maxResults).

Lister des tables

Utilisez notebookutils.lakehouse.listTables() pour lister toutes les tables d’une maison sur le lac.

Paramètres

Paramètre Catégorie Obligatoire Description
lakehouse Chaîne Non Nom de la maison du lac. Par défaut, elle revient à la maison actuelle du lac lorsqu’elle est omise.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.
maxResults int Non Nombre maximal d’éléments à retourner. Par défaut, la valeur est 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Charger la table

Utilisez notebookutils.lakehouse.loadTable() pour charger des données issues de fichiers dans une table Lakehouse.

Paramètres

Paramètre Catégorie Obligatoire Description
loadOption Object Oui Options de chargement structurées qui spécifient le chemin d’accès du fichier, le mode, le format et d’autres paramètres de chargement.
table Chaîne Oui Nom de la table cible.
lakehouse Chaîne Non Nom de la maison du lac. Par défaut, elle revient à la maison actuelle du lac lorsqu’elle est omise.
workspaceId Chaîne Non ID de l’espace de travail cible. Valeur par défaut de l’espace de travail actuel.

L’objet loadOption prend en charge les clés suivantes :

Clé Description
relativePath Chemin vers le fichier source par rapport à la racine lakehouse (par exemple, Files/myFile.csv).
pathType Type de chemin d’accès. Utiliser File pour un seul fichier.
mode Mode de charge, tel que Overwrite ou Append.
recursive Définissez True pour inclure les fichiers dans les sous-dossiers.
formatOptions Dictionnaire avec des paramètres spécifiques au format tels que format, headeret delimiter.

Exemple :

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