DEV Community

Cover image for Introdução à Engenharia de Dados
Cadu Magalhães
Cadu Magalhães

Posted on • Originally published at blog.cadumagalhaes.dev

4 1 1 1 1

Introdução à Engenharia de Dados

Antes de começar com o roadmap, acho importante discutir o que realmente é Engenharia de Dados.

Alguns anos atrás, não existiam todas essas carreiras diferentes em dados; o trabalho era dividido entre Analistas de Negócios (ou BA de Business Analysts, BI de Business Intelligence, etc) e Desenvolvedores. O hype em volta dos dados criou a demanda para os trabalhos especializados, e até hoje (uma ou duas décadas depois), o mercado ainda não se estabilizou.

De forma resumida, a Engenharia de Dados pode ser dividida em duas etapas:

  1. Fundação das operações relacionadas a dados: planejar, desenvolver e dar manutenção para arquiteturas de dados, sistemas de processamentos e etc. Ou seja, ajudar a definir o que será usado (quais ferramentas, plataformas) e como será usado.
  2. Construção de pipelines de dados: a partir de toda a fundação definida, passam a focar no desenvolvimento de pipelines pra baixar, transformar*, mover e disponibilizar dados no melhor formato para o restante das pessoas.

*obs: hoje, é muito comum as empresas separarem a transformação como responsabilidade dos Analytics Engineers, de forma que os Data Engineers focam na fundação

Um pouco de história

Imagem de um roadmap. Começa nos anos 60 com data warehouse, depois ETL nos anos 80. Google Distributed Filesystem em 2003, MapReduce em 2004, Hadoop em 2006, AWS também em 2006

Se formos olhar de forma rigorosa, a Engenharia de Dados surgiu no início dos anos 2000, junto com o boom da internet e com  criação do conceito de "Big Data" (por muito tempo, o termo era "Big Data Engineer"). Podemos dizer que começou "oficialmente" lá em 2003 quando o Google publicou artigos sobre o seu sistema de arquivos distribuídos, e mais tarde sobre MapReduce. Inspirados nisso, engenheiros do Yahoo criaram o Hadoop em 2006, e a partir daí a história foi se desenvolvendo.

Mas os fundamentos - a ideia de Data Warehouse, de ETL - surgiram muitos anos antes. O termo "Data Warehouse" foi cunhado entre as décadas de 60 e 70, mas foi estabelecido de verdade com a publicação do livro "Construindo um Data Warehouse", de Bill Inmon (considerado pai dos data warehouses).

Outro marco importante foi o surgimento da computação em nuvem, com a AWS em 2006. Essa mudança de paradigma diminuiu os custos relacionados ao tratamento de dados, permitindo escalabilidade e flexibilidade. E a partir daí foram surgindo novas ferramentas para lidar com as necessidades de forma eficiente.

Principais responsabilidades de um Engenheiro de Dados

De forma geral, podemos considerar o seguinte como responsabilidades da área de engenharia de dados

  1. Construir e manter uma infraestrutura de dados escalável
    • Definir a arquitetura de dados (Data Warehouse, Data Lake, etc), criando uma estrutura que atenda as necessidades atuais mas que possa escalar para os requisitos futuros
    • Implementar os modelos de dados planejados, estruturando os dados de forma que suportem acessos e consultas de forma eficiente
  2. Garantir qualidade, segurança e governança de dados
    • Implementar validações e testes para garantir a acurácia, confiança e consistência dos dados
    • Estabelecer padrões para uso dos dados, e garantir que estão sendo seguidos.
  3. Otimizar custos
    • Otimizar o armazenamento de dados e a performance de consultas e processamentos, usando as melhores práticas de indexação, particionamento e clusterização
  4. Monitoramento e manutenção de pipelines de dados
    • Implementar processos de validação, sistemas de alertas e notificação, ferramentas de automação de workflows, de forma que qualquer problema no processamento seja detectado o mais rápido possível

Principais habilidades de um Engenheiro de Dados

