Hoja de ruta para entrar a Data Engineering en 2024
(blog.dataengineer.io)- Conseguir trabajo en data engineering puede sentirse difícil debido a su complejo ecosistema tecnológico (por ejemplo, Spark, Flink, Iceberg, BigQuery, etc.)
- Simplemente aprender Python y SQL no es suficiente; se necesita una estrategia estructurada y práctica real
Elementos necesarios para conseguir trabajo en data engineering
-
Habilidades técnicas:
- Dominio de SQL y Python
- Tecnologías de cómputo distribuido (al menos una entre Snowflake, Spark y BigQuery)
- Comprensión de herramientas de orquestación (Airflow, Mage, Databricks Workflows, etc.)
- Capacidad de modelado de datos y gestión de calidad de datos
-
Proyectos de portafolio:
- Crear proyectos que puedan demostrar habilidades reales
-
Marca personal:
- Destacar la experiencia profesional mediante la gestión del perfil de LinkedIn y la preparación para entrevistas
Aprendizaje y dominio de SQL
- SQL es el lenguaje esencial de data engineering:
- Recursos de aprendizaje recomendados:
- Conceptos clave:
- Tipos de JOIN: INNER, LEFT, FULL OUTER (RIGHT JOIN casi no se usa)
- Agregación con GROUP BY y uso de DISTINCT
- Comprender las funciones de ventana y las diferencias entre RANK, DENSE_RANK y ROW_NUMBER
- Entender las palabras clave y el shuffle en entornos SQL distribuidos (por ejemplo, JOIN, GROUP BY, ORDER BY)
- Uso de CTE (Common Table Expression), Temp Table y View
Aprendizaje de Python y Scala
- Elección del lenguaje:
- Se recomienda Python para principiantes y Scala para personas con experiencia.
- Conceptos importantes:
- Estructuras de datos: listas, diccionarios, stacks, etc.
- Algoritmos: bucles, búsqueda binaria, comprensión de la notación Big O
- Principales usos de Python:
- Escribir DAGs de Airflow
- Interactuar con APIs REST
- Escribir UDFs de Spark y optimizar su rendimiento
Conceptos de cómputo distribuido
- Lo esencial del cómputo distribuido:
- Comprender arquitecturas basadas en Hadoop/Spark que distribuyen la carga de procesamiento de datos
- Gestión de problemas de shuffle y skew:
- Uso de Broadcast JOIN, Bucket JOIN y particionamiento
- Uso de ejecución adaptativa en Spark 3+
- Gestión de datos de salida:
- Optimizar el tamaño de los archivos aprovechando la compresión run length encoding de archivos Parquet
Asegurar la calidad y usabilidad de los datos
-
Calidad de datos:
- Eliminar duplicados, revisar valores NULL y verificar formatos y volúmenes adecuados de datos
- Agregar validación de calidad al pipeline de datos con herramientas como Great Expectations
-
Usabilidad:
- Documentación adecuada y acuerdo previo sobre especificaciones
- Enfoques de modelado de datos:
- Comprender las ventajas y desventajas de relational, Dimensional (Kimball) y One Big Table
-
Cumplimiento de privacidad:
- Anonimización de información de identificación personal (PII) y minimización del tiempo de retención de datos
Creación de proyectos de portafolio
- Características de un proyecto efectivo:
- Elegir un tema de interés personal
- Crear un proyecto conectado con frontend (por ejemplo, Tableau, Power BI)
- Aplicar tecnologías modernas (Spark, Snowflake, Delta Lake, etc.)
- Implementar pipelines que se ejecuten en un entorno de producción
Marca personal y preparación para entrevistas
-
Uso de LinkedIn:
- Construir networking con hiring managers y colegas
- Aumentar la visibilidad compartiendo el proceso de aprendizaje
-
Preparación para entrevistas:
- Investigar al entrevistador y el contexto de la empresa
- Responder a las preguntas con calma y actitud positiva
- Transmitir curiosidad y pasión por la tecnología y el rol
Conclusión
- En 2024, conseguir trabajo en data engineering sigue siendo posible incluso en un mercado difícil si se aborda con una estrategia estructurada
- Seguir esta hoja de ruta te acercará más al trabajo de data engineering que buscas
1 comentarios
Scala es realmente un lenguaje muy bueno, pero me da pena que poco a poco parezca estar perdiendo utilidad fuera de Spark.