Quem são os engenheiros de dados e como você se torna um?

Olá de novo! O título do artigo fala por si. Antecipando o início do curso Engenheiro de dados Sugerimos que você entenda quem são os engenheiros de dados. Existem muitos links úteis no artigo. Leitura feliz.

Quem são os engenheiros de dados e como você se torna um?

Um guia simples sobre como pegar a onda da Engenharia de Dados e não deixar que ela o arraste para o abismo.

Parece que todo mundo quer se tornar um Cientista de Dados hoje em dia. Mas e a Engenharia de Dados? Essencialmente, trata-se de uma espécie de híbrido de analista de dados e cientista de dados; Um engenheiro de dados normalmente é responsável por gerenciar fluxos de trabalho, processar pipelines e processos ETL. Devido à importância dessas funções, este é atualmente outro jargão profissional popular que está ganhando força ativamente.

Altos salários e grande demanda são apenas uma pequena parte do que torna este trabalho extremamente atrativo! Se você deseja se juntar às fileiras dos heróis, nunca é tarde para começar a aprender. Neste post, reuni todas as informações necessárias para te ajudar a dar os primeiros passos.

Então vamos começar!

O que é engenharia de dados?

Honestamente, não há explicação melhor do que esta:

“Um cientista pode descobrir uma nova estrela, mas não pode criá-la. Ele terá que pedir a um engenheiro para fazer isso por ele."

–Gordon Lindsay Glegg

Assim, o papel de um engenheiro de dados é bastante significativo.

Como o nome sugere, a engenharia de dados preocupa-se com os dados, nomeadamente com a sua entrega, armazenamento e processamento. Conseqüentemente, a principal tarefa dos engenheiros é fornecer uma infraestrutura confiável para dados. Se observarmos a hierarquia de necessidades da IA, a engenharia de dados ocupa os primeiros 2–3 estágios: coleta, movimentação e armazenamento, preparação de dados.

Quem são os engenheiros de dados e como você se torna um?

O que um engenheiro de dados faz?

Com o advento do big data, o âmbito da responsabilidade mudou drasticamente. Se anteriormente esses especialistas escreviam grandes consultas SQL e destilavam dados usando ferramentas como Informatica ETL, Pentaho ETL, Talend, agora os requisitos para engenheiros de dados aumentaram.

A maioria das empresas com vagas abertas para o cargo de engenheiro de dados possuem os seguintes requisitos:

  • Excelente conhecimento de SQL e Python.
  • Experiência com plataformas em nuvem, principalmente Amazon Web Services.
  • Conhecimento de Java/Scala preferencial.
  • Bom conhecimento de bancos de dados SQL e NoSQL (modelagem de dados, data warehousing).

Tenha em mente que estes são apenas o essencial. A partir desta lista, pode-se presumir que os engenheiros de dados são especialistas na área de desenvolvimento de software e back-end.
Por exemplo, se uma empresa começa a gerar uma grande quantidade de dados de diversas fontes, sua tarefa como engenheiro de dados é organizar a coleta de informações, seu processamento e armazenamento.

A lista de ferramentas utilizadas neste caso pode ser diferente, tudo depende do volume desses dados, da velocidade de seu recebimento e da heterogeneidade. A maioria das empresas não lida com big data, portanto, como repositório centralizado, o chamado data warehouse, você pode usar um banco de dados SQL (PostgreSQL, MySQL, etc.) com um pequeno conjunto de scripts que alimentam os dados. o armazém.

Gigantes de TI como Google, Amazon, Facebook ou Dropbox têm requisitos mais elevados: conhecimento de Python, Java ou Scala.

  • Experiência com big data: Hadoop, Spark, Kafka.
  • Conhecimento de algoritmos e estruturas de dados.
  • Compreender os fundamentos dos sistemas distribuídos.
  • Experiência com ferramentas de visualização de dados como Tableau ou ElasticSearch será um diferencial.

Ou seja, há uma clara mudança para big data, nomeadamente no seu processamento sob cargas elevadas. Essas empresas aumentaram os requisitos de tolerância a falhas do sistema.

Engenheiros de dados vs. cientistas de dados

Quem são os engenheiros de dados e como você se torna um?
Ok, foi uma comparação simples e engraçada (nada pessoal), mas na realidade é muito mais complicada.

Primeiro, você deve saber que há muita ambigüidade na delimitação das funções e habilidades de um cientista de dados e de um engenheiro de dados. Ou seja, você pode facilmente ficar confuso sobre quais habilidades são necessárias para ser um engenheiro de dados de sucesso. Claro, existem certas habilidades que se sobrepõem a ambas as funções. Mas há também uma série de competências diametralmente opostas.

A ciência de dados é um negócio sério, mas estamos caminhando em direção a um mundo de ciência de dados funcional, onde os profissionais são capazes de fazer suas próprias análises. Para habilitar pipelines de dados e estruturas de dados integradas, você precisa de engenheiros de dados, não de cientistas de dados.

