Os Fundamentos da Engenharia de Dados: Descrita a Engenharia de Dados

8 min read

Engenharia de DadosThe Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering Described

Este post resume o início do livro “Fundamentals of Data Engineering” de Joe Reis e Matt Housley. Recentemente, proferi uma palestra sobre essas informações via Tarô. A palestra do Capítulo 2 acontecerá em 18 de fevereiro. Esperamos ver você lá!

Sem mais delongas, vamos direto ao assunto.

Prefácio

No prefácio do livro, os autores descrevem suas motivações para escrevê-lo. Os autores se descrevem como “cientistas de dados em recuperação”. Com isso, eles querem dizer que começaram como cientistas de dados, mas perceberam que antes que as empresas possam realizar um bom trabalho de ciência de dados, elas precisam realizar um bom trabalho de engenharia de dados. Ou seja, a engenharia de dados precede e alimenta a ciência de dados. Portanto, seria sensato que as empresas adotassem as práticas do livro se quiserem obter valor dos dados para fazer ciência de dados e aprendizado de máquina.

A Hierarquia de Necessidades da Ciência de Dados (com as anotações em negrito à esquerda adicionadas por mim) mostra como você deve evoluir para Ciência de Dados e Aprendizado de Máquina (e o pedido que você deve contratar):

The Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering Described

Existem 2 princípios subjacentes a todo o livro:

A discussão será sobre conceitos e ideias fundamentais para a engenharia de dados que abrangem qualquer tecnologia relevante. Esses conceitos resistirão ao teste do tempo

O livro é centrado no ciclo de vida da engenharia de dados, representado aqui:

The Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering Described

Dos 11 capítulos do livro, os 4 primeiros compreendem a Parte 1: Fundações e blocos de construção, os próximos 5 compreendem a Parte 2: O ciclo de vida da engenharia de dados em profundidade e os 2 últimos são a Parte 3: Segurança, privacidade e o futuro da engenharia de dados. Portanto, o livro trata do diagrama acima, com o cerne do livro examinando cada uma das etapas do ciclo de vida (da geração ao serviço, abrangendo o armazenamento) em sequência e em profundidade.

Antes de prosseguir para a discussão do Capítulo 1, quero mencionar que fiz uma pesquisa com as pessoas que participaram da palestra do Capítulo 1 e descobri que a maioria delas eram engenheiros de software, e não engenheiros de dados, analistas ou cientistas! A conclusão para mim é que, à medida que o ML e a IA se tornam mais populares e importantes no mundo da tecnologia, mais pessoas estarão interessadas em engenharia de dados, pois é o pré-requisito necessário para essas áreas.

Capítulo 1: Descrição da Engenharia de Dados

O Capítulo 1 está dividido em três seções: uma visão do que é Engenharia de Dados, uma visão das habilidades e atividades de um Engenheiro de Dados e uma visão de onde um Engenheiro de Dados se encaixa em uma organização.

1.1   O que é engenharia de dados e o que é um engenheiro de dados?

Começamos com uma definição de Engenharia de Dados: “Engenharia de dados é o desenvolvimento, implementação e manutenção de sistemas e processos que absorvem dados brutos e produzem informações consistentes e de alta qualidade que dão suporte a casos de uso posteriores, como análise e aprendizado de máquina. A engenharia de dados é a interseção de segurança, gerenciamento de dados, DataOps, arquitetura de dados, orquestração e engenharia de software. Um engenheiro de dados gerencia o ciclo de vida da engenharia de dados, começando com a obtenção de dados dos sistemas de origem e terminando com o fornecimento de dados para casos de uso, como análise ou aprendizado de máquina.” (FoDE, página 4) Esta definição é essencialmente a forma de uma palavra da imagem do Ciclo de Vida da Engenharia de Dados que incluí acima. Para resumir ainda mais, podemos dizer que a Engenharia de Dados absorve os dados e os torna úteis ou utilizáveis.

