Fundamentos de Engenharia de Dados

Projete e Construa Sistemas de Dados Robustos

Fundamentos de Engenharia de Dados
× Fundamentos de Engenharia de Dados

Fundamentos de Engenharia de Dados

Compartilhar

Autores: Joe Reis
Matt Housley

ISBN impresso: 978-85-7522-876-0
ISBN ebook: 978-85-7522- 877-7
Ano: 2023
Páginas: 528
Preço impresso: R$ 165,00 O ebook deste livro está disponível na Amazon.

1 opinião | Opine sobre este livro

Descrição do livro

A engenharia de dados cresceu rapidamente na última década, deixando muitos engenheiros de software, cientistas e analistas de dados em busca de uma visão abrangente dessa prática. Com este livro prático, você aprenderá a projetar e construir sistemas para atender às necessidades de sua organização e clientes, avaliando as melhores tecnologias disponíveis por meio da estrutura do ciclo de vida da engenharia de dados.

Os autores Joe Reis e Matt Housley guiam você pelo ciclo de vida da engenharia de dados e mostram como integrar uma variedade de tecnologias em nuvem para atender às necessidades dos consumidores de dados downstream. Você compreenderá como aplicar os conceitos de geração, ingestão, orquestração, transformação, armazenamento e governança de dados que são essenciais em qualquer ambiente de dados, independentemente da tecnologia utilizada.

Este livro o ajudará a:

• Obter uma visão geral de todo o cenário de engenharia de dados.

• Avaliar problemas de engenharia de dados utilizando um conjunto abrangente de melhores práticas.

• Não se deixar guiar pelo hype do momento ao escolher as tecnologias, arquitetura e processos de dados adequados.

• Utilizar o ciclo de vida da engenharia de dados para projetar e criar uma arquitetura robusta.

• Integrar governança de dados e segurança em todo o ciclo de vida da engenharia de dados.

Ver menos ▲