Um engenheiro de dados é mais requisitado do que um cientista de dados?

- Sim, porque antes de fazer bolo de cenoura, primeiro você precisa coletar, descascar e estocar as cenouras!

Um engenheiro de dados entende de programação melhor do que qualquer cientista de dados, mas quando se trata de estatística, o oposto é verdadeiro.

Mas aqui está a vantagem de um engenheiro de dados:

Sem ele, o valor do modelo de protótipo, na maioria das vezes consistindo em um pedaço de código de péssima qualidade em um arquivo Python, obtido de um cientista de dados e de alguma forma produzindo um resultado, tende a zero.

Sem um engenheiro de dados, esse código nunca se tornará um projeto e nenhum problema de negócio será resolvido de forma eficaz. O engenheiro de dados está tentando transformar tudo isso em um produto.

Informações básicas que um engenheiro de dados deve saber

Quem são os engenheiros de dados e como você se torna um?

Portanto, se este trabalho traz luz a você e você está entusiasmado - você pode aprendê-lo, pode dominar todas as habilidades necessárias e se tornar uma verdadeira estrela do rock no campo da engenharia de dados. E, sim, você pode conseguir isso mesmo sem habilidades de programação ou outros conhecimentos técnicos. É difícil, mas possível!

Quais são os primeiros passos?

Você deve ter uma ideia geral do que é o quê.

Em primeiro lugar, Engenharia de Dados refere-se à ciência da computação. Mais especificamente, você deve compreender algoritmos e estruturas de dados eficientes. Em segundo lugar, uma vez que os engenheiros de dados trabalham com dados, é necessário compreender os princípios das bases de dados e as estruturas que lhes estão subjacentes.

Por exemplo, bancos de dados SQL convencionais de árvore B são baseados na estrutura de dados B-Tree, bem como, em repositórios distribuídos modernos, LSM-Tree e outras modificações de tabelas hash.

*Essas etapas são baseadas em um ótimo artigo Adila Khashtamova. Então, se você sabe russo, apoie este autor e leia sua postagem.

1. Algoritmos e estruturas de dados

Usar a estrutura de dados correta pode melhorar significativamente o desempenho de um algoritmo. Idealmente, todos deveríamos aprender sobre estruturas de dados e algoritmos em nossas escolas, mas isso raramente é abordado. De qualquer forma, nunca é tarde para se conhecer.
Então, aqui estão meus cursos gratuitos favoritos para aprender estruturas de dados e algoritmos:

Além disso, não se esqueça do trabalho clássico de Thomas Corman sobre algoritmos - Introdução aos Algoritmos. Esta é a referência perfeita quando você precisa refrescar a memória.

Você também pode mergulhar no mundo dos bancos de dados com vídeos incríveis da Carnegie Mellon University no Youtube:

2. Aprenda SQL

Toda a nossa vida são dados. E para extrair esses dados do banco de dados, você precisa “falar” a mesma linguagem com ele.

SQL (Structured Query Language) é a linguagem de comunicação no domínio de dados. Independentemente do que digam, o SQL viveu, está vivo e viverá por muito tempo.

Se você está desenvolvendo há muito tempo, provavelmente já percebeu que rumores sobre a morte iminente do SQL surgem periodicamente. A linguagem foi desenvolvida no início dos anos 70 e ainda é muito popular entre analistas, desenvolvedores e simplesmente entusiastas.
Sem conhecimento de SQL não há nada a fazer em engenharia de dados, pois inevitavelmente você terá que criar consultas para recuperar dados. Todos os grandes armazéns de dados modernos suportam SQL:

  • Amazon RedShift
  • HP vertical
  • Oracle
  • SQL Server

... e muitos outros.

Para analisar uma grande camada de dados armazenados em sistemas distribuídos como HDFS, foram inventados motores SQL: Apache Hive, Impala, etc.

Como aprender SQL? Basta fazer isso na prática.

Para isso, recomendo conferir um excelente tutorial, que, aliás, é gratuito, de Análise de modo.

  1. SQL intermediário
  2. Unindo dados em SQL

O que torna esses cursos especiais é que eles possuem um ambiente interativo onde você pode escrever e executar consultas SQL diretamente no seu navegador. Recurso SQL moderno não será supérfluo. E você pode aplicar esse conhecimento a Tarefas Leetcode na seção Bancos de dados.

3. Programação em Python e Java/Scala

Por que você deve aprender a linguagem de programação Python, já escrevi no artigo Python vs R. Escolhendo a melhor ferramenta para IA, ML e ciência de dados. Quando se trata de Java e Scala, a maioria das ferramentas para armazenar e processar grandes quantidades de dados são escritas nessas linguagens. Por exemplo:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Colmeia Apache (Java)

Para entender como essas ferramentas funcionam, você precisa conhecer os idiomas em que elas são escritas. A abordagem funcional do Scala permite resolver com eficácia problemas de processamento paralelo de dados. Infelizmente, Python não pode se orgulhar de velocidade e processamento paralelo. Em geral, o conhecimento de diversas linguagens e paradigmas de programação é bom para a amplitude de abordagens para resolução de problemas.

