Engenheiro de dados e cientista de dados: qual a diferença?

As profissões de Cientista de Dados e Engenheiro de Dados são frequentemente confundidas. Cada empresa tem suas especificidades de trabalhar com dados, diferentes finalidades para sua análise e uma ideia diferente de qual especialista deve lidar com qual parte do trabalho, portanto cada uma tem suas necessidades. 

Vamos descobrir qual é a diferença entre esses especialistas, quais problemas de negócios eles resolvem, quais habilidades possuem e quanto ganham. O material acabou sendo grande, então o dividimos em duas publicações.

No primeiro artigo, Elena Gerasimova, chefe do corpo docente “Ciência e análise de dados" em Netologia, conta qual é a diferença entre um Cientista de Dados e um Engenheiro de Dados e com quais ferramentas eles trabalham.

Como os papéis dos engenheiros e dos cientistas diferem

Um engenheiro de dados é um especialista que, por um lado, desenvolve, testa e mantém infraestrutura de dados: bancos de dados, sistemas de armazenamento e processamento em massa. Por outro lado, é este quem limpa e “penteia” os dados para uso de analistas e cientistas de dados, ou seja, cria pipelines de processamento de dados.

O Data Scientist cria e treina modelos preditivos (e outros) usando algoritmos de aprendizado de máquina e redes neurais, ajudando as empresas a encontrar padrões ocultos, prever desenvolvimentos e otimizar os principais processos de negócios.

A principal diferença entre um Cientista de Dados e um Engenheiro de Dados é que eles geralmente têm objetivos diferentes. Ambos trabalham para garantir que os dados sejam acessíveis e de alta qualidade. Mas um Cientista de Dados encontra respostas para suas perguntas e testa hipóteses em um ecossistema de dados (por exemplo, baseado em Hadoop), e um Engenheiro de Dados cria um pipeline para atender um algoritmo de aprendizado de máquina escrito por um cientista de dados em um cluster Spark dentro do mesmo ecossistema. 

Um engenheiro de dados agrega valor a uma empresa trabalhando como parte de uma equipe. Sua tarefa é atuar como um elo importante entre os diferentes participantes: de desenvolvedores a consumidores empresariais de relatórios, e aumentar a produtividade dos analistas, de marketing e produto a BI. 

Um Cientista de Dados, ao contrário, participa ativamente da estratégia da empresa e extrai insights, toma decisões, implementa algoritmos de automação, modela e gera valor a partir dos dados.
Engenheiro de dados e cientista de dados: qual a diferença?

Trabalhar com dados está sujeito ao princípio GIGO (garbage in - trash out): se analistas e cientistas de dados lidarem com dados despreparados e potencialmente incorretos, os resultados, mesmo usando os algoritmos de análise mais sofisticados, serão incorretos. 

Os engenheiros de dados resolvem esse problema construindo pipelines para processamento, limpeza e transformação de dados e permitindo que os cientistas de dados trabalhem com dados de alta qualidade. 

Existem muitas ferramentas no mercado para trabalhar com dados que abrangem todas as etapas: desde o aparecimento dos dados até a saída até um dashboard para o conselho de administração. E é importante que a decisão de utilizá-los seja tomada por um engenheiro - não porque esteja na moda, mas porque ele realmente ajudará no trabalho dos demais participantes do processo. 

Convencionalmente: se uma empresa precisa fazer conexões entre BI e ETL – carregamento de dados e atualização de relatórios, aqui está uma típica base legada com a qual um Engenheiro de Dados terá que lidar (é bom se também houver um arquiteto na equipe).

Responsabilidades de um engenheiro de dados

  • Desenvolvimento, construção e manutenção de infraestrutura de processamento de dados.
  • Tratamento de erros e criação de pipelines de processamento de dados confiáveis.
  • Trazendo dados não estruturados de diversas fontes dinâmicas para a forma necessária ao trabalho dos analistas.
  • Fornecer recomendações para melhorar a consistência e a qualidade dos dados.
  • Fornecer e manter a arquitetura de dados usada por cientistas e analistas de dados.
  • Processe e armazene dados de forma consistente e eficiente em um cluster distribuído de dezenas ou centenas de servidores.
  • Avalie as vantagens técnicas das ferramentas para criar arquiteturas simples, mas robustas, que possam sobreviver a interrupções.
  • Controle e suporte de fluxos de dados e sistemas relacionados (configuração de monitoramento e alertas).

Existe outra especialização dentro da trajetória do Engenheiro de Dados – engenheiro de ML. Resumindo, esses engenheiros são especializados em trazer modelos de aprendizado de máquina para implementação e uso industrial. Freqüentemente, um modelo recebido de um cientista de dados faz parte de um estudo e pode não funcionar em condições de combate.

