🧬 Cloning Tables en Databricks: Shallow Clone vs Deep Clone
- hace 2 días
- 2 min de lectura
Introducción
En proyectos de Data Engineering es muy común necesitar una copia de una tabla para realizar pruebas, desarrollar nuevas transformaciones o incluso crear respaldos. Para ello, Databricks incorpora la funcionalidad Clone, que permite generar una nueva Delta Table a partir de otra ya existente.
Sin embargo, antes de clonar una tabla conviene responder una pregunta:
👉 ¿Necesitamos únicamente una nueva definición lógica o una copia completamente independiente de los datos?
La respuesta determinará el tipo de clonación más adecuado.
⚡ Shallow Clone
El Shallow Clone crea una nueva Delta Table reutilizando los archivos físicos de la tabla original. Esto significa que:
✅ Se generan nuevos metadatos.
✅ Se crea una nueva definición de la tabla.
❌ No se copian los archivos Parquet.
Al reutilizar los mismos datos físicos, la clonación es prácticamente inmediata y consume muy poco almacenamiento. Por ello resulta especialmente útil para ambientes de desarrollo, pruebas o análisis temporales.
🏗️ Deep Clone
El Deep Clone genera una copia completamente independiente de la tabla original. Durante el proceso:
✅ Se copian los metadatos.
✅ Se copian los archivos Parquet.
✅ Se crea una nueva Delta Table totalmente autónoma.
Además, es posible especificar una ubicación mediante LOCATION, permitiendo decidir dónde almacenar físicamente la nueva copia. Esto convierte al Deep Clone en una excelente alternativa para respaldos, migraciones o entornos completamente aislados.
Un detalle muy interesante
Cuando utilizamos un Deep Clone con una ubicación conocida, resulta mucho más sencillo inspeccionar la estructura física de una Delta Table. Podemos observar directamente elementos como:
📦 Archivos Parquet.
📝 El directorio deltalog.
📜 Los archivos JSON que conforman el historial transaccional.
Esto permite comprender mejor cómo Delta Lake organiza internamente la información.
Conclusión
Aunque ambos mecanismos crean una nueva tabla, su objetivo es diferente.
⚡ Shallow Clone prioriza velocidad y ahorro de almacenamiento reutilizando los datos existentes.
🏗️ Deep Clone prioriza independencia, generando una copia completa de la tabla y de sus archivos físicos.
📌 En el notebook asociado a esta práctica realizo ambos tipos de clonación y analizo paso a paso qué ocurre con los metadatos, los archivos Parquet y la estructura interna de Delta Lake (Repositorio-GitHub).


Comentarios