Para mergulhar na linguagem Scala, você pode ler Programação em Scala do autor da linguagem. O Twitter também publicou um bom guia introdutório - Escola Scala.

Quanto ao Python, acredito Python Fluente melhor livro de nível médio.

4. Ferramentas para trabalhar com big data

Aqui está uma lista das ferramentas mais populares no mundo do big data:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Você pode encontrar mais informações sobre a construção de grandes blocos de dados neste incrível ambiente interativo. As ferramentas mais populares são Spark e Kafka. Definitivamente vale a pena estudá-los, é aconselhável entender como funcionam por dentro. Jay Kreps (coautor de Kafka) publicou uma obra monumental em 2013 The Log: O que todo desenvolvedor de software deve saber sobre abstração de agregação de dados em tempo realA propósito, as principais ideias deste Talmud foram usadas para criar o Apache Kafka.

5. Plataformas em nuvem

Quem são os engenheiros de dados e como você se torna um?

O conhecimento de pelo menos uma plataforma em nuvem está na lista de requisitos básicos para candidatos ao cargo de engenheiro de dados. Os empregadores preferem Amazon Web Services, com a plataforma em nuvem do Google em segundo lugar e o Microsoft Azure completando os três primeiros.

Você deve ter bons conhecimentos de Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistemas distribuídos

Trabalhar com big data implica a presença de clusters de computadores que operam de forma independente, cuja comunicação é realizada em rede. Quanto maior o cluster, maior a probabilidade de falha de seus nós membros. Para se tornar um grande cientista de dados, você precisa compreender os problemas e as soluções existentes para sistemas distribuídos. Esta área é antiga e complexa.

Andrew Tanenbaum é considerado um pioneiro nesta área. Para quem não tem medo da teoria, recomendo o livro dele "Sistemas distribuídos", pode parecer assustador para iniciantes, mas realmente ajudará você a aprimorar suas habilidades.

Eu considero Projetando aplicativos com uso intensivo de dados por Martin Kleppmann melhor livro introdutório. A propósito, Martin tem um maravilhoso Blog. Seu trabalho ajudará a sistematizar o conhecimento sobre a construção de uma infraestrutura moderna para armazenamento e processamento de big data.
Para quem gosta de assistir vídeos, existe um curso no Youtube Sistemas de computadores distribuídos.

7. Pipelines de dados

Quem são os engenheiros de dados e como você se torna um?

Pipelines de dados são algo sem o qual você não pode viver como engenheiro de dados.

Na maioria das vezes, um engenheiro de dados constrói o chamado pipeline de dados, ou seja, ele cria um processo para entregar dados de um lugar para outro. Podem ser scripts personalizados que vão para a API de um serviço externo ou fazem uma consulta SQL, aumentam os dados e os colocam em um armazenamento centralizado (data warehouse) ou em um armazenamento de dados não estruturado (data lakes).

Para resumir: a lista de verificação básica para um engenheiro de dados

Quem são os engenheiros de dados e como você se torna um?

Para resumir, é necessário um bom entendimento do seguinte:

  • Sistemas de informação;
  • Desenvolvimento de software (Ágil, DevOps, Técnicas de Design, SOA);
  • Sistemas distribuídos e programação paralela;
  • Fundamentos de Banco de Dados - Planejamento, Design, Operação e Solução de Problemas;
  • Desenho de experimentos - Testes A/B para comprovar conceitos, determinar confiabilidade, desempenho do sistema e desenvolver caminhos confiáveis ​​para entregar boas soluções rapidamente.

Esses são apenas alguns dos requisitos para se tornar um engenheiro de dados, portanto, aprenda e compreenda sistemas de dados, sistemas de informação, entrega/implantação/integração contínua, linguagens de programação e outros tópicos de ciência da computação (nem todas as áreas).

E, finalmente, a última mas muito importante coisa que quero dizer.

O caminho para se tornar Engenheiro de Dados não é tão simples quanto pode parecer. Ele não perdoa, ele frustra, e você deve estar preparado para isso. Alguns momentos desta jornada podem levá-lo a desistir. Mas este é um trabalho real e um processo de aprendizagem.

Apenas não adoce desde o início. O objetivo de viajar é aprender o máximo possível e estar pronto para novos desafios.
Aqui está uma ótima imagem que encontrei que ilustra bem esse ponto:

Quem são os engenheiros de dados e como você se torna um?

E sim, lembre-se de evitar o esgotamento e o descanso. Isto também é muito importante. Boa sorte!

O que vocês acham do artigo, amigos? Nós convidamos você a webinar grátis, que terá lugar hoje às 20.00hXNUMX. Durante o webinar, discutiremos como construir um sistema de processamento de dados eficaz e escalável para uma pequena empresa ou startup com custo mínimo. Na prática, conheceremos as ferramentas de processamento de dados do Google Cloud. Vê você!

Fonte: habr.com

Adicionar um comentário