Sumário

  • Prefácio
    • Fundamentos e componentes essenciais da engenharia de dados
  • Capítulo 1 ■ Descrição do que é engenharia de dados
  • O que é engenharia de dados?
    • Definição de engenharia de dados
    • O ciclo de vida da engenharia de dados
    • Evolução do engenheiro de dados
    • Engenharia de dados e ciência de dados
  • Habilidades e funções da engenharia de dados
    • Maturidade de dados e o engenheiro de dados
    • Formação e habilidades de um engenheiro de dados
    • Responsabilidades comerciais
    • Responsabilidades técnicas
    • As diversas funções na engenharia de dados, do tipo A ao tipo B
  • Engenheiros de dados dentro de uma organização
    • para o público externo
    • Engenheiros de dados e outras funções técnicas
    • Engenheiros de dados e liderança corporativa
  • Resumo
  • Recursos adicionais
  • Capítulo 2 ■ O ciclo de vida da engenharia de dados
  • O que é o ciclo de vida da engenharia de dados?
    • O ciclo de vida dos dados versus o ciclo de vida da engenharia de dados
    • Geração: Sistemas de origem
    • Armazenamento
    • Ingestão
    • Transformação
    • Disponibilização de dados
  • Principais elementos subjacentes em todo o ciclo de vida da engenharia de dados
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
  • Capítulo 3 ■ Desenvolvendo uma boa arquitetura de dados
  • O que é arquitetura de dados?
    • Definição de arquitetura corporativa
    • Definição de arquitetura de dados
    • A “boa” arquitetura de dados
  • Princípios de uma boa arquitetura de dados
    • Princípio 1: Escolha componentes comuns com sabedoria
    • Princípio 2: Planeje para falhas
    • Princípio 3: Projete para escalabilidade
    • Princípio 4: Arquitetura é o cerne da liderança
    • Princípio 5: Esteja sempre arquitetando
    • Princípio 6: Desenvolva sistemas fracamente acoplados
    • Princípio 7: Tome decisões que possam ser revertidas
    • Princípio 8: Priorize a segurança
    • Princípio 9: Adote o FinOps
  • Principais conceitos de arquitetura
    • Domínios e serviços
    • Sistemas distribuídos, escalabilidade e planejando para falhas
    • Acesso do usuário: locatário único versus multilocatários
    • Arquitetura orientada a eventos
    • Projetos brownfield versus projetos greenfield
  • Exemplos e tipos de arquitetura de dados
    • Data Warehouse
    • Data Lake
    • Convergência, a nova geração de data lakes e a plataforma de dados
    • Pilha de dados moderna
    • Arquitetura Lambda
    • Arquitetura Kappa
    • O modelo Dataflow e o processamento em lote e em fluxo (streaming) unificado
    • Arquitetura para IoT
    • Data Mesh
    • Outros exemplos de arquitetura de dados
  • Quem faz parte do desenvolvimento de uma arquitetura de dados?
  • Resumo
  • Recursos adicionais
  • Capítulo 4 ■ Escolhendo tecnologias ao longo do ciclo de vida da engenharia de dados
  • Tamanho e capacidades da equipe
  • Velocidade de entrada no mercado
  • Interoperabilidade
  • Otimização de custos e valor comercial
    • Custo total de propriedade
    • Custo de oportunidade total de propriedade
    • FinOps
  • Hoje versus o futuro: tecnologias imutáveis versus tecnologias transitórias
    • Nossa recomendação
  • Local
    • On-premises
    • Nuvem
    • Nuvem híbrida
    • Multicloud
    • Computação descentralizada: o blockchain e a computação de borda
    • Nossa recomendação
    • Argumentos sobre a repatriação dos dados da nuvem
  • Construir versus comprar
    • Software de código aberto
    • Jardins murados proprietários
    • Nossa recomendação
  • Sistemas monolíticos versus sistemas modulares
    • Monolito
    • Modularidade
    • O padrão de monolito distribuído
    • Nossa recomendação
  • Arquitetura sem servidor (serverless) versus arquitetura com servidor
    • Arquitetura sem servidor
    • Contêineres
    • Avaliando arquitetura sem servidor versus arquitetura com servidor
    • Nossa recomendação
  • Otimização, desempenho e a guerra de benchmarks
    • Big Data...no contexto dos anos 1990s
    • Comparações de custos sem sentido
    • Otimização assimétrica
    • O “caveat emptor” — comprador, tenha cautela
  • Elementos subjacentes e seus impactos na escolha de tecnologias
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Exemplo de orquestração: Airflow
    • Engenharia de software
  • Resumo
  • Recursos adicionais
    • O ciclo de vida da engenharia de dados em detalhes
  • Capítulo 5 ■ Geração de dados em sistemas de origem
  • Fontes de dados: como os dados são criados?
  • Sistemas de origem: principais conceitos
    • Arquivos e dados não estruturados
    • APIs
    • Bancos de dados de aplicação (sistemas OLTP)
    • Sistema de processamento analítico online
    • Captura de dados de alteração
    • Logs
    • Logs de banco de dados
    • CRUD
    • Padrão insert-only (apenas inserir)
    • Mensagens e fluxos
    • Tipos de registro de tempo
  • Detalhes práticos dos sistemas de origem
    • Banco de dados
    • APIs
    • Compartilhamento de dados
    • Fonte de dados de terceiros
    • Fila de mensagens e plataformas de streaming de eventos
  • Com quem você trabalhará
  • Elementos subjacentes e seus impactos em sistemas de origem
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
  • Capítulo 6 ■ Armazenamento
  • Componentes básicos do armazenamento de dados
    • Unidade de disco magnético
    • Unidades de estado sólido
    • Memória de acesso aleatório
    • Redes e CPU
    • Serialização
    • Compressão
    • Cache
  • Sistemas de armazenamento de dados
    • Armazenamento em uma única máquina versus armazenamento distribuído
    • Consistência eventual versus consistência forte
    • Armazenamento de arquivos
    • Armazenamento em blocos
    • Armazenamento de objetos
    • Sistemas de armazenamento baseado em memória e cache
    • O Hadoop Distributed File System
    • Armazenamento de streaming
    • Índices, particionamento e clustering
  • Abstrações de armazenamento na engenharia de dados
    • Data warehouse
    • Data lake
    • Data lakehouse
    • Plataformas de dados
    • Arquitetura de armazenamento de fluxo para lote
  • Principais conceitos e tendências em armazenamento
    • Catálogo de dados
    • Compartilhamento de dados
    • Esquema
    • Separação entre computação e armazenamento
    • Ciclo de vida do armazenamento de dados e retenção de dados
    • Armazenamento de único locatário versus armazenamento multilocatário
  • Com quem você trabalhará
  • Elementos subjacentes
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
  • Capítulo 7 ■ Ingestão
  • O que é ingestão de dados?
  • Principais considerações de engenharia para a etapa de ingestão
    • Dados limitados versus ilimitados
    • Frequência
    • Ingestão síncrona versus ingestão assíncrona
    • Serialização e desserialização
    • Taxa de transferência e escalabilidade
    • Confiabilidade e durabilidade
    • Carga útil
    • Diferença entre os padrões push, pull e poll
  • Considerações sobre ingestão em lote
    • Snapshot ou extração diferencial
    • Exportação e ingestão baseada em arquivos
    • ETL versus ELT
    • Inserções, atualizações e tamanho de lote
    • Migração de dados
  • Considerações sobre ingestão de streaming e mensagens
    • Evolução do esquema
    • Dados que chegam atrasados
    • Ordenação e entrega múltipla
    • Replay
    • Tempo de vida
    • Tamanho das mensagens
    • Tratamento de erros e filas de mensagens mortas
    • Operações de pull e push realizadas pelo consumidor
    • Localização
  • Formas de ingestão de dados
    • Conexão direta com o banco de dados
    • Captura de dados de alteração
    • APIs
    • Filas de mensagens e plataformas de streaming de eventos
    • Conectores de dados gerenciados
    • Movimentação de dados com armazenamento de objetos
    • EDI
    • Bancos de dados e exportação de arquivos
    • Questões práticas com formatos de arquivo comuns
    • Shell
    • SSH
    • SFTP e SCP
    • Webhooks
    • Interface web
    • Web scraping
    • Appliances de transferência para migração de dados
    • Compartilhamento de dados
  • Com quem você trabalhará
    • Stakeholders do upstream
    • Stakeholders do downstream
  • Elementos subjacentes
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
  • Capítulo 8 ■ Consultas, modelagem e transformação
  • Consultas
    • O que é uma consulta?
    • A vida útil de uma consulta
    • O otimizador de consultas
    • Aprimorando o desempenho da consulta
    • Consultas em dados de streaming
  • Modelagem de dados
    • O que é um modelo de dados?
    • Modelos conceitual, lógico e físico de dados
    • Normalização
    • Técnicas para modelagem de dados analíticos em lote
    • Modelando dados de streaming
  • Transformações
    • Transformações em lote
    • Visualizações materializadas, federação e virtualização de consultas
    • Transformações e processamento de streaming
  • Com quem você trabalhará
    • Stakeholders do upstream
    • Stakeholders do downstream
  • Elementos subjacentes
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
  • Capítulo 9 ■ Disponibilizando dados para análise, machine learning e ETL reverso
  • Considerações gerais para a disponibilização de dados
    • Confiança
    • Qual é o caso de uso e quem é o usuário?
    • Produtos de dados
    • Autoatendimento ou não?
    • Definições e lógica de dados
    • Data Mesh
  • Análise
    • Análise de negócios
    • Análise operacional
    • Análise incorporada
  • Machine learning
  • O que um engenheiro de dados deve saber sobre ML
  • Maneiras de disponibilizar dados para análise e ML
    • Troca de arquivos
    • Bancos de dados
    • Sistemas de streaming
    • Federação de consultas
    • Compartilhamento de dados
    • Camadas semânticas e camadas de métricas
    • Disponibilizando dados em notebooks
  • ETL reverso
  • Com quem você trabalhará
  • Elementos subjacentes
    • Segurança
    • Gerenciamento de dados
    • DataOps
    • Arquitetura de dados
    • Orquestração
    • Engenharia de software
  • Resumo
  • Recursos adicionais
    • Segurança, privacidade e o futuro da engenharia de dados
  • Capítulo 10 ■ Segurança e privacidade
  • Pessoas
    • O poder do pensamento negativo
    • Mantenha-se sempre paranoico com a segurança
  • Processos
    • Falsa sensação de segurança versus hábito de segurança
    • Segurança ativa
    • O princípio do privilégio mínimo
    • Responsabilidade compartilhada na nuvem
    • Sempre faça o backup dos seus dados
    • Um exemplo de política de segurança
  • Tecnologia
    • Aplique patches e atualize os sistemas
    • Criptografia
    • Registro de logs, monitoramento e emissão de alertas
    • Acesso à rede
    • Segurança para engenharia de dados de baixo nível
  • Resumo
  • Recursos adicionais
  • Capítulo 11 ■ O futuro da engenharia de dados
  • O ciclo de vida da engenharia de dados veio para ficar
  • A diminuição da complexidade e a ascensão de ferramentas de dados fáceis de usar
  • Engenharia de dados “empresarial”
  • Funções e responsabilidades se transformarão
  • Indo além da pilha de dados moderna, rumo à pilha de dados em tempo real
    • A pilha de dados em tempo real
    • Pipelines de streaming e bancos de dados analíticos em tempo real
    • A fusão de dados com aplicações
    • A estreita relação entre aplicações e ML
    • Dados de matéria escura e o surgimento de... planilhas ?!
  • Conclusão
  • Apêndice A ■ Detalhes técnicos de serialização e compressão
  • Formatos de serialização
    • Serialização baseada em linhas
    • Serialização colunar
    • Serialização híbrida
  • Mecanismos de armazenamento de banco de dados
  • Compressão: gzip, bzip2, Snappy e outros
  • Apêndice B ■ Rede em nuvem
  • Topologia de rede em nuvem
    • Custos de saída de dados
    • Zonas de disponibilidade
    • Regiões
    • Redundância de multirregião e rede específicos do GCP
    • Conexões de rede diretas para as nuvens
  • CDNs
  • O futuro das taxas de saída de dados
  • Índice remissivo
