“Um cientista pode descobrir uma nova estrela, mas não pode criá-la. Para fazer isso, ele teria que entrar em contato com um engenheiro. Gordon Lindsay Glass, Design de Design (1969)Alguns meses atrás, escrevi sobre as diferenças entre especialistas em teoria e métodos de análise de dados (cientista de dados) e especialistas em processamento de dados (engenheiro de dados). Eu falei sobre suas habilidades e pontos de partida comuns. Algo interessante aconteceu: os cientistas de dados começaram a avançar, alegando que eram realmente tão competentes no campo da engenharia de dados quanto os especialistas em processamento de dados. Isso foi interessante porque os especialistas em processamento de dados não se opuseram e não disseram que eram especialistas na teoria da análise de dados.
Portanto, durante os últimos meses venho coletando informações e monitorando o comportamento de especialistas na teoria da análise de dados em seu ambiente de trabalho natural. Nesta postagem, falarei mais sobre por que um cientista de dados não é um engenheiro de dados.
Por que isso é importante?
Alguns reclamam que a diferença entre um especialista em teoria da análise de dados e um especialista em processamento de dados está apenas no nome. "Os
nomes não devem impedir as pessoas de aprender ou fazer algo novo ", dizem eles. Eu concordo, você precisa aprender o máximo possível. Mas lembre-se de que seu treinamento pode se relacionar remotamente apenas ao que precisará ser feito na prática. Caso contrário, isso pode levar à falha de projetos com big data.
Muito também depende do nível de gestão nas empresas. A gerência contrata especialistas em teoria da análise de dados, esperando que sejam especialistas em processamento de dados.
Ouvi a mesma história em diferentes empresas: a empresa decide que a ciência de dados é uma maneira de obter dinheiro dos investidores, toneladas de lucros, ganhar credibilidade em sua comunidade empresarial, etc. Esta decisão é tomada no nível de gerência sênior. Por exemplo, deixe uma certa Alice pertencer a esses altos executivos. Após uma longa pesquisa, a empresa encontra o melhor especialista em teoria da análise de dados do mundo - vamos chamá-lo de Bob.
O primeiro dia útil de Bob chegou. Alice vem até ele e fala ansiosamente sobre todos os seus planos.
“Ótimo. Onde estão os pipelines de dados e seu cluster Spark? ”, Pergunta Bob.
Alice responde: “É isso que estamos esperando de você. Nós contratamos você para fazer a análise dos dados.
"Não sei como fazer isso", diz Bob.
Alice parece surpresa: “Mas você é um especialista em teoria do processamento de dados. Certo? É isso que você está fazendo.
"Não, eu uso pipelines e dados já criados."
Alice retorna ao seu escritório para descobrir o que aconteceu. Ela analisa gráficos simplificados como o mostrado na Figura 1 e não consegue entender por que Bob não consegue executar tarefas simples com big data.
Figura 1. Um diagrama de Venn simplificado com um especialista em teoria de análise de dados e um especialista em processamento de dados.Destaque
Duas questões surgem dessas interações:
- Por que a gerência não entende que um especialista em teoria de análise de dados não é especialista em processamento de dados?
- Por que alguns teóricos da análise pensam que são especialistas em processamento?
Vou começar do lado da liderança. Mais tarde, falaremos sobre os próprios especialistas em teoria da análise de dados.
Vamos ser sinceros: o processamento de dados não está em destaque. Ela não é declarada a melhor obra do século XXI. Ela não é frequentemente escrita na mídia. Nas conferências, as primeiras pessoas da empresa não são informadas sobre os benefícios do processamento de dados. Todas as mensagens estão relacionadas à análise de dados e à busca de especialistas na teoria e nos métodos de análise de dados.
Mas as coisas estão começando a mudar. Temos conferências sobre processamento de dados. A necessidade do desenvolvimento de ferramentas técnicas de processamento de dados é gradualmente reconhecida. Espero que meu trabalho ajude as organizações a perceber essa necessidade urgente.
Reconhecimento e apreciação
Mesmo nos casos em que as organizações possuem equipes de especialistas em processamento de dados, seu trabalho geralmente ainda não é avaliado adequadamente.
Uma falta de reconhecimento pode ser vista durante as conferências. Um especialista na teoria da análise de dados diz que ele criou. Vejo uma tecnologia abrangente de processamento de dados que formou a base de seu modelo, mas nunca é mencionada durante uma conversa. Não espero que seja examinado em detalhes, mas seria bom observar o trabalho que foi feito para que a criação de seu modelo seja possível. A gerência e os novatos no campo da análise de dados acreditam que tudo é possível com as habilidades de um especialista em teoria da análise de dados.
Como obter reconhecimento
Recentemente, especialistas em processamento de dados têm me perguntado como obter destaque em suas empresas. Eles sentem que, quando especialistas em teoria da análise mostram seus últimos desenvolvimentos, eles recebem toda a gratidão da liderança. A principal pergunta que os engenheiros me perguntam é: "Como faço para que um cientista de dados pare de considerar nosso trabalho comum como meu mérito?"
Essa é uma pergunta bem fundamentada, baseada nas situações que vejo nas empresas. A gerência não reconhece (e não divulga) o trabalho de processamento de dados, relacionado a tudo relacionado à análise de dados. Se você ler isso e pensar:
- Meus especialistas em teoria de análise de dados são especialistas em processamento de dados.
- Meus especialistas em teoria de análise de dados criam pipelines de dados realmente complexos.
- O autor não deve saber do que está falando.
... então você provavelmente tem um especialista em processamento de dados que não está em destaque.
Como especialistas em teoria de análise de dados param na ausência de engenheiros, um engenheiro que não recebe reconhecimento suficiente de seu trabalho o encerra. Não se deixe enganar; para especialistas qualificados em processamento de dados, o mercado de trabalho é tão quente quanto para especialistas em teoria de análise de dados.
A análise de dados é possível apenas com o apoio de nossos amigos
Você provavelmente já ouviu o
mito de Atlanta . Como punição, ele foi forçado a manter o mundo / céu / esfera celestial em si mesmo. A Terra existe em sua forma atual apenas porque Atlas a mantém.
Da mesma forma, os cientistas de dados apóiam o mundo da análise de dados. Uma pessoa que segura o mundo inteiro nos ombros não recebe tanto apreço, embora deva. Em todos os níveis da organização, deve-se entender que a análise de dados só é possível graças ao trabalho de um grupo de especialistas em processamento de dados.
Fig. 2. Até os italianos da década de 1400 sabiam da importância dos especialistas em processamento de dados.Os cientistas de dados não são engenheiros de dados.
Isso nos leva a entender por que a teoria da análise de dados pensa que são especialistas em processamento de dados.
Antes de continuarmos, algumas reservas para alertar os comentários:
- Sei que os especialistas em teoria da análise de dados são realmente muito inteligentes e gosto de trabalhar com eles.
- Eu me pergunto se esse intelecto causa um efeito mais forte de QI de Dunning-Kruger.
- Alguns dos melhores especialistas em teoria de análise de dados que eu conhecia eram especialistas em processamento de dados, mas havia muito poucos.
- Nós constantemente reavaliamos nossas próprias habilidades.
Fig. 3. Um diagrama empírico da percepção de suas habilidades por especialistas na teoria da análise em comparação com suas habilidades reais.Discutindo suas habilidades de processamento de dados com especialistas em teoria de análise de dados, descobri que sua auto-estima varia muito. Este é um experimento social interessante com preconceito. A maioria dos especialistas em teoria de análise de dados superestimou seus próprios recursos de processamento de dados. Alguns deram uma avaliação precisa, mas ninguém deu uma classificação menor do que suas habilidades reais.
Faltam duas coisas neste diagrama:
- Qual é o nível de habilidade dos profissionais de processamento de dados?
- Qual nível de habilidade é necessário para um pipeline de dados moderadamente complexo?
Figura 4. Um diagrama empírico das habilidades dos especialistas na teoria de análise e processamento de dados necessários para criar um pipeline de dados moderadamente complexo.A figura mostra as diferenças nos recursos necessários para o processamento de dados. De fato, exagerei um pouco com o número de cientistas capazes de criar um pipeline de dados moderadamente complexo. A realidade pode ser que os especialistas na teoria da análise representem metade da parcela mostrada no diagrama.
Em geral, apresenta as partes aproximadas desses dois grupos, que podem e não podem criar pipelines de dados. Sim, alguns especialistas em processamento de dados não podem criar um pipeline moderadamente complexo, como a maioria dos especialistas em teoria da análise. Isso nos leva de volta ao problema urgente: as organizações entregam seus projetos com big data para aqueles que não têm a oportunidade de implementá-los corretamente.
O que é um pipeline de dados moderadamente complexo?
Um pipeline de dados moderadamente complexo está um passo acima do nível mínimo necessário para criar
um pipeline de dados . Um exemplo de nível mínimo é o processamento de arquivos de texto armazenados no HDFS / S3 usando o Spark: digamos, o início da otimização de armazenamento usando o banco de dados NoSQL usado corretamente.
Penso que os especialistas na teoria da análise de dados pensam que o seu pipeline simples é o processamento de dados. Mas, na realidade, eles estão falando sobre as soluções mais simples e é necessária uma correia transportadora muito mais complexa. No passado, um especialista em processamento de dados nos bastidores realizava uma engenharia realmente complexa, e os especialistas em teoria da análise não precisavam lidar com isso.
Você pode pensar: “Bem, 20% dos meus especialistas em teoria de análise de dados podem lidar com isso. No final, não preciso de um especialista em processamento. ” Primeiro, lembre-se de que este gráfico exagera os recursos dos especialistas em teoria da análise de dados. Um nível moderadamente difícil ainda é um nível bastante baixo. Preciso criar outro diagrama para mostrar como poucos teóricos da análise de dados podem dar o próximo passo. É nessa fase que sua participação entre os especialistas envolvidos na teoria da análise de dados diminui para 1% ou menos.
Por que os cientistas de dados não são engenheiros de dados?
Às vezes, prefiro considerar as manifestações refletidas dos problemas. Aqui estão alguns desses problemas que fazem com que os especialistas em teoria da análise de dados não tenham habilidades de processamento.
Universidade e cursos
Data Analysis é um novo programa popular para universidades e cursos on-line. Há todo tipo de sugestão, mas o mesmo problema é encontrado em quase toda parte: o currículo não contém nenhuma classe de processamento de dados ou apenas um par se destaca.
Quando vejo um novo programa de treinamento em análise de dados, olho para ele. Às vezes me pedem para comentar sobre os cursos oferecidos pelas universidades. Digo a todos a mesma coisa: “Você precisa de programadores experientes? Porque seu curso não diz respeito à programação ou sistemas necessários para usar o pipeline de dados criado. ”
O curso, em termos gerais, enfoca as ferramentas estatísticas e matemáticas necessárias. Isso reflete como, de acordo com empresas e cientistas, deve ser a análise de dados. Mas o mundo real parece muito diferente. Os alunos pobres só podem influenciar até o final dessas aulas não triviais.
Podemos dar um passo atrás e analisar tudo do ponto de vista acadêmico, considerando os requisitos para um mestrado na área de sistemas distribuídos. Obviamente, um especialista em teoria de análise de dados não precisa de um nível tão profundo, mas ajuda a mostrar quais lacunas existem nas habilidades de um especialista em teoria de análise de dados. Existem várias lacunas sérias.
Processamento de dados! = Spark
Um equívoco comum entre especialistas na teoria da análise e gerenciamento de dados é que eles pensam que o processamento de dados está apenas escrevendo algum tipo de código Spark para processar o arquivo. O Spark é uma boa solução em lote, mas não é a única tecnologia que você precisa. Uma solução de big data exigirá 10 a 30 tecnologias diferentes que funcionarão juntas.
Essa falácia está no centro das falhas de big data. A gerência acredita que a empresa possui uma nova solução universal para resolver problemas com big data. A realidade é muito mais complicada.
Quando aconselho a organização sobre problemas de big data, verifico a presença desse erro em todos os níveis da empresa. Se for, devo ter certeza de que listarei todas as tecnologias necessárias. Isso elimina o equívoco de que na área de big data existe um botão simples e uma única tecnologia para resolver todos os problemas.
De onde veio o código?
Às vezes, os especialistas em teoria da análise de dados me dizem como é simples a tecnologia de processamento de dados. Pergunto-lhes por que eles pensam assim. “Consigo o código necessário no StackOverflow ou no Reddit. Se precisar criar algo do zero, posso copiar o projeto de alguém em uma palestra em uma conferência ou em um documento técnico ".
Para um estranho, isso pode parecer normal. Para um especialista em processamento de dados, isso é um alarme. Deixando de lado questões legais, isso não é processamento de dados. Na área de big data, existem muito poucos problemas de modelo. Tudo o que acontece depois de “olá, mundo” tem uma estrutura mais complexa, que requer um especialista em processamento de dados, já que não há uma abordagem de modelo para trabalhar com ele. Copiar um projeto da documentação técnica pode levar a
um desempenho ruim ou algo pior .
Eu tive que lidar com vários grupos sobre a teoria da análise de dados que tentou a abordagem "macaco vê - macaco faz". Não funciona muito bem. Isso ocorre devido a um aumento acentuado na complexidade de big data e
muita atenção aos casos de uso. Uma equipe de especialistas em teoria da análise de dados geralmente rejeita um projeto porque vai além de suas capacidades no processamento de dados. Simplificando, há uma grande diferença entre “Eu posso copiar código do StackOverflow” ou “Eu posso mudar algo que já foi escrito” e “Eu posso criar este sistema do zero”.
Pessoalmente, estou preocupado que grupos de especialistas em teoria da análise de dados possam se tornar uma fonte de enorme dívida técnica que reduz a eficácia do big data nas organizações. Quando isso ficar claro, a dívida técnica será tão grande que será impossível corrigi-la.
Qual foi o código mais longo introduzido para uso industrial?
A principal diferença entre especialistas na teoria da análise de dados é a profundidade. Essa profundidade pode ser mostrada de duas maneiras. Qual é o período mais longo de aplicação de seu código na prática - e foi colocado em operação? Qual é o programa mais longo, maior ou mais complexo que eles já escreveram?
Não se trata de concorrência, mas de saber se eles sabem o que acontece quando você coloca algo em operação e como manter o código. Escrever um programa de 20 linhas de código é relativamente simples. Outra questão é escrever 1000 linhas de código coerentes e fáceis de manter. Pessoas que nunca escreveram mais de 20 linhas não entendem a diferença na facilidade de manutenção. Todas as suas reclamações sobre a verbosidade do Java e a necessidade de usar as melhores práticas de programação estão relacionadas a grandes projetos de software.
Ao avaliar e descobrir dados, você precisa trabalhar rapidamente e refazer o código. E trabalhar com o código para uso em produção é necessário em um nível diferente e mais profundo. É por isso que o código da maioria dos especialistas em teoria de análise de dados precisa ser reescrito antes de ser colocado em operação.
Projeto de Sistema Distribuído
Uma maneira de descobrir a diferença entre especialistas em teoria de análise de dados e especialistas em processamento de dados é ver o que acontece quando eles escrevem seus próprios sistemas distribuídos. Um especialista em teoria de análise de dados escreverá algo muito focado em matemática, mas não funcionando bem. Um especialista em processamento de dados que escreve sistemas distribuídos criará uma solução distribuída que funcionará bem (
mas não gravará
melhor seus próprios sistemas ). Vou contar várias histórias sobre minha interação com organizações nas quais especialistas em teoria da análise de dados criaram um sistema distribuído.
Então, na empresa do meu cliente, um departamento formado por especialistas na teoria da análise de dados criou um sistema desse tipo. Fui enviado para conversar com eles e entender por que eles escreveram suas próprias decisões e o que elas podem fazer. Eles estavam envolvidos no processamento de imagens (distribuído).
Comecei perguntando a eles por que eles criaram seu próprio sistema distribuído? Eles responderam que era impossível distribuir o algoritmo. Para confirmar suas descobertas, eles assinaram contrato com outro especialista na teoria da análise de dados, especializado em processamento de imagens. O contratante confirmou a impossibilidade de distribuir o algoritmo.
Nas duas horas que passei com a equipe, ficou claro que o algoritmo pode ser distribuído em um mecanismo de computação universal, como o Spark. , . data scientist'e data engineer', -.
, , . , . . , . . RPC- , .
:
- , . , .
- , .
- : « ?» : « ?»
- , , , .
?
, , : — . , ? ?
— , big data.
, , . , . Aqui estão alguns deles:
, , , , . , . , , : « » « . . ». , . .
? , - , production ? «». , .
data scientist'? , ( ), . , . «» .
?
, , data scientist' data engineer'. , . : , , .
, , , .
, , data scientist' data engineer' , , . 2-5 . , , .
, . , , , . , , . , , , , , .
, . . , . , , , , .
, . , , , , . :
- . , , , .
- , — . , .
- ? , -?
- , data scientist'. .
- , . , . — , .
O que fazer?
, , ? , . . .
, . , . .
, . .
big data
, big data — . , . big data-, . .
big data- , . , , . ( ) , .
Falhas semelhantes formam um padrão repetitivo. Você pode atualizar para a tecnologia mais recente, mas esqueça de corrigir os problemas do sistema. Somente corrigindo o problema raiz você pode começar sua jornada para o sucesso.