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.
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/
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
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.
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.
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.
“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
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).
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.
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.