DEV Community

Cover image for Roadmap de Engenharia de Dados para 2025
Cadu Magalhães
Cadu Magalhães

Posted on • Originally published at blog.cadumagalhaes.dev

Roadmap de Engenharia de Dados para 2025

Tenho 2 objetivos com esse roadmap: primeiro, é uma lista muito completa dos assuntos que acredito que te fariam ser fora da curva na área de Engenharia de Dados. Segundo, é a lista dos assuntos que pretendo cumprir no blog.

Em alguns tópicos já deixei quais serão os posts, mas isso pode mudar. A ordem também não é certa, visto que muito do que está aqui não é sequencial.

Já tenho material revisado para um mês de publicação, começando com o post de História e evolução da Engenharia de Dados, para o dia 01 de Agosto de 2025. Sinto que em tempos de conteúdo e código escritos por IA, minha forma de resistir é fazer essas publicações. Tentar construir conteúdo de qualidade, com muita curadoria e pesquisa, e que traz o que eu pessoalmente acho interessante -contexto, história - para contribuir com a parte técnica.

Introdução e Contexto Histórico

  • Evolução dos bancos de dados: do modelo relacional, ACID, às origens dos bancos NoSQL.

  • Surgimento do Big Data: Hadoop, MapReduce e a evolução para frameworks distribuídos como Spark e Flink.

  • Transição do armazenamento on-premise para a era da nuvem.

  • Impactos da Engenharia de Software

Posts Relacionados:


Nível 101 – Iniciante

1. Fundamentos de Bancos de Dados

1.1 Conceitos Teóricos

  • Modelos de Bancos de Dados:

    • Relacional: Estrutura tabular, integridade referencial.
    • Não Relacional: Documentos, key-value, grafos, colunar, in-memory, timeseries.
    • OLTP: Foco em operações transacionais com alta frequência.
    • OLAP: Ambientes otimizados para análises multi dimensionais e consultas complexas.
  • Transações:

    • Conceitos de atomicidade, consistência, isolamento e durabilidade (ACID).
    • Exemplos práticos de rollback, commit e gerenciamento de concorrência.
  • Casos de Uso e Quando Utilizar Cada Tipo:

    • Bancos relacionais para transações críticas e integridade dos dados.
    • Bancos não relacionais para escalabilidade, flexibilidade de esquemas e alta performance.

1.2 Exemplos Práticos

  • Bancos Relacionais:

    • Criação de esquemas, tabelas, índices e realização de transações (ex.: PostgreSQL).
  • Bancos NoSQL:

    • Implementação de operações CRUD em MongoDB ou Redis, com exemplos de indexação e consultas.

Posts Relacionados:

  • Engenharia de dados 101 – Fundamentos de bancos de dados

2. Pipelines de Dados

2.1 Conceitos Teóricos

  • ETL:

    • Extração, transformação e carregamento: processos, vantagens e desafios.
  • ELT:

    • Extração, carregamento e, posteriormente, transformação: quando utilizar e vantagens.
  • Comparação ETL x ELT:

    • Critérios para escolha, impacto em performance, custo e arquitetura.
  • Processamento de Dados:

    • Batch: Processamento em blocos com execução agendada.
    • Streaming: Processamento em tempo real, com tolerância à latência.
    • Arquiteturas Híbridas: Combinação de batch e streaming para cenários específicos.
  • Introdução a modelagem de dados:

    • Incremental Load: Carregamento de dados apenas quando há mudanças.
    • Row Versioning: Manutenção de versões das linhas para auditoria e concorrência.

2.2 Exemplos Práticos

  • Implementação de ETL:

    • Script em Python para extrair, transformar e carregar dados.
  • Implementação de ELT:

    • Carregamento de dados brutos em um data warehouse e transformações via SQL.
  • Processamento Batch x Streaming:

    • Demonstração com Apache Spark (modos batch e streaming) e exemplos de arquiteturas híbridas.

Posts Relacionados:

  • Engenharia de dados 101 – Fundamentos de Pipelines de dados

3. Fundamentos de Arquitetura de Dados

3.1 Conceitos Teóricos

  • Data Warehouse:

    • Conceitos, arquitetura e casos de uso.
  • Data Lake:

    • Armazenamento de dados brutos, escalabilidade e flexibilidade.
  • Data Mart:

    • Subconjuntos de dados específicos para áreas de negócio.
  • Arquiteturas Híbridas:

    • Integração de múltiplos conceitos para atender cenários complexos.