Responsabilidades de um Cientista de Dados

  • Extração de recursos de dados para aplicação de algoritmos de aprendizado de máquina.
  • Usando várias ferramentas de aprendizado de máquina para prever e classificar padrões em dados.
  • Melhorar o desempenho e a precisão dos algoritmos de aprendizado de máquina por meio do ajuste fino e da otimização dos algoritmos.
  • Formação de hipóteses “fortes” de acordo com a estratégia da empresa que precisam ser testadas.

Tanto o Engenheiro de Dados quanto o Cientista de Dados compartilham uma contribuição tangível para o desenvolvimento de uma cultura de dados, por meio da qual uma empresa pode gerar lucros adicionais ou reduzir custos.

Com quais linguagens e ferramentas os engenheiros e cientistas trabalham?

Hoje, as expectativas dos cientistas de dados mudaram. Anteriormente, os engenheiros coletavam grandes consultas SQL, escreviam MapReduce manualmente e processavam dados usando ferramentas como Informatica ETL, Pentaho ETL, Talend. 

Em 2020, um especialista não pode prescindir do conhecimento de Python e de modernas ferramentas de cálculo (por exemplo, Airflow), da compreensão dos princípios de trabalho com plataformas em nuvem (utilizando-as para economizar em hardware, observando os princípios de segurança).

SAP, Oracle, MySQL, Redis são ferramentas tradicionais para engenheiros de dados em grandes empresas. São bons, mas o custo das licenças é tão alto que aprender a trabalhar com eles só faz sentido em projetos industriais. Ao mesmo tempo, existe uma alternativa gratuita na forma de Postgres - é gratuita e adequada não apenas para treinamento. 

Engenheiro de dados e cientista de dados: qual a diferença?
Historicamente, solicitações de Java e Scala são frequentemente encontradas, embora, à medida que as tecnologias e abordagens se desenvolvem, essas linguagens fiquem em segundo plano.

No entanto, BigData hardcore: Hadoop, Spark e o resto do zoológico não é mais um pré-requisito para um engenheiro de dados, mas um tipo de ferramenta para resolver problemas que não podem ser resolvidos pelo ETL tradicional. 

A tendência são os serviços de utilização de ferramentas sem conhecimento da linguagem em que são escritas (por exemplo, Hadoop sem conhecimento de Java), bem como a prestação de serviços prontos para processamento de dados de streaming (reconhecimento de voz ou reconhecimento de imagem em vídeo ).

As soluções industriais do SAS e SPSS são populares, enquanto Tableau, Rapidminer, Stata e Julia também são amplamente utilizadas por cientistas de dados para tarefas locais.

Engenheiro de dados e cientista de dados: qual a diferença?
A capacidade de construir pipelines apareceu para analistas e cientistas de dados apenas alguns anos atrás: por exemplo, já é possível enviar dados para um armazenamento baseado em PostgreSQL usando scripts relativamente simples. 

Normalmente, o uso de pipelines e estruturas de dados integradas continua sendo responsabilidade dos engenheiros de dados. Mas hoje, a tendência para especialistas em forma de T com amplas competências em áreas relacionadas é mais forte do que nunca, porque as ferramentas estão constantemente a ser simplificadas.

Por que o engenheiro de dados e o cientista de dados trabalham juntos

Ao trabalhar em estreita colaboração com engenheiros, os cientistas de dados podem se concentrar no lado da pesquisa, criando algoritmos de aprendizado de máquina prontos para produção.
E os engenheiros precisam se concentrar na escalabilidade, na reutilização de dados e na garantia de que os pipelines de entrada e saída de dados em cada projeto individual estejam em conformidade com a arquitetura global.

Esta separação de responsabilidades garante consistência entre as equipes que trabalham em diferentes projetos de machine learning. 

A colaboração ajuda a criar novos produtos com eficiência. Rapidez e qualidade são alcançadas através do equilíbrio entre a criação de um serviço para todos (armazenamento global ou integração de dashboards) e a implementação de cada necessidade ou projeto específico (pipeline altamente especializado, ligação de fontes externas). 

Trabalhar em estreita colaboração com cientistas e analistas de dados ajuda os engenheiros a desenvolver habilidades analíticas e de pesquisa para escrever códigos melhores. O compartilhamento de conhecimento entre usuários de warehouse e data lake melhora, tornando os projetos mais ágeis e entregando resultados mais sustentáveis ​​no longo prazo.

Nas empresas que visam desenvolver uma cultura de trabalho com dados e construir processos de negócios baseados neles, Cientista de Dados e Engenheiro de Dados se complementam e criam um sistema completo de análise de dados. 

No próximo artigo falaremos sobre que tipo de formação um Engenheiro de Dados e um Cientista de Dados devem ter, quais habilidades eles precisam desenvolver e como funciona o mercado.

Dos editores da Netology

Se você está buscando a profissão de Engenheiro de Dados ou Cientista de Dados, convidamos você a estudar nossos programas de cursos:

Fonte: habr.com

Adicionar um comentário