Atualmente o mercado exige muito mais do que somente SQL, Python e uma plataforma de nuvem ou banco de dados. Na minha experiência, além desses 3 pilares é preciso ter:

  • Conhecimentos básicos de engenharia de software: versionamento e git, CI/CD
  • O básico de linux, redes, infraestrutura. Em alguns casos, uma ferramenta de automação de deploy como terraform ou ansible
  • Um framework de processamento de dados, como spark
  • Conhecimento de um orquestrador, sendo Airflow o mais comum
  • API's, HTTP, web scrapping
  • Arquitetura de dados, modelagem e conhecimentos básicos de bancos de dados (SQL vs noSQL, por exemplo)
  • Em casos mais avançados, conhecimento sobre processamento em streaming. Kafka, Flink, além do próprio spark
  • E mais recentemente, a utilização de uma ferramenta de transformação de dados, como dbt ou dataform

Comparação de carreiras

Cargo Responsabilidades Principais habilidades
Engenheiro de dados Desenvolve e mantém arquiteturas e pipelines de dados. SQL, Python, plataformas de nuvem
Engenheiro de analytics Intermediário entre engenharia e análise, focando na transformação de dados brutos para formatos utilizáveis pelos analistas e cientistas Modelagem de dados, SQL, Python
Cientista de dados Analisa os dados para extrair insights e construir modelos preditivos Estatística, Machine Learning, R/Python
Analista de dados Interpreta dados e provê insights para ajudar em decisões de negócio Data visualization, SQL, planilhas

Onde esses cargos colaboram

  • Engenheiros de dados e Engenheiros de analytics: Colaboram para garantir que os dados estão propriamente estruturados e disponíveis para análises
  • Engenheiros de analytics e Cientistas de dados: Trabalham juntos para transformar os dados em formatos próprios para modelagem e análise
  • Cientistas de dados e Analistas de dados: Ambos interpretam dados, mas os cientistas de dados costumam desenvolver modelos, enquanto os analistas focam em apresentação de insights

Um exemplo do mundo real

  • Engenheiro de dados: Configuram uma pipeline que baixa dados de uma ferramenta de análise de interação dos usuários num site
  • Engenheiro de analytics: Transformam esses dados brutos em tabelas estruturadas com as métricas e dimensões mais importantes
  • Cientista de dados: Usam os dados estruturados para prever abandono e conversão de usuários
  • Analista de dados: Interpretam os dados estruturados e os resultados do modelo para fazer recomendações de negócio, como aumentar a retenção de usuários ## Uma análise do mercado de trabalho De acordo com o Market Data Forecast, o mercado global de Engenharia de Dados valeu 75 bilhões de dólares em 2024, e a taxa de crescimento anual projetada é de 17% até 2033, de forma que deve atingir os 88 bilhões de dólares ainda em 2025. Isso tudo devido a alguns fatores levantados pela pesquisa:
  • A rápida adoção de Big Data no setor bancário e fintechs
  • O sempre crescente volume de dados
  • Aumento da demanda para análises e insights em tempo real A pesquisa também aponta a dificuldade de informações em tempo real como uma barreira no crescimento.

Quando falamos de vagas, de acordo com o Tech Job Report da Dice, Engenharia de dados é a 6ª carreira com mais publicações de vagas, tendo um crescimento de 42% de 2021 para 2022. Além disso, SQL e Python são a 2ª e 3ª habilidades mais procuradas em todas as vagas nesse mesmo período.

Infelizmente os dados do Linkedin só são disponíveis com pagamento, mas fazendo uma pesquisa superficial no google, conseguimos encontrar que aproximadamente 1% dos perfis da plataforma (aproximadamente 9 milhões) são de pessoas Engenheiras de Dados. Também conseguimos confirmar que as habilidades mais procuradas são definitivamente SQL e Python.

Concluindo

No fim, a definição de Engenharia de dados acaba sendo feita por cada empresa, de forma que as responsabilidades, atribuições e habilidades vão sempre variar bastante. Mas, de forma geral, os fundamentos costumam ser os mesmos. O próximo post será o planejamento do roadmap de engenharia de dados, destrinchando todos os tópicos que pretendo abordar. Inicialmente o roadmap deve ter tópicos iniciantes e intermediários, mas todos os assuntos serão aprofundados da melhor forma possível. Meu objetivo é não só listar ferramentas e dar exemplos de utilização, mas construir uma boa base de conhecimento teórico e prático com todos os assuntos.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay