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
- Nível 101 – Iniciante
-
Nível 201 – Intermediário / Preparando-se para o Mercado
- 1. Arquitetura de Dados Avançada
- 2. Modelagem de Dados
- 3. Transformação de Dados e Apache Spark
- 4. SQL Avançado
- 5. Fundamentos de Cloud Computing e DataOps
- 6. Orquestradores de Dados
- 7. No Code e Low Code em Engenharia de Dados
- 8. Soft Skills e Gestão de Projetos
- 9. Conceitos Avançados em Analytics Engineering
- Nível 301 – Avançado e Tendências
- Módulo de Carreira e Desenvolvimento Profissional
- Sugestões de Livros e Referências Essenciais
- Conclusões
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:
História e evolução da Engenharia de Dados
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
.
- Comandos básicos:
-
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)
Muito bom, Cadu! Ansioso pela sequência, era o conteúdo que estava procurando.