🪣

OneLake — el OneDrive de los datos

Un único lago de datos por organización, en formato abierto, accesible desde todas las experiencias de Fabric y desde fuera del ecosistema. Entiende su jerarquía, el principio OneCopy, Delta Parquet, los shortcuts y la integración con Windows. 🌸

Intermedio
🪣

¿Qué es OneLake?

OneLake es el lago de datos unificado de Microsoft Fabric. Es único, automático y gratis: cuando activas Fabric en tu tenant, ya tienes OneLake. No se provisiona, no se configura, no se factura aparte. Simplemente está ahí, listo para recibir los datos de tu organización.

Técnicamente, OneLake está construido sobre Azure Data Lake Storage Gen2 (ADLS Gen2), pero lo importante es que Microsoft lo gestiona por ti. Tú no ves cuentas de almacenamiento, ni contenedores, ni claves de acceso: ves workspaces e items. Es ADLS sin el dolor de ADLS.

La analogía oficial es clara y buena: OneLake es a los datos lo que OneDrive es a los documentos. Un único sitio por organización, con jerarquía lógica, permisos granulares, sincronización con Windows y colaboración integrada. Pero en lugar de Word y Excel, lo que guardas son tablas Delta, archivos Parquet y ficheros de cualquier tipo.

💡 Uno por tenant Hay exactamente un OneLake por tenant de Microsoft. No puedes crear varios ni borrarlo. Esto elimina de raíz el problema de los silos de datos: todo el mundo en tu organización habla del mismo lago.
🌳

La jerarquía de OneLake

OneLake organiza los datos en una jerarquía estricta de 4 niveles (más subcarpetas internas por item). Es importante conocerla porque las URLs, los permisos y las APIs siguen exactamente esta estructura:

🏢 Tenant 1 por organización · ej: contoso.com
📂 Workspace Unidad de colaboración y permisos
🧩 Item Lakehouse, Warehouse, KQL DB…
🗂️ Tables / Files Datos estructurados vs no estructurados
📄 Delta / Parquet / otros Los ficheros físicos

La URL canónica de OneLake

Cualquier ruta dentro de OneLake sigue un patrón uniforme que puedes usar desde Spark, Python, Power BI o cualquier herramienta compatible con ADLS Gen2:

https://onelake.dfs.fabric.microsoft.com/{workspace}/{item}.{itemType}/Tables/{table}

// Ejemplo real
https://onelake.dfs.fabric.microsoft.com/Ventas/Bronze.Lakehouse/Tables/facturas

El {itemType} indica el tipo (Lakehouse, Warehouse, KQLDatabase…) y el sufijo del item es parte del nombre físico en el lago. Dentro de un Lakehouse siempre encontrarás dos carpetas raíz:

🗄️

Tables/

Área gestionada para datos estructurados en formato Delta. Cada subcarpeta es una tabla Delta con sus archivos Parquet y su log _delta_log. Aparecen automáticamente en el SQL analytics endpoint y como tablas en el semantic model.

📁

Files/

Área libre para cualquier tipo de fichero: CSV, JSON, imágenes, Parquet suelto, vídeos, PDFs. Ideal para landing zone, staging o datos no estructurados que luego procesarás con Notebooks.

♻️

OneCopy: una copia, muchos consumidores

OneCopy es probablemente el principio más importante de Fabric. Dice así: los datos se escriben una sola vez en OneLake y todas las herramientas leen directamente desde ahí, sin copias ni ETL intermedios.

Parece obvio dicho así, pero rompe con años de arquitecturas clásicas donde los datos viajaban de un sistema a otro. Compara las dos mundos:

❌ Antes (arquitectura clásica)

  • ADF copia de origen → Data Lake
  • Databricks transforma → otra carpeta
  • ADF mueve → Synapse dedicated pool
  • Synapse export → cubo tabular
  • Power BI importa el cubo → dataset
  • 5 copias de los mismos datos
  • 5 lugares donde puede divergir la verdad

✅ Ahora (OneCopy)

  • Pipeline escribe en OneLake como Delta
  • Notebook Spark lo transforma in-place
  • Warehouse lo consulta con T-SQL (mismo fichero)
  • Power BI lo lee con Direct Lake (sin importar)
  • Copilot lo explica en lenguaje natural
  • 1 sola copia de los datos
  • 1 única fuente de verdad

El ahorro no es sólo de almacenamiento (que también). Es de complejidad, de pipelines que se rompen, de latencia entre sistemas, de permisos que duplicas en cada salto y de facturas de egress por mover datos entre servicios.

✨ La implicación directa: Direct Lake Direct Lake es la tecnología que permite a Power BI leer tablas Delta directamente desde OneLake sin importar ni cargar en VertiPaq. Es el súmmum de OneCopy: el informe consume los mismos ficheros que escribió el pipeline, sin duplicación y sin refresco manual. Lo verás con detalle en la sección de Conceptos Power BI.
📦

Formato abierto: Delta Parquet

