Introdução à Engenharia de Dados
Published: 2021-02-07 16:14:43

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/n5bn6wg6y1u4p5k3swqw.jpg)

O Engenheiro de Dados é responsável por criar e pavimentar a trilha de dados que os dados vão percorrer, desde a sua concepção até sua disponibilização para Analistas, Cientistas de Dados e níveis Operacionais e Gerenciais. Ou seja, o papel de um Engenheiro de Dados é acompanhar todo o processo e o caminho dos dados, não só como eles serão armazenados e distribuídos, mas também qual é a melhor forma para limpá-los, transformá-los e transportá-los. Aliados a isso, o Engenheiro de Dados deve conhecer as ferramentas do mercado para lidar com os dados e suas respectivas vantagens e desvantagens, de acordo com o perfil de cada cliente e tipo de problema que precisa solucionar, fazendo com que as aplicações sejam escaláveis, disponíveis e otimizados em relação aos custos. Existem quatro palavras que acompanharão a carreira de um Engenheiro de Dados:

· Coleta = na coleta de dados, é necessário que o Engenheiro de Dados saiba escolher ferramentas de forma a acompanhar a entrada das informações. As falhas devem ser imediatamente detectadas (como um equipamento que sofreu curto circuito) e, além disso, as ferramentas devem ser provisionadas de forma a ler todos esses dados e, caso necessário, distribui-los para seus respectivos caminhos;
· Transformação = o dado nem sempre chega na forma que é esperado, e será trabalho do Engenheiro de Dados também relaciona-lo de forma que agregue valor a ele, e que ele seja de fácil entendimento e relação, além de detectar inconsistência e problemas. Os valos inconsistentes devem ser retirados, de forma que não poluam a forma final dos dados. As ferramentas escolhidas devem proporcionar agilidade em carregar e checar estes dados;
· Armazenamento = após o Engenheiro de Dados montar boas relações entre os dados, é preciso armazena-los, de forma centralizada ou distribuída. É necessário que o Eng. de Dados saiba dimensionar os serviços que vão armazenar os dados, de forma correta e eficiente, pensando sempre nos casos de uso dos clientes;
· Distribuição = o Engenheiro de Dados deve disponibilizar os dados de forma simples, segura e eficiente. A distribuição de dados depende da quantidade de profissionais que trabalharão na solução, o que gera perfis dentro da Engenharia de Dados.

Os perfis de Engenheiro de Dados (papeis) são divididos em:

· Analista: realiza as análises dos dados que, quando bem organizados, fornecem informações importantes sobre o negócio. O valor entregue será o provisionamento em larga escala e um modelo ligado diretamente ao aprendizado de máquina;
· Construtor: é responsável por pensar nas situações em que o negócio se expande e tem seu sistema aplicado a outros locais, provendo um ambiente que contemple as necessidades atuais com a comunicação rápida, munida de backup e alta disponibilidade;
· Desenvolvedor: buscará a solução de questões particulares e/ou otimizadas para demandas especificas, seja uma nova ou uma adaptação da antiga. Os desenvolvedores também vão interagir com os serviços em Nuvem, interligando os dois sistemas, necessitando que o profissional dessa área tenha conhecimentos de Arquitetura e Desenvolvimento de Software;

· Generalista: os conhecimentos deste profissional devem abranger os sistemas locais, o caminho das informações no servidor, como funcionam os bancos de dados, bem como as ferramentas necessárias para a manutenção e construção de softwares. É importante também que ele tenha experiência com ambientes Linux e linguagens de programação que lidam com dados.

Data Storages são bancos de dados usualmente não-relacionais, que são utilizados para armazenar arquivos, e-mails, log, etc.; além de informações utilizando um mapeamento chave-valor. Como cada um possui uma chave única, o arquivo poderá ser subscrita toda vez que algo for recarregada com a mesma chave. Além disso, não há relacionamento entre os itens guardados, como no uso do comando JOIN, que faz a agregação. Com relação ao transporte de dados, podemos dividi-los em:

· Streaming = corresponde ao processamento em tempo real, ou seja, são processados ou consumidos a medida que são gerados;

· Transmissão por Lotes = lida com maiores volumes de dados. Por exemplo, seria como pães em uma padaria que se originam em lotes de massas assadas, os quais são preparadas após o termino do processo anterior.