39 pontos por xguru 2024-11-25 | 1 comentários | Compartilhar no WhatsApp
  • Conseguir uma vaga em engenharia de dados pode parecer difícil por causa do ecossistema técnico complexo (ex.: Spark, Flink, Iceberg, BigQuery etc.)
  • Aprender apenas Python e SQL não é suficiente; é necessário ter uma estratégia estruturada e prática

Elementos necessários para conseguir um emprego em Engenharia de Dados

  1. Competências técnicas:

    • Domínio de SQL e Python
    • Tecnologias de computação distribuída (ao menos uma entre Snowflake, Spark e BigQuery)
    • Entendimento de ferramentas de orquestração (Airflow, Mage, Databricks Workflows etc.)
    • Capacidade de modelagem de dados e gestão da qualidade dos dados
  2. Projetos de portfólio:

    • Criar projetos que mostrem tecnologias reais em uso
  3. Marca pessoal:

    • Destacar sua especialização por meio da gestão do perfil no LinkedIn e da preparação para entrevistas

Aprendizado e domínio de SQL

  • SQL é a linguagem essencial da engenharia de dados:
    • Recursos de estudo recomendados:
    • Conceitos centrais:
      • Tipos de JOIN: INNER, LEFT, FULL OUTER (RIGHT JOIN quase não é usado)
      • Agregação com GROUP BY e uso de DISTINCT
      • Entender funções de janela e as diferenças entre RANK, DENSE_RANK e ROW_NUMBER
      • Entender palavras-chave e shuffle em ambientes SQL distribuídos (ex.: JOIN, GROUP BY, ORDER BY)
      • Uso de CTE (Common Table Expression), Temp Table e View

Aprendizado de Python e Scala

  • Escolha da linguagem:
    • Python é recomendado para iniciantes, Scala para quem já tem experiência.
  • Conceitos importantes:
    • Estruturas de dados: listas, dicionários, pilhas etc.
    • Algoritmos: laços de repetição, busca binária e entendimento da notação Big O
    • Principais usos de Python:
      • Escrever DAGs do Airflow
      • Interagir com APIs REST
      • Escrever UDFs do Spark e otimizar desempenho

Conceitos de computação distribuída

  • Essência da computação distribuída:
    • Entender arquiteturas baseadas em Hadoop/Spark que distribuem a carga de processamento de dados
    • Gerenciar problemas de shuffle e skew:
      • Uso de Broadcast JOIN, Bucket JOIN e particionamento
      • Uso de execução adaptativa no Spark 3+
  • Gestão dos dados de saída:
    • Otimizar o tamanho dos arquivos usando run length encoding em arquivos Parquet

Garantia de qualidade e usabilidade dos dados

  1. Qualidade dos dados:

    • Remoção de duplicatas, verificação de valores NULL e conferência de formato e volume adequados
    • Adicionar validação de qualidade ao pipeline de dados com ferramentas como Great Expectations
  2. Usabilidade:

    • Documentação adequada e alinhamento prévio de especificações
    • Abordagens de modelagem de dados:
      • Entender os prós e contras de relacional, Dimensional (Kimball) e One Big Table
  3. Conformidade com privacidade:

    • Anonimização de informações de identificação pessoal (PII) e minimização do período de retenção dos dados

Criação de projetos de portfólio

  • Características de projetos eficazes:
    • Escolher um tema de interesse pessoal
    • Criar projetos conectados ao frontend (ex.: Tableau, Power BI)
    • Aplicar tecnologias atuais (Spark, Snowflake, Delta Lake etc.)
    • Implementar pipelines que rodem em ambiente de produção

Marca pessoal e preparação para entrevistas

  1. Uso do LinkedIn:

    • Construir networking com gestores de contratação e colegas
    • Aumentar a visibilidade compartilhando sua jornada de aprendizado
  2. Preparação para entrevistas:

    • Pesquisar o histórico do entrevistador e da empresa
    • Responder às perguntas com calma e de forma positiva
    • Transmitir curiosidade e paixão pela tecnologia e pela função

Conclusão

  • Entrar em engenharia de dados em 2024 ainda é possível, mesmo em um mercado difícil, com uma estratégia estruturada
  • Seguir este roteiro vai aproximar você do cargo de engenharia de dados que deseja

1 comentários

 
joon14 2024-11-25

Scala é realmente uma linguagem muito boa, mas é triste ver que, aos poucos, ela parece estar perdendo espaço de uso fora do Spark.