39 puntos por xguru 2024-11-25 | 1 comentarios | Compartir por WhatsApp
  • 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

  1. 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
  2. Proyectos de portafolio:

    • Crear proyectos que puedan demostrar habilidades reales
  3. 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

  1. 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
  2. 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
  3. 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

  1. Uso de LinkedIn:

    • Construir networking con hiring managers y colegas
    • Aumentar la visibilidad compartiendo el proceso de aprendizaje
  2. 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

 
joon14 2024-11-25

Scala es realmente un lenguaje muy bueno, pero me da pena que poco a poco parezca estar perdiendo utilidad fuera de Spark.