Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use notebookutils.lakehouse para administrar elementos de Lakehouse mediante programación en cuadernos de Fabric. Puede crear, obtener, actualizar, eliminar y enumerar Lakehouses directamente desde el código del cuaderno.
Las utilidades de Lakehouse están disponibles en cuadernos de Python, PySpark, Scala y R. En los ejemplos de esta página se usa Python como lenguaje principal, con los equivalentes de Scala y R que se muestran para los métodos clave.
Nota:
Las utilidades de Lakehouse solo se admiten en Microsoft Fabric. No están disponibles en Azure Synapse Analytics.
Para mostrar los métodos disponibles y sus descripciones, llame a notebookutils.lakehouse.help().
Información general de los métodos
En la tabla siguiente se resumen los métodos disponibles:
| Método | Descripción | Devoluciones |
|---|---|---|
create |
Crea una nueva instancia de Lakehouse, con compatibilidad con esquemas opcionales. |
Artifact objeto con propiedades: id, displayName, descriptiony workspaceId. |
get |
Recupera un Lakehouse por nombre. |
Artifact objeto con metadatos básicos. |
getWithProperties |
Recupera un Lakehouse con propiedades extendidas. |
Artifact objeto con metadatos extendidos y detalles de conexión. |
update |
Actualiza el nombre o la descripción de un Lakehouse existente. | Objeto actualizado Artifact . |
delete |
Elimina un Lakehouse. |
Boolean.
True, si es correcto; en caso contrario, False. |
list |
Enumera los lakehouses en un espacio de trabajo. | Matriz de Artifact objetos. |
listTables |
Enumera las tablas en un Lakehouse. | Matriz de Table objetos. |
loadTable |
Inicia una operación de carga para una tabla de Lakehouse. |
Boolean.
True, si es correcto; en caso contrario, 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
Todos los métodos aceptan un parámetro opcional workspaceId . Cuando se omite, la operación tiene como destino el área de trabajo actual. Especifique un identificador de área de trabajo para el acceso entre áreas de trabajo. Debe tener los permisos adecuados en el área de trabajo de destino.
Crear un Lakehouse
Use notebookutils.lakehouse.create() para crear un nuevo Lakehouse en el espacio de trabajo actual o en un espacio de trabajo especificado. Los nombres de Lakehouse deben ser únicos dentro de un área de trabajo.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name |
String | Sí | Nombre para mostrar del Lakehouse. Debe ser único dentro del área de trabajo. |
description |
String | No | Descripción de texto de Lakehouse. |
definition |
Objeto | No | Objeto de definición estructurado para Lakehouse. Pase {"enableSchemas": True} o el formulario de objeto equivalente para que el lenguaje habilite la compatibilidad con el esquema. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
Creación de una instancia básica de Lakehouse
artifact = notebookutils.lakehouse.create("lakehouse_name", "Description of the Lakehouse")
Nota:
Pase definition como un objeto estructurado para el lenguaje notebook, como un diccionario de Python, una lista de Scala Mapo R.
Creación de una instancia de Lakehouse con compatibilidad con esquemas
Al habilitar la compatibilidad con esquemas, Lakehouse admite varios esquemas para organizar tablas. Pase {"enableSchemas": True} como parámetro definition :
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}")
Crear un Lakehouse en un espacio de trabajo diferente
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}")
Crear en lote repositorios de datos (lakehouses)
Puede crear varias instancias de Lakehouse en un bucle para aprovisionar entornos para distintos equipos o proyectos:
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")
Sugerencia
Use nombres descriptivos que reflejen el propósito de Lakehouse y considere las convenciones de nomenclatura para la separación del entorno (desarrollo, prueba, prod).
Obtener un Lakehouse
Utilice notebookutils.lakehouse.get() para recuperar una instancia de Lakehouse por su nombre. Si omite el nombre, NotebookUtils usa el valor predeterminado actual de Lakehouse.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name |
String | No | Nombre del Lakehouse a recuperar. El valor predeterminado será el Lakehouse actual si se omite. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
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}")
Consigue un Lakehouse con propiedades extendidas
Use notebookutils.lakehouse.getWithProperties() cuando necesite propiedades extendidas más allá de los metadatos básicos, como cadenas de conexión o detalles de configuración:
artifact = notebookutils.lakehouse.getWithProperties("lakehouse_name", "optional_workspace_id")
print(f"Lakehouse: {artifact.displayName}")
print(f"Properties: {artifact.properties}")
Obtener un Lakehouse desde otro espacio de trabajo
workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)
print(f"Retrieved: {artifact.displayName} from workspace {workspace_id}")
Actualizar un Lakehouse
Use notebookutils.lakehouse.update() para actualizar el nombre o la descripción de un Lakehouse existente.
Importante
Cambiar el nombre de una instancia de Lakehouse puede interrumpir las dependencias posteriores, como cuadernos, canalizaciones o accesos directos que hacen referencia al nombre original. Coordina los cambios de nombre con tu equipo antes de aplicarlos.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name |
String | Sí | Nombre actual de Lakehouse. |
newName |
String | Sí | Nuevo nombre para Lakehouse. |
description |
String | No | Descripción actualizada. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
updated_artifact = notebookutils.lakehouse.update(
"old_name",
"new_name",
"Updated description",
"optional_workspace_id"
)
print(f"Updated lakehouse: {updated_artifact.displayName}")
Eliminar un Lakehouse
Use notebookutils.lakehouse.delete() para eliminar permanentemente un Lakehouse de un área de trabajo.
Precaución
La eliminación es permanente y no se puede deshacer. Compruebe el nombre de Lakehouse antes de eliminar y comprobar si hay cuadernos, canalizaciones o flujos de trabajo dependientes que hacen referencia a él.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name |
String | Sí | Nombre de Lakehouse que se va a eliminar. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")
if is_deleted:
print("Lakehouse deleted successfully")
else:
print("Failed to delete lakehouse")
Enumerar Lakehouses
Utiliza notebookutils.lakehouse.list() para enumerar Lakehouses en un área de trabajo.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
maxResults |
Int | No | Número máximo de elementos que se van a devolver. Predeterminado a 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})")
Nota:
En Scala, el list método admite maxResults el mismo modo que los otros lenguajes del cuaderno. Por ejemplo, use list(workspaceId, maxResults).
Listar tablas
Utilice notebookutils.lakehouse.listTables() para enumerar todas las tablas en Lakehouse.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
lakehouse |
String | No | Nombre del Lakehouse. El valor predeterminado será el Lakehouse actual si se omite. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
maxResults |
Int | No | Número máximo de elementos que se van a devolver. Predeterminado a 1000. |
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")
Cargar tabla
Use notebookutils.lakehouse.loadTable() para cargar datos de archivos en una tabla de Lakehouse.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
loadOption |
Objeto | Sí | Opciones de carga estructuradas que especifican la ruta de acceso del archivo, el modo, el formato y otras opciones de carga. |
table |
String | Sí | Nombre de la tabla de destino. |
lakehouse |
String | No | Nombre del Lakehouse. El valor predeterminado será el Lakehouse actual si se omite. |
workspaceId |
String | No | ID del área de trabajo de destino. El valor predeterminado es el área de trabajo actual. |
El loadOption objeto admite las siguientes claves:
| Key | Descripción |
|---|---|
relativePath |
Ruta de acceso al archivo de origen en relación con la raíz de Lakehouse (por ejemplo, Files/myFile.csv). |
pathType |
Tipo de ruta de acceso. Se usa File para un único archivo. |
mode |
Modo de carga, como Overwrite o Append. |
recursive |
Establézcalo a True para incluir archivos en subcarpetas. |
formatOptions |
Diccionario con configuraciones específicas del formato, como format, headery 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")