3.2 Exemplos Práticos

  • Implementação de um Data Warehouse:

    • Projeto básico utilizando ferramentas open-source.
  • Construção de um Data Lake:

    • Demonstração de ingestão e organização de dados brutos. Posts Relacionados:
  • Engenharia de dados 101 – Fundamentos de arquitetura de dados


4. Desenvolvimento e Ferramentas Essenciais

4.1 Linguagem de Programação

  • Tipos de Dados e Estruturas Básicas:

    • Tipos de Dados: Trabalhar com strings, números, booleanos, etc.
    • Estruturas Básicas: Listas, tuplas, dicionários e conjuntos.
  • Programação Orientada a Objetos:

    • Conceitos de classes e objetos.
    • Implementação de métodos padrão (ex.: __add__, __get__, etc).
  • Estruturas de Dados Avançadas:

    • Árvores, grafos, heaps, e outros conceitos fundamentais da ciência da computação que auxiliam na criação de algoritmos eficientes.
  • Gerenciamento de Pacotes e Organização de Projetos:

    • Ferramentas para gerenciamento de pacotes: pip, Poetry, uv, etc.
    • Construção e disponibilização de bibliotecas, organização de projetos e uso de ambientes virtuais.
  • Manipulação de Arquivos:

    • Leitura e escrita em diferentes formatos: CSV, JSON, YAML, TOML.
  • Testes e Qualidade de Código:

    • Boas práticas de testes unitários e integração para garantir a robustez do código.
  • Conceitos e Técnicas Modernas:

    • Uso de context managers, dataclasses e decorators.
    • Programação assíncrona com async/await.

4.2 SQL

  • Definição e Manipulação de Dados (DDL & DML):

    • Comandos básicos: CREATE, REPLACE, UPDATE, INSERT, DELETE.
  • Consulta de Dados (DQL):

    • Utilização de operadores condicionais e lógicos.
    • Ordenação, definição de limites (LIMIT, OFFSET) e união de resultados.
    • Junções (JOINs) para combinar dados de múltiplas tabelas.
    • Funções de agregação, como COUNT, SUM, AVG, entre outras.
    • Tratamento de texto com funções como LOWER, UPPER, CONCAT e expressões regulares.
    • Funções de manipulação de datas e timestamps.
    • Uso de subconsultas e Common Table Expressions (CTEs).

4.3 APIs

  • Conceitos Fundamentais:

    • Princípios de APIs REST: métodos HTTP (GET, POST, PUT, DELETE), códigos de status e autenticação.
  • Boas Práticas e Estratégias:

    • Implementação de estratégias de tratamento de falhas e retry.
    • Gerenciamento de requisições paginadas.
  • Desenvolvimento de APIs:

    • Princípios e práticas para a construção de uma API própria, desde o design até a implementação.

Posts Relacionados:

  • Engenharia de dados 101 – Fundamentos de Python

  • Python aplicado à Engenharia de Dados

  • Engenharia de dados 101 – Fundamentos de SQL

  • Engenharia de dados 101 – Criando e consumindo API’s


Essa estrutura detalhada garante que cada aspecto essencial da programação, SQL e APIs seja abordado de forma clara e completa, facilitando a compreensão e aplicação dos conceitos na prática.


Nível 201 – Intermediário / Preparando-se para o Mercado

1. Arquitetura de Dados Avançada

1.1 Conceitos Teóricos

  • Listagem e Definição de Arquiteturas:

    • Revisão avançada de Data Warehouse, Data Lake e Data Mart.
    • Data Mesh e Data Lakehouse: Conceitos emergentes e seus impactos.
  • Arquiteturas Lambda, Kappa e Medallion:

    • Princípios, benefícios, desafios e comparação teórica.
  • Tópico de Comparação Teórica:

    • Critérios, casos de uso e trade-offs entre as arquiteturas.

1.2 Exemplos Práticos

  • Implementação Prática:

    • Projetos demonstrando uma arquitetura Medallion com ferramentas de transformação e ingestão de dados.
    • Orquestração de pipelines em arquiteturas Lambda ou Kappa.

Posts Relacionados:

  • Engenharia de dados 201 – Arquitetura de dados