1.2   Habilidades e atividades de engenharia de dados

As habilidades que um engenheiro de dados precisa para prosperar podem ser divididas em habilidades comerciais e técnicas. Antes de examiná-los, entretanto, é importante observar que o que um Engenheiro de Dados faz é em grande parte determinado pela Maturidade de Dados da empresa para a qual trabalha. Uma empresa pode ser ‘madura’ ou ‘imatura’ no uso de dados, o que certamente impactará o trabalho técnico de um Engenheiro de Dados. Em menor grau, mas ainda importante, também terá impacto no trabalho comercial em que um Engenheiro de Dados trabalha.

O que significa “Maturidade de Dados”? Os autores definem-no como “a progressão em direção a uma maior utilização de dados, capacidades e integração em toda a organização”. Por outras palavras, quando as empresas estão apenas a começar a utilizar dados, normalmente apenas recolhem o máximo que podem e não têm os processos implementados para utilizar todos eles, pelo que a sua “utilização” é baixa. Por outro lado, as empresas com maturidade em termos de dados já recolhem e utilizam dados há algum tempo, pelo que é geralmente mais fácil para elas utilizar dados novos ou antigos de novas formas.

Existem 3 estágios de maturidade de dados:

The Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering DescribedComeçando com dados: Esta etapa é caracterizada por “agir rapidamente, obter tração e agregar valor”. Nesse estágio, a empresa está começando a tornar os dados úteis, por isso é importante que um engenheiro de dados agregue valor ao negócio rapidamente para mostrar aos executivos que as iniciativas de dados valem a pena. Comunicar-se com as empresas sobre quais problemas resolver é crucial, assim como não complicar as soluções para evitar longos prazos de entrega. Dimensionamento com dados: Nesta fase, a arquitetura de dados torna-se mais avançada. A escala torna-se um problema, à medida que as soluções iniciais que agregaram valor foram comprovadas e agora estão sujeitas a uma carga crescente. Nesse estágio, o código personalizado geralmente é escrito para complementar produtos prontos para uso. Liderança com dados: aqui, uma empresa tem usado dados com sucesso, portanto, há menos ênfase na construção e mais na manutenção. A manutenção envolve aspectos “empresariais” dos dados, como governança (quem tem acesso a quais dados) e qualidade (quão bons/confiáveis/limpos são).

Em cada uma das etapas, comunicar com as empresas quais problemas resolver é fundamental, assim como manter as soluções o mais simples possível.

O texto acima fornece uma boa estrutura para pensar sobre as habilidades de negócios de um Engenheiro de Dados. Eles são:

Comunicação: com pessoas técnicas (por exemplo, cientistas de dados e engenheiros de software) e não técnicas (ou seja, de negócios). Escopo e coleta de requisitos de negócios e produtos: para obter uma ótima postagem no blog sobre uma boa lista de verificação a ser executada antes de criar qualquer pipeline, consulte aqui.Compreendendo Agile, DevOps e DataOps: metodologias e práticas tecnológicasControlando custos: dinheiro (por exemplo, custos de nuvem) e tempo (por exemplo, economizando tempo dos analistas de negócios automatizando relatórios para eles)Aprendizado contínuo: sempre muitas ferramentas novas para aprender!

As principais habilidades técnicas que um engenheiro de dados precisa são:

SQL: para interface com bancos de dados e datalakesPython: para trabalho de ciência de dados, trabalho de engenharia de back-end e scripts (por exemplo, um script AWS Lambda para extrair um arquivo de uma API e soltá-lo em um bucket S3). Ferramentas CLI como bash ou Powershell: para scripts e operações de sistema operacional Uma linguagem JVM como Java ou Scala

Depois de listar tudo isso, direi novamente que as habilidades empresariais são mais importantes do que as habilidades técnicas, pois ter uma bela solução para um problema inexistente ou menor é uma perda de tempo e dinheiro.

