Las entrevistas en Databricks suelen combinar Apache Spark (cómo se ejecutan los jobs y por qué van lentos), Delta Lake (qué hace que las tablas sean confiables) y la plataforma (clústeres, jobs, gobernanza). Las mejores respuestas conectan cada concepto con un problema real, como joins con sesgo, archivos pequeños o un pipeline que debe re-ejecutarse de forma segura.
Databricks renombra y reorganiza sus productos con bastante frecuencia, así que menciona qué nombres has usado (por ejemplo, Delta Live Tables, ahora parte de la familia Lakeflow) y revisa la descripción del puesto para conocer el stack.
A continuación, 25 preguntas con respuestas.
Plataforma y arquitectura
1. ¿Qué es Databricks y qué es un lakehouse?
Databricks es una plataforma de datos e IA en la nube construida en torno a Apache Spark. Un lakehouse mantiene los datos en formatos abiertos sobre almacenamiento de objetos en la nube y añade encima la confiabilidad y la gobernanza de un warehouse, de modo que una sola copia de los datos puede servir a ingeniería, analítica y machine learning.
2. ¿Cuál es la diferencia entre clústeres all-purpose, clústeres de job y SQL warehouses?
Los clústeres all-purpose son para trabajo interactivo y desarrollo. Los clústeres de job se inician para un job programado y se apagan después, lo que cuesta menos. Los SQL warehouses son cómputo optimizado para consultas SQL y de BI.
3. ¿Cómo controlas el costo?
Usa clústeres de job para producción, auto-terminación en clústeres interactivos, autoscaling con límites razonables, tipos de instancia del tamaño adecuado, instancias spot para trabajo tolerante a fallos, políticas de clúster para limitar lo que las personas pueden crear y etiquetas para el reporte de costos.
4. ¿Qué es Unity Catalog?
La capa de gobernanza para activos de datos e IA. Proporciona un espacio de nombres de tres niveles (catálogo, esquema, tabla), control de acceso centralizado, linaje y auditoría en todos los workspaces.
Delta Lake
5. ¿Qué es Delta Lake y por qué usarlo en lugar de Parquet simple?
Delta Lake es un formato de tabla que añade un registro de transacciones a los archivos Parquet. Ofrece transacciones ACID, aplicación y evolución de esquema, time travel y actualizaciones y eliminaciones eficientes. Parquet simple no tiene transacciones, por lo que una escritura fallida puede dejar datos parciales y los lectores pueden ver un estado inconsistente.
6. ¿Cómo funciona el registro de transacciones de Delta?
Cada commit añade una entrada JSON a la carpeta _delta_log, con checkpoints periódicos. El registro enumera qué archivos de datos están en la tabla en cada versión. Los lectores lo usan para ver una instantánea consistente, y los escritores usan concurrencia optimista, reintentando o fallando si otro commit entra en conflicto.
7. ¿Qué es time travel?
Consultar una versión anterior de una tabla por número de versión o marca de tiempo, para auditoría, depuración o rollback.
SELECT * FROM sales VERSION AS OF 12;
RESTORE TABLE sales TO VERSION AS OF 12;
8. ¿Cómo haces upsert de datos con Delta?
Con MERGE INTO:
MERGE INTO customers t
USING updates s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
Asegúrate de que el origen tenga una fila por clave, o el merge fallará o producirá resultados incorrectos.
9. ¿Qué hacen OPTIMIZE y VACUUM?
OPTIMIZE compacta muchos archivos pequeños en otros más grandes, lo que acelera las lecturas. VACUUM elimina los archivos que la tabla ya no referencia y que son más antiguos que el período de retención, lo que libera almacenamiento pero limita el time travel. No configures una retención muy corta mientras otros jobs aún puedan leer versiones anteriores.
10. ¿Cómo distribuyes los datos para consultas rápidas?
Particiona solo por columnas de baja cardinalidad que las consultas filtren con frecuencia, y mantén particiones lo suficientemente grandes. El exceso de particionamiento genera muchos archivos pequeños. Para otras columnas, usa Z-ordering o liquid clustering (el enfoque más reciente), que agrupan los datos para que las consultas puedan omitir archivos.
Fundamentos de Spark
11. ¿Qué son las transformaciones y las acciones, y qué es la evaluación perezosa?
Las transformaciones como filter y select construyen un plan pero no se ejecutan. Las acciones como count y write disparan la ejecución. Como Spark ve primero el plan completo, puede optimizarlo.
12. ¿Qué es un shuffle y por qué es costoso?
Un shuffle mueve datos entre ejecutores a través de la red para que las filas con la misma clave queden juntas, como en los joins, groupBy y distinct. Implica E/S de disco y de red, así que reducir los shuffles es la principal vía para lograr jobs más rápidos.
13. ¿Cómo hace Spark para unir dos tablas y cómo puedes acelerarlo?
Por defecto, los joins grandes usan un shuffle (sort-merge) join. Si una tabla es pequeña, un broadcast join la envía a cada ejecutor y evita el shuffle de la tabla grande.
from pyspark.sql.functions import broadcast
df = big.join(broadcast(small), "id")
14. ¿Qué es el data skew y cómo se soluciona?
Unas pocas claves concentran la mayoría de las filas, así que unas pocas tareas tardan mucho más que el resto. Las señales son una tarea que se ejecuta durante mucho tiempo en la Spark UI. Las soluciones son el manejo de skew de la ejecución adaptativa de consultas, el salting de la clave, el broadcast del lado más pequeño o filtrar las claves nulas o por defecto que causan el skew.
15. ¿Qué es la ejecución adaptativa de consultas (AQE)?
Spark ajusta el plan durante la ejecución usando estadísticas reales: puede fusionar particiones de shuffle pequeñas, cambiar estrategias de join y dividir particiones con skew. Está activada por defecto en las versiones recientes.
16. ¿Cuál es la diferencia entre repartition y coalesce?
repartition puede aumentar o reducir las particiones y hace un shuffle completo. coalesce solo reduce las particiones y evita un shuffle completo, así que es más barato pero puede producir particiones desiguales.
17. ¿Cuándo deberías cachear un DataFrame?
Cuando reutilizas el mismo DataFrame varias veces en un job y recalcularlo es costoso. No caches lo que se usa una sola vez y libera la caché cuando termines.
18. ¿Por qué preferir las funciones integradas a los UDF de Python?
Las funciones integradas se ejecutan dentro de la JVM y se pueden optimizar. Los UDF de Python mueven datos entre la JVM y Python y son opacos para el optimizador, así que son más lentos. Usa funciones integradas o UDF de pandas cuando sea posible.
Pipelines
19. ¿Qué es la arquitectura medallion?
Un diseño por capas: bronze contiene los datos crudos ingeridos, silver contiene los datos limpios y conformados, y gold contiene los agregados a nivel de negocio listos para reportar. Deja claro dónde ocurren las validaciones de calidad y te permite reconstruir las capas posteriores a partir de las anteriores.
20. ¿Qué es Auto Loader?
Una funcionalidad que ingiere de forma incremental y eficiente los archivos nuevos del almacenamiento en la nube a medida que llegan, llevando un registro de qué archivos ha procesado, con soporte de inferencia y evolución de esquema.
21. ¿Cómo maneja Structured Streaming los fallos y el exactly-once?
Usa checkpoints que almacenan el progreso y el estado, así que una consulta reiniciada continúa donde se detuvo. Con fuentes reproducibles y sinks idempotentes o transaccionales como Delta, obtienes resultados exactly-once de extremo a extremo.
22. ¿Cómo haces que un pipeline se pueda volver a ejecutar sin problemas?
Haz que las escrituras sean idempotentes: usa MERGE sobre una clave, sobrescribe una partición específica o usa un run ID para evitar duplicados. Mantén explícito el rango de entrada del job y registra los conteos de filas para poder verificar los resultados.
23. ¿Cómo haces las validaciones de calidad de datos?
Usa expectations o constraints en el pipeline (por ejemplo, constraints de Delta o expectations de pipelines declarativos), valida los conteos de filas, los nulos y la unicidad, y pon en cuarentena las filas malas en lugar de fallar toda la carga, según el contrato con los usuarios downstream.
Escenarios
24. Un job que tardaba 20 minutos ahora tarda tres horas. ¿Qué haces?
- Compara la Spark UI de ambas ejecuciones: ¿qué etapa se volvió más lenta?
- Revisa el tamaño de la entrada y si una tabla creció o perdió su layout, por ejemplo muchos archivos pequeños.
- Busca skew en la etapa lenta y derrames a disco.
- Revisa cambios en el clúster, como menos workers o un tipo de instancia distinto.
- Revisa cambios en el código o en la configuración de Spark, y si hay un join o un UDF nuevos.
- Corrige la causa (compactación, broadcast, manejo de skew o dimensionamiento) y añade monitoreo.
25. Diseña un pipeline que ingiera archivos JSON diarios y alimente un dashboard.
"Auto Loader lee los archivos nuevos en una tabla Delta bronze con los datos crudos y los metadatos. Un job los parsea y limpia hacia silver, deduplicando por clave con MERGE. Una tabla gold agrega para el dashboard, que lee desde un SQL warehouse. Unity Catalog gestiona el acceso, las expectations detectan datos malos y el job se ejecuta en un job cluster con alertas ante fallos y ante anomalías en el conteo de filas."
Cómo prepararte
Trabaja con un notebook que lea un archivo, haga un join con otra tabla, escriba en Delta y use MERGE. Abre la Spark UI y localiza un shuffle y una tarea sesgada. Prepara una historia sobre cómo aceleraste o corregiste un pipeline, con números. Para temas relacionados, consulta nuestras guías sobre Kafka, Snowflake y Talend.
Di tus respuestas en voz alta, sobre todo las de rendimiento, donde los candidatos suelen enumerar consejos de optimización sin un diagnóstico. Una transcripción de entrevista simulada muestra dónde. Sigue las normas del empleador sobre herramientas de IA en cualquier entrevista en vivo.
Practique respuestas para entrevistas sobre Databricks con YesToTheOffer
Realice una entrevista técnica simulada, explique un diseño de pipeline en voz alta y revise su transcripción después. 30 minutos gratis, sin suscripción.