2. Modelagem de Dados

2.1 Conceitos Teóricos

  • Conceitos Fundamentais:

    • Indexação: Técnicas para acelerar consultas.
    • Normalização e Desnormalização: Teoria, vantagens e desvantagens.
    • Slowly Changing Dimensions (SCD): Gerenciamento de alterações em dados dimensionais.
    • Change Data Capture (CDC): Captura das alterações ocorridas em sistemas operacionais.
  • Formatos de Modelagem:

    • Modelagem Relacional: Estrutura e integridade.
    • Modelagem Dimensional: (Star schema, Snowflake) para BI e análises.
    • One Big Table: Quando e como utilizar.
    • Outras Abordagens: Data Vault, modelagem em grafos, etc.

2.2 Exemplos Práticos

  • Exercícios Práticos:

    • Criação de modelos de dados para cenários variados.
    • Otimização de consultas e demonstrações de normalização/desnormalização.

Posts Relacionados:

  • Engenharia de dados 201 – Modelagem de dados

3. Transformação de Dados e Apache Spark

3.1 Conceitos Teóricos

  • Frameworks de Transformação:

    • Foco em Apache Spark: Conceitos de RDD, DataFrame, Spark SQL e streaming com Spark.
    • Menção breve a outros frameworks (Apache Beam, Hadoop) e comparação conceitual.
  • dbt e Outras Ferramentas:

    • Teoria sobre dbt (Data Build Tool) e outras alternativas para transformação de dados.

3.2 Exemplos Práticos

  • Projeto Spark:

    • Post exclusivo ensinando a configurar, desenvolver e executar um job de transformação com Spark – do consumo à escrita em um data warehouse.
  • Implementação com dbt:

    • Exemplo prático de transformação utilizando dbt.

Posts Relacionados:

  • Engenharia de dados 201 – Frameworks de transformação de dados

  • Engenharia de dados 201 – Fundamentos de PySpark


4. SQL Avançado

4.1 Conceitos Teóricos

  • Tópicos Avançados:

    • Funções de janela, técnicas de otimização, análise de planos de execução e tuning de performance.
  • Casos de Uso:

    • Exemplos de como extrair insights complexos de grandes volumes de dados usando SQL avançado.
  • Desafios SQL:

    • Exercícios práticos para resolver problemas de performance e implementar consultas complexas.

Posts Relacionados:

  • Engenharia de dados 201 – SQL Avançado

  • Engenharia de dados 201 - Otimização de consultas SQL


5. Fundamentos de Cloud Computing e DataOps

5.1 Cloud Computing

  • Conceitos de Infraestrutura:

    • Noções de redes, infraestrutura, sistemas operacionais, firewall, dns, e comparação entre soluções cloud (AWS, Azure, GCP) e ambientes on-premise.
    • Serverless x Gerenciado
  • Serverless e Cloud Native:

    • Containers, Kubernetes e CNCF
    • Abordagem de funções serverless e arquiteturas orientadas a eventos.

5.2 DataOps

  • Integração de Práticas DevOps em Dados:

    • Testes de código e de dados, versionamento e orquestração contínua (CI/CD).
  • Alertas, Monitoramento e Alta Disponibilidade:

    • Estratégias para configurar alertas, dashboards, logs e tracing (usando Open Metrics, Open Telemetry) para garantir resiliência e disponibilidade.

Posts Relacionados:

  • Engenharia de dados 201 – Fundamentos de Cloud Computing

  • Engenharia de dados 201 – Fundamentos de DataOps


6. Orquestradores de Dados

talvez mencionar aqui em orquestração sobre ferramentas de extração (airbyte, fivetran, etc)

6.1 Conceitos Teóricos

  • Comparativo de Soluções:

    • Análise das principais ferramentas: Airflow, Dagster, Prefect, Mage
    • Introdução a orquestradores mais gerais, como o n8n.
    • Ferramentas dentro de provedores (gcp workflows, azure data factory, aws step functions, databricks jobs, snowflake data pipelines, etc)
  • Apache Airflow:

    • Funcionamento, principais conceitos (DAGs, Operators, Hooks) e casos de uso.
    • Criação de pipelines com Airflow, integração com APIs e bancos de dados.
    • Airflow moderno: taskflow api, agendamento por datasets, agendamentos complexos com timetables