Concluímos esta seção sobre habilidades e atividades de engenheiros de dados falando sobre os 2 tipos de engenheiros de dados. O primeiro é um Engenheiro de Dados Tipo A, onde A significa “Abstração” ou “Analítica”. Este engenheiro se concentra nos dados da engenharia de dados e normalmente usa produtos, serviços gerenciados e ferramentas prontos para uso, em vez de código personalizado. Eles são encontrados em todas as empresas, mas especialmente nas empresas no Estágio 1 do modelo de Maturidade de Dados que precisam de valor comercial o mais rápido possível.

O outro tipo de Engenheiro de Dados é um Engenheiro de Dados Tipo B, onde B significa “Construir”. Este engenheiro está focado na engenharia de engenharia de dados e normalmente escreve código personalizado para dimensionar e alavancar a competência principal de uma empresa.

Para uma visão mais aprofundada de ambos os tipos, consulte esse ótimo blog postagem de Sarah Floris.

1.3   Engenheiros de dados dentro de uma organização

Concluímos situando um Engenheiro de Dados dentro de uma organização ao longo de 3 eixos: se eles são internos ou externos, de quem eles são upstream e downstream e onde eles se enquadram no negócio.

O primeiro eixo é sobre se um Engenheiro de Dados é voltado para interno ou externo.

The Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering DescribedThe Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering Described

Um engenheiro de dados interno normalmente criará e manterá pipelines e armazéns de dados para relatórios e painéis de Business Intelligence (BI). Se a empresa tiver mais dados avançados, ela também poderá manter pipelines e armazéns de ML. O engenheiro de dados externo processará dados transacionais e de eventos provenientes de fora da empresa. A principal diferença é quem são as partes interessadas do Engenheiro de Dados. Os voltados para o exterior atendem diretamente aos clientes. Os voltados para o interior atendem aos negócios e às partes interessadas internas. A maioria dos engenheiros de dados são voltados para dentro.

A seguir situamos um Engenheiro de Dados entre seus pares técnicos:

The Fundamentals of Data Engineering - Preface + Chapter 1: Data Engineering Described

Acima de um engenheiro de dados, temos arquitetos de dados e engenheiros de software. Juntos, eles definem o tipo de dados com os quais um engenheiro de dados deve trabalhar, bem como a frequência com que eles chegam. A jusante de um engenheiro de dados estão os analistas de dados, cientistas e engenheiros de aprendizado de máquina. Eles usam os dados limpos que um Engenheiro de Dados fornece para fornecer insights sobre o negócio no passado (Analista), presente (Analista) ou futuro (Cientista) e para implantar modelos de aprendizado de máquina que operacionalizam esses insights (Engenheiros de ML) .

Por fim, posicionamos um Engenheiro de Dados dentro do negócio. Os engenheiros de dados podem trabalhar com executivos de alto escalão, incluindo o CEO, em iniciativas comerciais críticas, como migrações para a nuvem ou novos sistemas de dados. De modo mais geral, eles podem conversar com essas pessoas para conscientizá-las sobre o que pode e o que não pode ser feito com os dados (às vezes, conversas realmente difíceis). Para projetos menos críticos, os engenheiros de dados trabalharão com gerentes de projetos e gerentes de produto, que garantem que os projetos estejam no caminho certo e que os engenheiros obtenham os recursos de que precisam.

Conclusão

Isso encerra o Prefácio e o Capítulo 1! Fique ligado na próxima postagem do blog sobre o Capítulo 2, que aparecerá na hora da próxima palestra, acontecendo 18 de fevereiro! O Capítulo 2 cobre o ciclo de vida da engenharia de dados em alto nível, portanto é o capítulo mais importante do livro.

Eu te vejo lá!

https://www.jointaro.com/blog/the-fundamentals-of-data-engineering-preface-and-chapter-1-data-engineering-described/
Autor: Gideon Blinick

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *