Livros sobre arquitetura de dados que farão diferença em sua carreira

Resolver o problema da empresa, geralmente é para isso que estamos lá, seja com algoritmos, frameworks, ferramentas de caixinha, ou arquitetura. Neste artigo venho indicar alguns livros sobre arquitetura de dados que me trouxeram um pouco mais de conhecimento sobre o assunto.

Photo by Rick Mason on Unsplash

Por quê entender Arquitetura?

Geralmente uma arquitetura de dados consiste em N ferramentas que juntas vão solucionar um problema, e cada uma destas ferramentas(softwares) sendo eles On premises ou de algum cloud provider, possui uma arquitetura de software específica.

Pode ser confuso, mas da para entender que tudo começa pela arquitetura, pois precisamos definir quais os requisitos funcionais e não funcionais do sistema, atributos de qualidade e testes, gerenciamento de mudanças, documentação e treinamento.

O artigo abaixo lista oito itens sobre a importância da arquitetura de software.

8 Reasons why software architecture is important?

Entender um pouco sobre arquitetura de software e tipos existentes de arquitetura em dados, ajuda a entender melhor o problema a ser resolvido, já que assim você consegue mapear o máximo possivel de requisitos com a área de negócios e entender quais os usuários necessitarão usar.

Mas aquele framework não resolve?

Seja montando uma arquitetura de dados do zero para solucionar seu problema usando linguagens ou ferramentas open source com você as gerenciando (Exemplo Spark, Kafka, Scala com Akka (modelo de atores), Data API’s robustas com Elixir Phoenix, usando Kubernetes em uma arquitetura resiliente de microserviços), ou até mesmo ferramentas de caixinha com infra gerenciada por terceiros (Exemplo: Ferramentas em cloud como Functions, Clusters Haddop e Spark, Confluent Kafka,Snowflake, Databricks, Cloudera, PowerBI, etc.), entender como se juntam elas, e como gerenciar acessos e outros parâmetros da melhor forma é essencial, pois o ajuda a entender como usar cada ferramenta em determinado ponto.

O ponto principal é: Fuja das balas de prata!! Não se apegue a frameworks e linguagens, cada um foi feito para solucionar um tipo de problema.

"Hadi Hariri at JetBrains best described this behavior as the silver-bullet syndrome: we expect a single tool to solve all our problems, only to chase the next tool when we are disappointed. Do not fall victim to silver-bullet syndrome and become too passionate about a platform or tool.

Instead, stand back. Be impartial and objective. Realize that different tools may be warranted for different types of problems. Granted, you should strive to standardize tools as much as you can in your workplace, but not at the cost of efficacy."

(Thomas Nield at 97 Things that every data engineer should know)

Na realidade na computação não existe bala de prata, e quando se busca mais conhecimento se descobre que ainda falta aprender mais e mais, é um limbo a área. Isso no entanto é bom, pois nos faz entender que é necessário ver qual a ferramenta, seja ela gerenciada por terceiros ou a ser construida pela própria empresa, que vai atender a curto, médio e longo prazo, mas qual a melhor decisão a se tomar?

Para isso existem diversas variáveis, para isso vale criar RFC's, ADR's e POC's.

Obs.: Os princípios de liderança da Amazon ajudam a entender como tomar uma boa decisão

Componentes comuns de uma arquitetura de dados

Referência: https://docs.microsoft.com/pt-br/azure/architecture/data-guide/big-data/

Alguns dos componentes básicos de uma arquitetura de dados pode ter são:

  1. Data Source Layer: Diversas fontes de dados.
  2. Ingestion Layer (Batch ou Streaming): Camada de Ingestão, podendo ser em tempo real ou lotes, ou os dois.
  3. Data Storage Layer: Camada de armazenamento, podendo ser cold(fria) ou hot(quente).
  4. Processing Layer (Batch e ou Streaming): Camada de processamento, novamente podendo ser batch ou streaming.
  5. Analitycs Layer: Camada analítica, geralmente tem um sandbox ou dados onde BA's(Business Analysts) ou AE's(Analytics Engineers) consomem e manipulam os dados.
  6. Data Viz Layer: Camada de Data Viz, para dashboards ou relatoria.
  7. Orquestrador: Ferramenta que vai orquestrar as camadas de ingestão, processamento, dentre outros tipos de jobs como MLOps, DataOps, etc..

Bom agora que você esta por dentro sobre o assunto seguem as indicações

Resumo da Editora: "… Alex Gorelik, CTO e fundador da Waterline Data, explica por que sistemas e processos antigos não podem mais oferecer suporte às necessidades de dados na empresa. Em seguida, em uma coleção de ensaios sobre a implementação de data lake, você examinará iniciativas de data lake, projetos analíticos, experiências e práticas recomendadas de especialistas em dados que trabalham em vários setores. …"

Minha Resenha: Este livro mostra várias formas e aproximações sobre como estruturar um Data Lake, ele traz ainda alguns exemplos usados em algumas empresas como: Google, Linkedin e Facebook. Não espere algo prático do livro ele traz muito texto e desenhos de arquiteturas. Os capítulos mais interessantes são os 7, 8 9 e 10.

Resumo da Editora: "… Enquanto muitas empresas ponderam detalhes de implementação, como mecanismos de processamento distribuído e algoritmos para análise de dados, este livro prático tem uma visão muito mais ampla do desenvolvimento de big data, começando com o planejamento inicial e avançando diligentemente em direção à execução. Os autores Ted Malaska e Jonathan Seidman guiam você pelos principais componentes necessários para iniciar, arquitetar e desenvolver projetos de big data de sucesso. …"

Minha Resenha: Ainda não terminei de ler, estou gostando muito, pois o livro aborda sobre formas de processamento, armazenamento, avaliação e escolha de ferramentas, gerenciamento de riscos.

Resumo da Editora: "… Muitas empresas estão investindo em um data lake de próxima geração, na esperança de democratizar os dados em escala para fornecer insights de negócios e, por fim, tomar decisões inteligentes automatizadas. Neste livro prático, o autor Zhamak Dehghani revela que, apesar do tempo, dinheiro e esforço investidos neles, data warehouses e data lakes falham quando aplicados na escala e velocidade das organizações de hoje. Uma malha de dados distribuída é a melhor escolha. …"

Minha Resenha: O livro aborda sobre algo novo que é o Data Mesh trazendo em três partes: I Porque Data Mesh?; II O que é Data Mesh?; III Como projetar a arquitetura de Data Mesh?. O livro ainda está em desenvolvimento e conforme vão saindo os capitulos da para ir lendo, para quem tem assinatura da O'Reiily, caso não tenha acho que da para ver cada capitulo individualmente conforme os posts da Zhamak nas redes sociais. Obs.: Até o momento o livro está muito bom.

Resumo da Editora: “…Os pipelines de dados são a base para o sucesso na análise de dados. Mover dados de várias fontes diversas e transformá-los para fornecer contexto é a diferença entre ter dados e realmente obter valor com eles. Esta referência de bolso define pipelines de dados e explica como eles funcionam na pilha de dados moderna de hoje. … "

Minha Resenha: O livro vai direto ao ponto, falando de infraestrutura de big data, patterns(aqui o sentido não é uma regra, mas algo que se repete) comuns, ingestão, transformação, orquestração, validação, monitoramento e melhores práticas em manutenção de pipelines.

Resumo da Editora: "O streaming de dados é um grande negócio em big data hoje em dia. À medida que mais e mais empresas buscam domar os enormes conjuntos de dados ilimitados que permeiam nosso mundo, os sistemas de streaming finalmente atingem um nível de maturidade suficiente para adoção convencional. Com este guia prático, engenheiros de dados, cientistas de dados e desenvolvedores aprenderão como trabalhar com streaming de dados de maneira conceitual e independente de plataforma. … "

Minha Resenha: O livro aborda sobre técnicas e formas de se trabalhar com streaming. obs.: Só li o primeiro capítulo e gostei da leitura, pois aborda Wathermarks, Windowning, Joins, Streaming SQL e lista algumas ferramentas que podem ser utilizadas.

Resumo da Editora: "Aplicativos em escala da Web, como redes sociais, análises em tempo real ou sites de e-commerce, lidam com muitos dados, cujo volume e velocidade excedem os limites dos sistemas de banco de dados tradicionais. Esses aplicativos requerem arquiteturas construídas em torno de clusters de máquinas para armazenar e processar dados de qualquer tamanho ou velocidade. Felizmente, escala e simplicidade não são mutuamente exclusivas. …"

Minha Resenha: O livro apresenta a arquitetura lambda e traz as informações necessárias para criar suas camadas. O livro traz códigos de exemplos que podem ser utilizados para criar uma arquitetura lambda.

Bônus Book

Resumo da Editora: "Aproveite as vantagens da demanda altíssima por engenheiros de dados. Com este livro aprofundado, engenheiros atuais e aspirantes aprenderão poderosas práticas recomendadas do mundo real para gerenciar dados grandes e pequenos. Colaboradores de empresas notáveis, incluindo Twitter, Google, Stitch Fix, Microsoft, Capital One e LinkedIn compartilham suas experiências e lições aprendidas para superar uma variedade de desafios específicos e muitas vezes incômodos. …"

Minha Resenha: Acho que fazia tempo que não lia um livro que além de ir direto ao ponto traz a visão de 97 especialistas sobre diversos temas de Engenharia de dados, este livro recomendo demais como obrigatório a quem quer entender mais de engenharia de dados. Quando comecei a ler ele, vi coisas que ja estava fazendo, coisas que não conhecia e coisas que fazia errado, acho que ele traz uma ampla visão sobre todos steps de engenharia.

Conclusão

Caso queria fazer a assinatura da O'Reilly eu recomendo fazer uma assinatura profissional da ACM.org pois lá sai por 40 dólares anuais e você tem acesso a todos os conteúdos da O'Reilly e outras plataformas. Link do form para assinatura.

Obs.: Não estou ganhando nada para indicar esses materiais

Finalizando … Espero que tenha ajudado você a descobrir algum livro que desconhecia, e que estes livros indicados possam ajudar em sua carreira como estão ajudando na minha, existem outros livros bons que não coloquei minha resenha aqui devido a serem mais específicos de algumas tecnologias, mas segue os links caso tenha interesse neles:

Referências

Arquiteturas de Big Data

Lambda vs Kappa

The Enterprise Big Data Lake: Delivering the Promise of Big Data and Data Science

Foundations for Architecting Data Solutions: Managing Successful Data Projects

Data Mesh: Delivering Data-Driven Value at Scale

Data Pipelines Pocket Reference: Moving and Processing Data for Analytics

Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing

Big Data: Principles and Best Practices of Scalable Realtime Data Systems

97 Things Every Data Engineer Should Know

Data Hackers

Blog oficial da comunidade Data Hackers

Data Hackers

Blog oficial da comunidade Data Hackers

Diogo Akio Balboni Miyake

Written by

Enthusiast in Data Science, Artificial Inteligence, Machine Learning and trying to help people to live better.

Data Hackers

Blog oficial da comunidade Data Hackers