Posts Relacionados:

  • Engenharia de dados 201 – Orquestradores de Dados

  • Engenharia de dados 201 – Fundamentos de Apache Airflow

  • Tudo que você precisa saber sobre Apache Airflow


7. No Code e Low Code em Engenharia de Dados

7.1 Conceitos Teóricos

  • Ferramentas No Code/Low Code:

    • Introdução ao Apache Hop e outras plataformas como KNIME, Alteryx, Google DataPrep, Talend Data Preparation.
  • Vantagens e Desafios:

    • Quando e por que utilizar abordagens no code/low code na engenharia de dados.
  • Demonstração de um Projeto No Code:

    • Configuração e execução de um pipeline utilizando uma dessas ferramentas, enfatizando facilidade de integração e visualização.

Posts Relacionados:

  • Engenharia de dados 201 – No Code/Low Code em Engenharia de Dados

8. Soft Skills e Gestão de Projetos

8.1 Conceitos Teóricos

  • Comunicação e Documentação:

    • Técnicas de storytelling com dados, documentação eficaz e visualização para stakeholders.
  • Gestão Ágil de Projetos:

    • Metodologias ágeis e frameworks de gerenciamento aplicados a projetos de dados.
  • Colaboração e Liderança:

    • Desenvolvimento de habilidades interpessoais e liderança em equipes multidisciplinares.

Posts Relacionados:

  • Engenharia de dados 201 – Soft Skills e Gestão de Projetos

9. Conceitos Avançados em Analytics Engineering

9.1 Conceitos Teóricos

  • Transformação para Analytics:

    • Uso de ferramentas como dbt para criar modelos analíticos robustos, camadas semânticas e data marts focados em BI.
  • Integração com BI e Data Visualization:

    • Estratégias para conectar pipelines a ferramentas de visualização (Looker, Tableau, Power BI) e modelagem de dados para análises avançadas.
  • Projeto de Analytics Engineering:

    • Criação de um pipeline completo que vai da ingestão de dados à construção de dashboards interativos e insights de negócios.

Posts Relacionados:

  • Engenharia de dados 201 – Fundamentos de Analytics Engineering

Nível 301 – Avançado e Tendências

1. Processamento de Dados em Streaming e Arquiteturas em Tempo Real

1.1 Conceitos Teóricos

  • Processamento Streaming:

    • Comparativo entre Spark Streaming, Apache Flink, Kafka Streams e outros.
  • Arquiteturas em Tempo Real:

    • Processamento de eventos e aplicações críticas em tempo real.

1.2 Exemplos Práticos

  • Pipeline de Streaming:

    • Desenvolvimento de um pipeline integrado com Kafka ou ferramentas similares.

Posts Relacionados:

  • Engenharia de dados 301 – Processamento de dados em streaming

2. Observabilidade, Monitoramento e Documentação de Dados

2.1 Conceitos Teóricos

  • Observabilidade e Monitoramento:

    • Estratégias de logging, métricas, tracing e alertas usando ferramentas como Grafana e Kibana.
  • Documentação de Dados e Governança:

    • Boas práticas para rastreamento de lineage, catalogação (Data Catalogs) e manutenção da documentação contínua.

2.2 Exemplos Práticos

  • Dashboards e Automação:

    • Configuração de dashboards e criação de processos automatizados de documentação.

Posts Relacionados:

  • Engenharia de dados 301 – Observabilidade

  • (Novo) Engenharia de dados 301 – Documentação e Governança de Dados


3. Data Quality e Governança

3.1 Conceitos Teóricos

  • Qualidade dos Dados:

    • Testes unitários e de dados, validação, auditoria e políticas de compliance (LGPD, GDPR).
  • Criptografia, mascaramento, controle de acesso, compliance e Data Anonymization (técnicas de anonimização para proteger dados sensíveis).

3.2 Exemplos Práticos

  • Processos Automatizados:

    • Implementação de pipelines de validação e monitoramento da qualidade dos dados.

Posts Relacionados:

  • Engenharia de dados 301 – Data Quality

4. Engenharia de Software Aplicada à Engenharia de Dados

4.1 Conceitos Teóricos

  • Sistemas Distribuídos e Concorrência:

    • Fundamentos, desafios e padrões de design para sistemas escaláveis.
  • Integração com Microserviços:

    • Arquiteturas orientadas a eventos e mensageria.
  • Containerização e Orquestração:

    • Uso de Docker, Kubernetes e práticas de CI/CD para ambientes de dados.

