Slide 1

Slide 1 text

Engenharia de dados - Do conceito ao código em produção Leonardo Fiedler

Slide 2

Slide 2 text

Apresentação ● Noivo da Suellen, torcedor do Flamengo, estudante de alemão (A2) e praticante de Crossfit e Pilates; ● Data Team Lead @ Senior Sistemas; ● +10 anos de experiência profissional; ● Ciência da Computação (2019 - FURB); ● Data Science (2021 - FURB); ● Criador do Podcast Taverna da Programação.

Slide 3

Slide 3 text

Importância dos dados

Slide 4

Slide 4 text

O que é dado? ● Dado: descreve um fato de um evento. O quê? Quem? Onde? Quando? Quantos?; ● Informação: dados processados e organizados em um contexto; ● Conhecimento: produto gerado a partir da integração de diferentes informações obtidas; ● Inteligência: integração de conhecimentos distintos levando a capacidade de tomar uma decisão ou resolver um problema; Fonte: https://blog.inovall.com.br/diferenca-entre-dados-informacao-e-conhecimento/

Slide 5

Slide 5 text

Por que a engenharia de dados se tornou relevante?

Slide 6

Slide 6 text

Por que a engenharia de dados se tornou relevante? ● A engenharia de dados passou a ter maior relevância a partir de 2010; ● Até 2022 uma busca no Google sobre “what is data engineer?” retornava mais de 90 mil respostas únicas; ● Engenheiros de dados são responsáveis por: obter os dados de diferentes fontes, armazená-los e prepará-los para consumo por diferentes usuários/aplicações; Fonte: trecho obtido da definição de engenharia de dados, contido no livro Fundamentals Of Data Engineering

Slide 7

Slide 7 text

Ciclo de vida dos processos de engenharia de dados Fonte: Fundamentals Of Data Engineering

Slide 8

Slide 8 text

Conceitos > Ferramentas

Slide 9

Slide 9 text

DATA & AI LANDSCAPE 2020 Fonte: https://mattturck.com/wp-content/uploads/2020/09/2020-Data-and-AI-Landscape-Matt-Turck-at-FirstMark-v1.pdf

Slide 10

Slide 10 text

THE 2024 MAD (MACHINE LEARNING, ARTIFICIAL INTELLIGENCE & DATA) LANDSCAPE Fonte: https://mattturck.com/landscape/mad2024.pdf

Slide 11

Slide 11 text

Generation (Fontes de Dados) / Ingestion ● Fontes de dados diversas e com comportamentos variados, que vão desde planilhas preenchidas manualmente até milhares de sensores IoT; ● Aplicação precisará lidar com o inesperado; ● Quantidade de eventos, bem como sua durabilidade e padronização são pontos chaves para a garantia de uma boa fonte de dados; ● Schemaless vs Fixed Schema; ● Batch vs Stream Processing; ● Push vs Pull; ● Tecnologias utilizadas: ○ Python/Java/SQL; ○ Airbyte/Debezium/AWS DMS; ○ Kafka/SQS/Kinesis/Google Cloud Pub-Sub/Google Cloud Dataflow; ○ JSON Schema/Data Contract.

Slide 12

Slide 12 text

Storage ● Apesar de ser uma fase do processo, o armazenamento impacta desde a entrada até a distribuição do dado; ● Muitas aplicações de storage podem fazer funções que vão além de só armazenar dados; ● O modo como se armazena impacta na sua utilização em todos os estágios do ciclo de engenharia de dados.

Slide 13

Slide 13 text

Transformation ● Uma vez que o dado foi coletado, faz-se necessário transformá-lo em algo útil para as aplicações de dados; ● Ajuste de tipos de dados - data, timestamp, valores monetários/unitários; ● Modelagem de dados; ● Padronização dos dados, remoção de nulos/incompletos; ● Normalização e agrupamento de dados; ● Tecnologias utilizadas: ○ Python/Java/Go; ○ SQL; ○ DBT/Trino; ○ Spark.

Slide 14

Slide 14 text

Serving / Visualization ● Serving é o modo como se “entrega” o dado para usuários/aplicações; ● Dados tem valor quando são usados para fins práticos e que realmente respondem dúvidas de alguém; ● Analytics, Business Intelligence, Operational Analytics, Embedded Analytics, Machine Learning; ● Tecnologias utilizadas: ○ Redshift/PostgreSQL/MySQL; ○ Metabase/BigQuery/PowerBI; ○ Dremio; ○ API; ○ CSV/JSON/Parquet/Zip; ○ SageMaker. Fonte: Fundamentals Of Data Engineering

Slide 15

Slide 15 text

Orchestration ● Orchestration: é o processo coordenado de executar diversos jobs de forma rápida e eficiente em uma cadência de agendamentos; ● Ferramentas como Apache Airflow são muito mais do que um scheduler; ● DAG - Directed Acyclic Graph; ● Orchestration para streaming é bem mais desafiador; ● Tecnologias utilizadas: ○ Cron/Apache Aiflow/Dagster/Prefect/Pulsar (Streaming); ○ Argo; ○ Metaflow (ML).

Slide 16

Slide 16 text

Data Architecture ● Design system que suporta as mudanças da organização, alcançada pela flexibilidade e decisões reversíveis graças a correta análise dos trade-offs; ● One-way vs Two-way door; ● “Never shoot for the best architecture, but rather the least worst architecture.” (Mark Richards and Neal Ford); ● Uma “boa” arquitetura é construída através de princípios; ● Princípios de uma boa arquitetura, segundo AWS Well-Architected Framework: ○ Operational excellence; ○ Security; ○ Reliability; ○ Performance efficiency; ○ Cost optimization; ○ Sustainability.

Slide 17

Slide 17 text

Data Architecture Patterns Fonte: https://www.databricks.com/glossary/data-lakehouse

Slide 18

Slide 18 text

Data Architecture Patterns Fonte: https://www.peerislands.io/demystifying-data-mesh/

Slide 19

Slide 19 text

Demais pontos importantes a serem observados ● Data Quality; ● Data Lineage; ● Security; ● DataOps/FinOps; ● Data Management/Data Governance; ● Cloud: ○ AWS; ○ Azure; ○ GCP; ○ Snowflake; ○ Databricks.

Slide 20

Slide 20 text

Conclusão ● Colocar um projeto de engenharia de dados em produção é bem complexo e exige atenção a todos os detalhes, desde a entrada até a entrega do dado; ● Processos de data quality e data governance; ● Cloud vs vendor lock-in; ● Ferramentas vs conceitos; ● Uma boa arquitetura de dados é baseada em pilares e atender as demandas de negócio; ● E lembre-se: software mediano rodando em produção e gerando receita é melhor do que o “ideal” que nunca foi implantado.

Slide 21

Slide 21 text

Muito obrigado!