
dbt - Funcionalidades avanzadas
Macros Jinja, tests personalizados, packages, hooks, snapshots (SCD), incremental models, dbt Cloud, CI/CD
1En dbt, ¿cuál es la función principal de las macros Jinja?
En dbt, ¿cuál es la función principal de las macros Jinja?
Respuesta
Las macros Jinja permiten reutilizar código SQL en varios modelos de dbt. Funcionan como funciones que aceptan parámetros y devuelven código SQL generado dinámicamente. Esto evita la duplicación de código y facilita el mantenimiento de transformaciones complejas en todo el proyecto.
2¿Cómo definir una macro de dbt reutilizable en un archivo?
¿Cómo definir una macro de dbt reutilizable en un archivo?
Respuesta
Una macro de dbt se define usando la sintaxis Jinja macro/endmacro en un archivo .sql dentro de la carpeta macros. El nombre de la macro se especifica después de la palabra clave macro, seguido de los parámetros entre paréntesis. Esta macro puede luego ser llamada desde cualquier modelo del proyecto.
3¿Cuál es la diferencia entre las estrategias 'timestamp' y 'check' para los snapshots de dbt?
¿Cuál es la diferencia entre las estrategias 'timestamp' y 'check' para los snapshots de dbt?
Respuesta
La estrategia timestamp compara una columna de fecha de actualización (updated_at) para detectar cambios, lo que es más eficiente ya que solo compara una columna. La estrategia check compara los valores de las columnas especificadas (check_cols) para detectar cualquier cambio, útil cuando no hay una columna timestamp confiable disponible.
¿Qué columnas son agregadas automáticamente por dbt al crear un snapshot?
¿Cómo configurar un modelo incremental con la estrategia 'merge' en dbt?
+17 preguntas de entrevista
Otros temas de entrevista Data Engineering
Linux & Shell - Fundamentos
Git & GitHub - Fundamentos
Python avanzado para Data Engineering
Docker - Fundamentos
Google Cloud Platform - Fundamentos
CI/CD y calidad de código
Docker Compose
FastAPI - APIs de datos
SQL avanzado para Data Engineering
Data Lake - Arquitectura e ingesta
BigQuery para Data Engineering
PostgreSQL - Administración
Data Modeling para Data Engineering
Fivetran & Airbyte - Ingesta de datos
dbt - Fundamentos
Apache Airflow - Fundamentos
Kubernetes - Fundamentos
Patrones ETL / ELT / ETLT
Apache Airflow - Avanzado
Airflow + dbt - Orquestación de pipelines
PySpark - Procesamiento a gran escala
Google Pub/Sub - Streaming de datos
Apache Beam & Dataflow
Kubernetes - Producción y escalado
Terraform - Infrastructure as Code
Bases de datos NoSQL
Arquitectura Data moderna
Monitoreo y observabilidad
IAM y seguridad de datos
Domina Data Engineering para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis