O que é engenharia de dados?
Baseado no famoso livro "Fundamentos de Engenharia de Dados" e com comentários adicionais de alguém que está aprendendo sobre a área de dados.
O que faz um engenheiro de dados?
A quantidade de dados gerada diariamente pode ser maior do que você imagina, esses dados são vindos das redes sociais, sistemas em geral, da internet como um todo, enfim, são muitas fontes de dados existentes em diversos contextos.
Quando nos cadastrasmos em um aplicativo de delivery nós geramos dados, quando fazemos um pedido nesse aplicativo nós geramos dados, quase todas as nossas interações com algum sistema/aplicativo faz com que mais dados sejam gerados.
Os dados podem vir de dispositivos físicos com IoT também, sensores de máquinas ou sistemas de segurança, sistemas embarcados, enfim, são várias as fontes de dados existentes.
Como muitas pessoas sabem, os dados podem ser usados para gerar informações úteis sobre algum contexto, um exemplo genérico é uma empresa que capta os dados gerados pelas transações de seus sistemas, trata esses dados de acordo com algumas regras de negócio e com isso (os dados) monta alguns dashboards no Power BI por exemplo, esses dashboards são analisados por certas pessoas que podem tomar decisões sobre o rumo que a empresa pode tomar, pois os dados indicam que X decisão é melhor do que Y decisão.
Acima eu descrevi de forma muito resumida um certo “fluxo”:
- Dados gerados são captados
- Dados captados são tratados
- Dados tratados são usados em dashboards
Para que alguém possa consumir os dados de forma útil (para criar dashboards, por exemplo) antes alguém deve entregar esses dados de forma “mastigável” ou “usável”, e é aí que entra o papel do Engenheiro de Dados.
Conforme eu entendi até agora, o Engenheiro de Dados fica no meio do caminho entre a geração de dados (upstream) e o uso dos dados (downstream), entre uma ponta e outra ele traduz dados brutos em dados limpos (conforme fora requerido de acordo com as necessidades do negócio) para que os Cientistas/Analistas de Dados e ML Engineers possam usar.
Os autores do livro “Fundamentos de Engenharia de Dados” dão a seguinte definição para engenheiro de dados:
"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."
té pouco tempo atrás eu pensava que o Engenheiro de Dados era responsável apenas por criar pipelines ETL (Extract, Transform, Load), mas como tenho aprendido e como está citado acima, o Engenheiro de Dados cuida do ciclo de vida da engenheria de dados, em outras palavras: ele cuida de muita coisa e suas habilidades vão bastante além de Python e SQL.
E afinal, o que é Engenharia de Dados? Abaixo deixo a definição dos autores do livro já falado acima:
"Engenharia de dados é o desenvolvimento, implementação e manutenção de sistemas e processos que recebem dados brutos e produzem informações consistentes e de alta qualidade que suportam casos de uso downstream, como análise de dados e machine learning. A engenharia de dados é a combinação de segurança, gerenciamento de dados, DataOps, arquitetura de dados, orquestração e engenharia de software."
Cada trecho dessa definição é digna de uma grande explicação, boa parte dos assuntos abordados hoje serão aprofundados em próximas edições, além deles eu quero falar sobre tudo o que estou estudando e vou estudar no decorrer da minha trajetória na área de dados.