O Habitat de um Engenheiro de Dados.

Dos processos as ferramentas

Agenda

  • Apresentação
  • Introdução
    • A era do Data Driven, Big Data
    • O que vem antes do Engenheiro de Dados? Engenheiro de Software
    • O Marco - Aplicaçãoes Analiticas
  • Engenheiro de Dados
  • Engenharia de Dados, o Pipeline e Tools
    • Engenharia, Preparação e Análise
  • Encerramento
    • O toolbox do Engenheiro de Dados
    • #7 Princípios para o Engenheiro de Dados

O Eng. de Dados

e a era do Data-driven

O que vem antes do Engenheiro de Dados?

 

O Engenheiro de Software, o legado!

Engenheiro de Software, o seu juramento!

  • Questões de Engenharia de Projeto de Software
    • idéia -> requisitos -> análise -> desenvolvimento / teste -> produção
    • O Manifesto Ágil
    • Lean Startup

Engenheiro de Software, o seu juramento!

  • Gestões do ciclo de vida do Software (ALM - Application lifecycle management )
    • Processos / Atividades (tickets) / Documentação / etc...
    • SCV (sistema de controle de versões)
    • CD/CI
    • GMUD

Engenheiro de Software, o seu juramento!

  • Questões de Arquitetura de Software
    • Segurança / criptografia dos dados
    • Monolito x micro-service
    • Single tenant x Multi tenancy
    • Aplicações distribuídas
    • etc..

Engenheiro de Software, o seu juramento!

  • Questões de Perfil
    • Programador / Desenvolvedor
    • Dev fullstack
    • DevOps
    • Analista / Arquiteto

O Marco

Aplicaçãoes Analiticas "Nasce" a Engenharia de Dados

No inicio dos anos 2000 surge tecnologias para análise de dados como Decision Support System (DSS), Planilhas Eletrônicas, Data Marts, Data Mining, Ferramentas On-Line Analytical Processing (OLAP)

Engenheiro de Dados, o seu juramento!

  • Engenheiro de Dados é o profissional dedicado ao desenvolvimento, construção, teste e manutenção de arquiteturas para toda cadeia de processamento de dados.

Engenheiro de Dados, o seu juramento!

  • Seu mind set deve ser: criar e implementar métodos e técnicas para melhorar a eficiência, a qualidade, a confiabilidade dos dados e garantir o fluxo de dados de maneira ininterrupta.

Engenheiro de Dados, o seu juramento!

  • Um engenheiro de dados é aquele que compreende as várias tecnologias, alto conhecimento em frameworks e como combiná-las para criar soluções que permitem que os processos de negócios fluam com a pipelines de dados.

Engenheiro de Dados, o seu juramento!

  • Basic skills:
    • Programação (de preferência poliglota)
    • SQL e NoSQL
    • Ecossistema Hadoop
    • Linux cloud computing (mínimo aws)
  • Perfil
    • Dev fullstack + DevOps + arquiteto + analista de dados

Engenharia de Dados, o Pipeline e Tools!

Engenharia de Dados, o Pipeline e Tools!

  1. Origem dos Dados
  2. Digestão dos dados, Integração 
  3. Orquestração dos Dados

Pipeline

Pipeline

Pipeline

#Engenharia de Dados

1° - Origem dos dados

  • Estruturados: SQL - Banco de dados relacional, CSV , planilhas, etc...
  • Semi-estruturados
    • XML, JSON, YML, etc...
    • NoSQL - Banco de dados orientado a documentos, orientado a grafos, tabular, etc...
  • Não-estruturados
    • arquivos texto (logs), steaming, redes sociais, IOT.

Pipeline

#Engenharia de Dados

2° - Digestão dos dados / Integração

 

Pipeline

#Engenharia de Dados

2° - Digestão dos dados / Integração

ETL - Extract Transform Load

  • Batch (tools open source e enterprise)
    • Pentaho-PDI, Talent, Tableau-Prep, Qlik Sense, Alooma, SAS, SSIS, Oracle Data Integrator, etc...
  • Cloud native (ELT - is designed with cloud computing in mind.)
    • Alooma, Fivetran, Matillion, Snaplogic, Stitch Data
  • Real-time
    • Alooma, Confluent, StreamSets, Striim

Pipeline

#Engenharia de Dados

2° - Digestão dos dados / Integração

ETL                                            ELT (Cloud native)

X

Pipeline

#Engenharia de Dados

Pipeline

#Engenharia de Dados

3° - Orquestração dos dados

 

Tem como objetivo mapear e gerenciar origens e destinos dos dados.

Destaque para o Apache Kafka

 

Pipeline - #Engenharia de Dados

3° - Orquestração dos dados

Pipeline - #Engenharia de Dados

3° - Orquestração dos dados

Pipeline

#Preparação de Dados

  1. Processamento
  2. Enriquecimento

Pipeline

#Preparação de Dados

1° - Processamento

 

Os principais objetivos do engenheiro de dados nessa etapa são:

 

  • Garantir a disponibilidade dos dados
  • Garantir os processos de data munging e data wrangling
  • Garantir o processamento dos algoritmos de ML desenvolvidos pelo cientista de dados

Pipeline

#Preparação de Dados

1° - Processamento

 

ATENÇÃO:

Qual é o tamanho do seus dados?

Processamento

Simples x Distribuído (paralelo)

Pipeline

#Preparação de Dados

1° - Processamento

Apache Hadoop (clusterização) - baseado no Google File System (GFS)

  • Não é um banco de dados, é um frameworks para armazenamento e processamento de dados
  • HDFS - armazenamento distribuído os dados (gerencia os sistemas de arquivo no cluster)
  • MapReduce - processamento distribuído dos dados (em batch)
    • mapea e reduz os dados a estrutura key:value

Pipeline

#Preparação de Dados

1° - Processamento 

Pipeline

#Preparação de Dados

1° - Processamento

Apache Spark

  • Processamento distribuído dos dados em streaming
  • É muito mais rápido que MapReduce
  • Melhor para menos dados

 

"É o Hadoop para dados streaming!"

Pipeline

#Preparação de Dados

2° - Enriquecimento

 

Acrescentar e calcular dados externos aos dados brutos
Ex. Clima / Tempo, IBGE, APIs publicas, etc ...
 

Caso: "ocorrências no período"

Pipeline

#Análise de Dados

 

 

Disponibilidade dos dados por meio de informação enriquecida com agregação de contexto.

 

Outputs...

Outputs...

  • Big Data
    • Data Lake (pool de dados)
      • DW / Data Marts
      • NoSQL
        • Documentos / Grafos / Tabular / etc..
    • APIs

Pipeline

#Análise de Dados

+ Outputs

  • Cubos OLAP
  • Dashboards
  • Relatórios
  • Storytelling
  • Push Notification em apps analíticos*
  • Previsões
  • Sistema de Recomendação
  • Metadados
  • Ontologias / Taxiomas

Pipeline

#Análise de Dados

Engenheiro de Dados Toolbox

  • Linguagens hype:
    • Python, Java, Scala e Shell script
  • Tool's full stack :
    • AWS, Google Cloud, Azure
  • Stack híbridas
    • Ex. AWS + Pentaho PDI + Apache Hadoop + Power BI
  • Diferencial: Docker

Engenheiro de Dados #7 Princípios

Cap 2 - Perspectives on Data Science for Software Engineering
[tradução adaptada]       

#1 - Humanos antes de algoritmos
#2 - Tenha um plano para escalar seu pipelines
#3 - Busque obter feedback mais cedo
#4 - Mantenha a mente aberta​

#5 - Seja inteligente com os algoritmos de ML

#6 - Viva com os dados que você tem em mãos

#7 - Acompanhe o desenvolvimento da suas habilidades e use as "big tools" (ferramentas conceituadas)​

Engenheiro de Dados #7 Princípios

Referências

Referências:
http://www.cienciaedados.com/cientista-de-dados-x-engenheiro-de-dados/
http://www.cienciaedados.com/carreiras-em-data-science/
http://datascienceacademy.com.br/blog/a-diferenca-entre-cientistas-de-dados-engenheiros-de-dados-estatisticos-e-engenheiros-de-software/
http://datascienceacademy.com.br/blog/fast-data-a-evolucao-do-big-data/
https://www.oreilly.com/ideas/data-engineering-a-quick-and-simple-definition
https://datafloq.com/read/difference-between-data-scientists-data-engineeers/4246#.Wkxyuundymg.twitter
https://www.economist.com/leaders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but-data
https://www.edvancer.in/engineering-fresher-get-into-analyticspart-2/
https://www.learnbigdatatools.com/
https://www.alooma.com/blog/what-is-a-data-pipeline
https://www.alooma.com/blog/etl-process-traditional-vs-modern
https://www.softwaretestinghelp.com/best-etl-tools/
https://kafka.apache.org/intro.html
http://storm.apache.org/
https://www.confluent.io/blog/building-real-time-streaming-etl-pipeline-20-minutes/
https://consultoremti.wordpress.com/2014/11/07/o-que-e-bi-e-qual-a-sua-historia/

 

O Habitat de um Engenheiro de Dados

By Henrique Vignando

O Habitat de um Engenheiro de Dados

  • 47