Ver sumário completo ▼

Sobre os autores

Joe Reis

Joe Reis é um “cientista de dados em recuperação” e cofundador e CEO da Ternary Data. Ele é um nerd de dados com mentalidade empresarial, que trabalha no setor de dados há 20 anos, com responsabilidades que vão desde modelagem estatística, previsão, aprendizado de máquina, engenharia de dados, arquitetura de dados e quase tudo mais. Ele… Ver perfil completo ▶

Matt Housley

Matt Housley é consultor de engenharia de dados e especialista em nuvem. Após alguma experiência inicial de programação com Logo, Basic e assembly 6502, ele completou um doutorado em matemática na Universidade de Utah. Matt então começou a trabalhar em ciência de dados, especializando-se eventualmente em engenharia de dados baseada em nuvem.… Ver perfil completo ▶

Opinião dos leitores

Ailton T

O livro “Fundamentos de Engenharia de Dados” apresenta uma visão bastante completa sobre os principais conceitos envolvidos na construção e manutenção de plataformas de dados modernas. O conteúdo aborda temas importantes como ingestão, armazenamento, processamento, qualidade, governança e disponibilização de dados para diferentes tipos de consumo. Achei interessante como o livro consegue conectar fundamentos técnicos com desafios reais enfrentados por equipes que trabalham com pipelines, integrações e arquiteturas de dados em larga escala. A abordagem ajuda a entender que engenharia de dados vai muito além de apenas mover informações entre sistemas. A leitura é organizada e bastante relevante para profissionais que atuam ou pretendem atuar com Data Lakes, Data Warehouses, analytics e ecossistemas orientados a dados. No geral, considero um livro muito útil para quem deseja fortalecer a base conceitual em engenharia de dados e compreender melhor as boas práticas envolvidas na construção de ambientes de dados mais confiáveis e escaláveis.

Ver todas ▼