Utilitaires NotebookUtils lakehouse

Utilisez notebookutils.lakehouse pour gérer les éléments Lakehouse par programmation dans les notebooks Fabric. Vous pouvez créer, obtenir, mettre à jour, supprimer et répertorier les Lakehouses directement à partir du code du notebook.

Les utilitaires Lakehouse sont disponibles dans les 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 utilitaires Lakehouse ne sont pris en charge que dans Microsoft 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 un nouveau lakehouse avec un support facultatif du schéma. Artifactobjet avec des propriétés : id, , displayNamedescription, et workspaceId.
get Récupère un Lakehouse par son nom. Artifact objet avec des métadonnées de base.
getWithProperties Récupère un Lakehouse avec des propriétés supplémentaires. Artifact objet avec des métadonnées étendues et des détails de connexion.
update Met à jour le nom ou la description existants d'un "Lakehouse". Objet mis à jour Artifact.
delete Supprime un Lakehouse. Boolean. True en cas de réussite ; sinon, False.
list Répertorie les lakehouses dans un espace de travail. Tableau d’objets Artifact.
listTables Répertorie les tables dans un entrepôt de données Lakehouse. Tableau d’objets Table.
loadTable Démarre une opération de chargement pour une table 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

Utilisez notebookutils.lakehouse.create() pour créer un Lakehouse dans l’espace de travail actuel ou un espace de travail 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 complet du Lakehouse. Doit être unique dans l’espace de travail.
description Chaîne Non Description textuelle du Lakehouse.
definition Object Non Objet de définition structurée pour lakehouse. 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éer un Lakehouse avec prise en charge du schéma

Lorsque vous activez la prise en charge du schéma, Lakehouse prend en charge plusieurs schémas pour organiser des 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}")

Créer en lot des entrepôts de données

Vous pouvez créer plusieurs Lakehouses dans une boucle pour approvisionner des environnements pour 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 l’objectif de Lakehouse et envisagez des conventions d’affectation de noms pour la séparation de l’environnement (développement, test, prod).

Obtenez un Lakehouse

Utilisez notebookutils.lakehouse.get() pour récupérer un Lakehouse par son nom. Si vous omettez le nom, NotebookUtils utilise le Lakehouse actuel.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Non Nom du Lakehouse à récupérer. Par défaut, le lac Lakehouse actuel est utilisé lorsque cela est omis.
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}")

Obtenez un Lakehouse avec des propriétés étendues

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

Obtenir un Lakehouse à partir d’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 un Lakehouse

Utilisez notebookutils.lakehouse.update() pour mettre à jour le nom ou la description d’un Lakehouse existant.

Important

Renommer un Lakehouse peut rompre les dépendances en aval qui reposent sur le nom initial, telles que les notebooks, les pipelines ou les raccourcis. Coordonnez les renommages avec votre équipe avant de les appliquer.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Oui Nom actuel du Lakehouse.
newName Chaîne Oui Nouveau nom pour le Lakehouse.
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

Utilisez notebookutils.lakehouse.delete() pour supprimer définitivement un Lakehouse d’un espace de travail.

Avertissement

La suppression est permanente et ne peut pas être annulée. Vérifiez le nom de Lakehouse avant de supprimer et de vérifier les blocs-notes dépendants, les pipelines ou les flux de travail qui le référencent.

Paramètres

Paramètre Catégorie Obligatoire Description
name Chaîne Oui Nom du Lakehouse à 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")

Répertorier les lakehouses

Utilisez notebookutils.lakehouse.list() pour énumérer les Lakehouses 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 répertorier toutes les tables d’un Lakehouse.

Paramètres

Paramètre Catégorie Obligatoire Description
lakehouse Chaîne Non Nom du Lakehouse. Par défaut, le lac Lakehouse actuel est utilisé lorsque cela est omis.
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

Permet notebookutils.lakehouse.loadTable() de charger des données à partir 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 du Lakehouse. Par défaut, le lac Lakehouse actuel est utilisé lorsque cela est omis.
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 d’accès au 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")