Cómo recuperar objetos eliminados de tu Lakehouse en Microsoft Fabric
Autor
Kilian Baccaro Salinas
Categoría
Lakehouse
Tiempo de lectura
03 min de lectura
Fecha de publicación
30 ene, 2026
¿Has eliminado accidentalmente una tabla Delta crítica o un archivo importante de tu lakehouse? No entres en pánico. Microsoft Fabric implementa un mecanismo de “soft delete” que mantiene tus objetos eliminados disponibles para recuperación durante 7 días. En este artículo te mostraré cómo aprovechar esta característica usando la librería semantic-link-labs.
El problema: Eliminaciones accidentales
Trabajar con lakehouses implica gestionar grandes volúmenes de datos y múltiples artefactos. Es fácil cometer errores:
-
Eliminar una tabla Delta pensando que era de desarrollo cuando era de producción
-
Borrar un archivo de configuración crítico durante una limpieza
-
Ejecutar un script que elimina carpetas completas por error
-
Sobrescribir datos importantes durante un proceso ETL
Hasta hace poco, estos errores podían significar pérdida permanente de datos o recurrir a backups externos. Ahora, con el soft delete de OneLake, tienes una red de seguridad de 7 días.
¿Qué es Soft Delete en OneLake?
OneLake, el sistema de almacenamiento subyacente de Microsoft Fabric, implementa soft delete similar a Azure Blob Storage. Cuando eliminas un objeto:
-
El objeto no se borra físicamente de inmediato
-
Se marca como “eliminado” y se oculta de las vistas normales
-
Permanece accesible para recuperación durante 7 días
-
Después de 7 días, se elimina permanentemente
Esta funcionalidad aplica a todo el contenido de un lakehouse:
-
Tablas Delta completas (incluyendo sus archivos Parquet y logs de transacciones)
-
Archivos individuales en la sección Files
-
Carpetas completas con toda su estructura
-
Esquemas con múltiples tablas
Instalación de semantic-link-labs
La librería semantic-link-labs extiende las capacidades de Fabric con funciones avanzadas para lakehouses, semantic models y más. Para instalarla en tu notebook:
%pip install semantic-link-labsExplorando objetos eliminados
Antes de recuperar nada, es fundamental identificar qué objetos están disponibles para restauración. La función list_blobs() nos permite listar todos los objetos, incluidos los eliminados.
Listar todos los blobs
import sempy_labs.lakehouse as lake
# Listar todos los objetos del lakehouse
all_blobs = lake.list_blobs(
lakehouse=None, # None usa el lakehouse del notebook
workspace=None # None usa el workspace del notebook
)
print(f"Total de blobs encontrados: {len(all_blobs)}")
all_blobs.head()
Filtrar objetos eliminados
El DataFrame resultante incluye una columna Is Deleted que podemos usar para filtrar:
deleted_objects = all_blobs[all_blobs['Is Deleted'] == True]
print(f"Objetos eliminados: {len(deleted_objects)}")
if len(deleted_objects) > 0:
print("\nObjetos disponibles para recuperación:")
print("-" * 80)
for _, obj in deleted_objects.iterrows():
print(f"📁 {obj['Blob Name']}")
print(f" Eliminado: {obj['Deleted Time']}")
print(f" Días restantes: {obj['Remaining Retention Days']}")
print(f" Tamaño: {obj['Content Length']} bytes")
print()
else:
print("✓ No hay objetos eliminados en este lakehouse")
Filtrar por tipo de contenedor
Puedes especificar si quieres listar solo objetos de Tables o Files:
# Solo tablas eliminadas
deleted_tables = lake.list_blobs(
lakehouse=None,
workspace=None,
container="Tables"
)
deleted_tables = deleted_tables[deleted_tables['Is Deleted'] == True]
# Solo archivos eliminados
deleted_files = lake.list_blobs(
lakehouse=None,
workspace=None,
container="Files"
)
deleted_files = deleted_files[deleted_files['Is Deleted'] == True]
print(f"Tablas eliminadas: {len(deleted_tables)}")
print(f"Archivos eliminados: {len(deleted_files)}")
Recuperando objetos
Una vez identificado el objeto a recuperar, el proceso es muy simple usando recover_lakehouse_object().
import sempy_labs.lakehouse as lake
lake.recover_lakehouse_object(
file_path='ruta/del/objeto',
lakehouse=None, # Nombre o ID del lakehouse
workspace=None # Nombre o ID del workspace
)Ejemplo 1: Recuperar una Tabla Delta
Las tablas Delta son estructuras complejas con múltiples archivos Parquet y un transaction log. La recuperación restaura toda la estructura:
# Recuperar tabla en el nivel raíz
lake.recover_lakehouse_object(
file_path='Tables/green_tripdata_2022',
lakehouse="000xxx-xxxx-xxxx-xxxx-xxx000",
workspace="000xxx-xxxx-xxxx-xxxx-xxx000"
)
Ejemplo 2: Recuperar archivos individuales
Los archivos en la sección Files se recuperan de la misma manera:
lake.recover_lakehouse_object(
file_path='Files/Maestros/MaestroFechas.xlsx',
lakehouse=None,
workspace=None
)

Ejemplo 3: Recuperar carpetas completas
Puedes recuperar carpetas enteras con todo su contenido:
lake.recover_lakehouse_object(
file_path='Files/Maestros',
lakehouse=None,
workspace=None
)Al recuperar una carpeta, se restauran recursivamente todos los archivos y subcarpetas que contenía.
Limitaciones y consideraciones
Ventana de recuperación
7 días es el límite absoluto. Después de este período:
-
Los objetos se eliminan permanentemente de OneLake
-
No hay forma de recuperarlos sin un backup externo
-
El contador comienza en el momento de la eliminación
Estructura de Paths
Los paths deben seguir la estructura exacta:
✓ Correcto:
- Tables/FactSales
- Tables/sales/FactSales
- Files/raw/data.csv
- Files/configs/app.json
✗ Incorrecto:
- FactSales (falta el contenedor)
- Tables\FactSales (barra invertida)
- tables/FactSales (minúsculas)
Tablas Delta y consistencia
Al recuperar una tabla Delta:
-
Se restaura el estado exacto en el momento de eliminación
-
El transaction log se recupera completo
-
Todas las particiones y archivos Parquet se restauran
-
Los metadatos del Hive Metastore pueden requerir sincronización
Conflictos de nombres
Si existe un objeto con el mismo nombre que el que intentas recuperar:
-
La operación puede fallar o sobrescribir el objeto actual
-
Es mejor renombrar o mover el objeto actual antes de recuperar
Permisos requeridos
Para recuperar objetos necesitas:
-
Permisos de escritura en el lakehouse
-
El rol de Contributor o superior en el workspace
Impacto en el almacenamiento
Los objetos en soft delete cuentan para tu cuota de almacenamiento de OneLake. No se libera espacio hasta la eliminación permanente.