Roteiro para entrar em Engenharia de Dados em 2024
(blog.dataengineer.io)- 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
-
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
-
Projetos de portfólio:
- Criar projetos que mostrem tecnologias reais em uso
-
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
-
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
-
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
-
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
-
Uso do LinkedIn:
- Construir networking com gestores de contratação e colegas
- Aumentar a visibilidade compartilhando sua jornada de aprendizado
-
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
Scala é realmente uma linguagem muito boa, mas é triste ver que, aos poucos, ela parece estar perdendo espaço de uso fora do Spark.