OneLake no es un formato propietario. Todo lo que se guarda en el área Tables/ se almacena como Delta Lake, un formato open source estandarizado por la Linux Foundation. Esto tiene dos ventajas enormes:

  • Sin lock-in. Si mañana decides migrar fuera de Fabric, tus datos ya están en un formato abierto que leen Databricks, Snowflake, DuckDB, Spark, Trino, Polars y prácticamente todo el ecosistema moderno.
  • Interoperabilidad. Cualquier herramienta externa que hable Delta o Parquet puede leer OneLake sin adaptadores raros.

Parquet vs Delta: qué es cada cosa

Delta no es un formato separado de Parquet — es una capa por encima. Lo aclaramos rápido porque genera mucha confusión:

Capa Qué es Qué aporta
Parquet Formato de archivo columnar comprimido, open source. Lectura rápida, alto ratio de compresión, esquema embebido, pushdown de columnas.
Delta Carpeta con archivos Parquet + transaction log (_delta_log). Transacciones ACID, time travel, schema evolution, MERGE/UPDATE/DELETE, concurrencia optimista, estadísticas para skip de ficheros.

Resumen: Delta = Parquet con superpoderes. Todo Delta es Parquet por debajo, pero no todo Parquet es Delta. En OneLake, cuando escribes desde Spark, Dataflow Gen2 o un Pipeline a Tables/, escribes Delta automáticamente.

V-Order: la optimización específica de Fabric

Fabric añade una optimización propietaria sobre Delta llamada V-Order: reordena internamente las filas y columnas para que el motor de Power BI (VertiPaq) pueda consumirlas con rendimiento casi nativo a través de Direct Lake. Sigue siendo Parquet estándar — cualquier herramienta externa lo lee normal — pero Power BI lo lee más rápido. Está activado por defecto.

💡 ¿Puedo desactivar V-Order? Sí, y en ciertos escenarios (escrituras muy intensivas, pipelines de streaming con mucha frecuencia) puede tener sentido desactivarlo para reducir el tiempo de escritura. La contraparte es que las lecturas con Direct Lake serán algo más lentas. Por defecto déjalo activado.
🔗

Shortcuts: conecta datos sin moverlos

Un shortcut es un puntero virtual dentro de OneLake que apunta a datos que viven en otro sitio. Es como un enlace simbólico en Linux o un acceso directo en Windows: ves una carpeta/tabla en tu workspace, pero los bytes físicos están en otra parte.

🪣 Tu Lakehouse
(OneLake)
🔗 Shortcut
☁️ Datos reales
(S3, ADLS, GCS…)

Los datos nunca se copian ni duplican. El shortcut es un puntero; cuando alguien consulta, Fabric pasa la petición al origen real en tiempo real.

Dos tipos de shortcuts

🔁

Internos

Apuntan a otro item dentro del mismo OneLake. Permiten que varios workspaces compartan la misma tabla sin copiarla. Perfecto para arquitecturas medallion donde Gold se consume desde múltiples workspaces de negocio.

🌐

Externos

Apuntan a orígenes fuera de Fabric. Soportados: ADLS Gen2, Amazon S3, Google Cloud Storage, Dataverse, Azure Blob, S3-compatible (MinIO, Cloudflare R2…). Ideal para consumir datos multi-cloud sin ETL.

Por qué son tan potentes

  • Cero duplicación. No copias los datos, sólo referencias. Ahorras almacenamiento y eliminas el problema de sincronización.
  • Acceso unificado. Una vez creado el shortcut, el dato se comporta como si fuese nativo de OneLake. Lo consultas desde Spark, T-SQL, Power BI o Python sin saber que vive en S3.
  • Permisos delegados. Los permisos sobre el shortcut en Fabric se combinan con los permisos del origen. No se lo saltas.
  • Ideal para migraciones. Si tienes un data lake existente en ADLS o S3, puedes apuntarlo con shortcuts mientras planeas la migración, sin reescribir nada el día uno.
⚠️ Atención al egress Un shortcut a S3 o GCS lee datos en tiempo real desde esos servicios. Si consultas mucho y con volumen, estás pagando egress al proveedor original cada vez. Para datos que leerás constantemente, valora si compensa mover (copiar una vez a OneLake) en lugar de apuntar.
💻

OneLake File Explorer

Exactamente como OneDrive, pero para datos: Microsoft distribuye una aplicación gratuita llamada OneLake File Explorer que integra OneLake directamente en el explorador de archivos de Windows. Al instalarla, aparece una nueva entrada en el panel lateral, junto a OneDrive, con todos tus workspaces.

Desde ahí puedes:

  • Arrastrar y soltar ficheros desde tu escritorio a la carpeta Files/ de un Lakehouse.
  • Abrir un .csv o .parquet con Excel o cualquier editor local.
  • Ver el contenido de tablas Delta sin abrir Fabric.
  • Sincronización bajo demanda — los ficheros se descargan sólo cuando los abres, no ocupan disco mientras no los uses.