4.2 Exemplos Práticos

  • Projeto Integrado:

    • Construção de um sistema distribuído que integra ingestão, processamento (batch/stream) e orquestração com containerização.

Posts Relacionados:

  • Engenharia de dados 301 – Sistemas distribuídos e concorrência

  • Engenharia de dados 301 – Engenharia de Software para Dados


5. Mensageria e Integração em Tempo Real

5.1 Conceitos Teóricos

  • Sistemas de Mensageria:

    • Comparativo entre Kafka, Google PubSub, AWS SQS, RabbitMQ e outros.
  • Arquiteturas para Integração:

    • Ingestão e processamento de dados em tempo real.

5.2 Exemplos Práticos

  • Implementação Prática:

    • Configuração de um sistema de mensageria para ingestão e processamento de eventos.

Posts Relacionados:

  • Engenharia de dados 301 –Fundamentos de mensageria de dados

6. MLOps

6.1 Conceitos Teóricos

  • Integração de Dados e Machine Learning:

    • Estruturação de pipelines que conectem o processamento de dados com fluxos de ML.
  • Ferramentas e Práticas:

    • Uso de MLflow, Kubeflow, BentoML e outras ferramentas para experimentação, versionamento e implantação de modelos.

6.2 Exemplos Práticos

  • Projeto de MLOps:

    • Criação de um pipeline demonstrando a transição do desenvolvimento até a produção de modelos, com monitoramento de performance e qualidade.

Posts Relacionados:

  • Engenharia de dados 301 – Fundamentos de MLOps

Módulo de Carreira e Desenvolvimento Profissional

1. Certificações

  • Principais Certificações:

    • Google Cloud Professional Data Engineer
    • AWS Certified Data Analytics – Specialty
    • Azure Data Engineer Associate
    • Databricks Certified Data Engineer
    • AWS Certified Data Engineer
  • Dicas para Certificação:

    • Materiais de estudo, simulados e estratégias de preparação.

2. Preparação para Entrevistas

  • Técnicas e Estratégias:

    • Perguntas comuns em entrevistas técnicas e comportamentais para engenheiros de dados.
  • Exercícios Práticos:

    • Resolução de desafios práticos e dicas para apresentação de projetos e experiências.
  • Recursos Complementares:

    • Guias, cursos online e comunidades para troca de experiências.

Sugestões de Livros e Referências Essenciais

  • Designing Data-Intensive Applications – Martin Kleppmann

  • Streaming Systems – Tyler Akidau, Slava Chernyak e Reuven Lax

  • The Data Warehouse Toolkit – Ralph Kimball

  • Data Pipelines Pocket Reference – James Densmore

  • Artigos, white papers e documentações oficiais das principais ferramentas (Airflow, Spark, Kubernetes, etc.).

Conclusões

Como atualização rápida, posso dizer que nos últimos meses acabei trabalhando e pesquisando muito sobre ML, modernizei a maior parte da infraestrutura das nossas aplicações. Coloquei algumas coisas pra rodar no meu homelab, que agora tem 2 nós. Fiz alguns projetos internacionais.

E ta ficando cada vez mais difícil me encaixar num rótulo de cargo: Data Engineer, MLOps Engineer, SRE, desenvolvedor, arquiteto. E pra mim isso é ótimo, porque toda essa variedade me ajuda a manter motivado. Comecei a me envolver em discussões e contribuições de alguns projetos open source do meu dia a dia: Airflow, Airbyte, Open Data Discovery, dbt. To fazendo o AirSQL, que é basicamente pra facilitar a minha própria vida com airflow mas acho que pode ser bem útil por aí.

E no próximo semestre eu vou estar até trabalhando como “pesquisador” de ML, na área de visão computacional, que é um dos produtos que a gente ta querendo dar escala. Ganhamos um desafio de aceleração do Google, e além de um orçamento bizarro de créditos de cloud, vamos conseguir mentorias e até usar o espaço Google For Startups aqui em SP.

Top comments (1)

Collapse
 
jooelcosta profile image
Joel Almeida

Muito bom, Cadu! Ansioso pela sequência, era o conteúdo que estava procurando.