Es útil sobre todo para gente que no es técnica (analistas de negocio, finance, marketing) que necesitan dejar un CSV en un Lakehouse sin pasar por la UI web. Lo arrastran a una carpeta en Windows y ya está disponible para todo el mundo.

💡 Disponibilidad Disponible para Windows 10/11. La versión para macOS está en preview. Linux se queda fuera por ahora — ahí usa las APIs REST o azcopy.
🧪

APIs y acceso programático

OneLake implementa la misma API que ADLS Gen2, que a su vez es compatible con la API de Blob Storage. Esto significa que prácticamente cualquier SDK o herramienta que hable con ADLS puede hablar con OneLake cambiando sólo la URL.

Desde Python con azure-storage-file-datalake

from azure.storage.filedatalake import DataLakeServiceClient
from azure.identity import DefaultAzureCredential

# OneLake usa la misma API que ADLS Gen2
service = DataLakeServiceClient(
    account_url="https://onelake.dfs.fabric.microsoft.com",
    credential=DefaultAzureCredential()
)

# Los "filesystems" son los workspaces
fs = service.get_file_system_client("Ventas")

# Y los paths siguen la jerarquía de OneLake
for p in fs.get_paths("Bronze.Lakehouse/Tables/facturas"):
    print(p.name)

Desde Spark (fuera de Fabric)

# Funciona igual desde Databricks o un Spark externo
df = spark.read.format("delta").load(
  "abfss://Ventas@onelake.dfs.fabric.microsoft.com/Bronze.Lakehouse/Tables/facturas"
)

Dentro de Fabric los propios Notebooks ya tienen el contexto configurado y no necesitas URLs completas — basta con /lakehouse/default/Tables/facturas o el shortcut correspondiente en el explorador de archivos del notebook.

🏛️

Dominios: organizar OneLake por áreas de negocio

Un dominio (domain) es una agrupación lógica de workspaces que pertenecen a la misma área funcional: Finanzas, Marketing, Logística, Recursos Humanos… Los dominios no mueven datos ni cambian la jerarquía física; son una capa organizativa encima de los workspaces.

¿Para qué sirven?

🎯

Data Mesh

Implementan el patrón data mesh: cada dominio es responsable de sus propios datos y los publica como "productos de datos" consumibles por el resto. Descentralización con gobierno central.

👥

Delegación de admin

El admin del tenant puede nombrar domain admins — por ejemplo, el lead de datos de Finanzas — que gestionan sus workspaces sin tener permisos globales.

🔍

Navegación y descubrimiento

En el hub de datos de Fabric, los usuarios pueden filtrar por dominio y encontrar rápidamente los datasets, lakehouses o informes relevantes para su área.

Los dominios son opcionales — no los necesitas en una implementación pequeña. Empiezan a tener sentido cuando tu organización supera los 20–30 workspaces y necesitas delegar responsabilidades.

Buenas prácticas para trabajar con OneLake

🥉

Arquitectura Medallion

Organiza los datos en 3 niveles: Bronze (crudo, tal cual llega), Silver (limpio, integrado) y Gold (agregado, listo para consumo). Cada nivel puede ser su propio Lakehouse para separar responsabilidades y permisos.

📁

Un Lakehouse por propósito

No metas todo en un único Lakehouse gigante. Uno por capa medallion, o uno por dominio funcional. Los permisos se aplican a nivel item, así que separar facilita el gobierno.

🔗

Shortcuts para compartir Gold

En lugar de copiar tablas Gold a los workspaces de los consumidores, crea shortcuts internos. Cambios en Gold se propagan solos y no duplicas almacenamiento.

🧹

OPTIMIZE y VACUUM

Programa mantenimiento Delta periódico: OPTIMIZE compacta ficheros pequeños y VACUUM limpia versiones antiguas. Sin esto, las tablas se fragmentan y las lecturas se ralentizan con el tiempo.

🏷️

Nombres claros y consistentes

Workspaces: DEV_<dominio>, PROD_<dominio>. Lakehouses: Bronze_<origen>. Tablas: snake_case. Un estándar boring ahorra horas de confusión a los 6 meses.

📊

Monitorea el storage

Fabric Capacity Metrics App muestra consumo de OneLake por workspace. Revísalo mensualmente: las tablas de log y los staging olvidados crecen sin parar si nadie los vigila.

🌟 Regla de oro Antes de copiar datos, pregúntate si puedes resolverlo con un shortcut. Antes de crear un Lakehouse, pregúntate si puedes reutilizar uno existente. La filosofía OneCopy sólo funciona si la aplicas de verdad.
🚀 Siguiente paso Ya sabes dónde viven los datos en Fabric. Ahora toca conocer qué puedes crear encima: pásate por la página de Artefactos para recorrer Lakehouse, Warehouse, Notebook, Pipeline, Dataflow Gen2, Eventstream y todo el ecosistema de items. 🌸