elytics - construindo uma plataforma de big data

57
Elytics Construindo uma plataforma de Big Data Karina Moraes linkedin: br.linkedin.com/in/karinamoraes Tiago Vinícius linkedin: br.linkedin.com/in/viniremigio

Upload: elo7

Post on 15-Apr-2017

1.267 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Elytics - Construindo uma plataforma de big data

ElyticsConstruindo uma plataforma de Big Data

Karina Moraeslinkedin: br.linkedin.com/in/karinamoraes

Tiago Viníciuslinkedin: br.linkedin.com/in/viniremigio

Page 2: Elytics - Construindo uma plataforma de big data

Envie sua dúvida no Twitter!#elo7tech

Page 3: Elytics - Construindo uma plataforma de big data

Agenda

● Motivação● Arquitetura● Considerações finais

Page 4: Elytics - Construindo uma plataforma de big data

Motivação

Page 5: Elytics - Construindo uma plataforma de big data

Marketplace

Page 6: Elytics - Construindo uma plataforma de big data

Fluxo de desenvolvimento

Page 7: Elytics - Construindo uma plataforma de big data

Monitoração de sistemas

Page 8: Elytics - Construindo uma plataforma de big data

Negócio

● Quantas buscas, carrinhos e pedidos temos por dias?

● Quais as palavras mais buscadas pelos usuários? Retornam resultados?

● Qual a porcentagem de usuários que adicionam produtos ao carrinho, mas não finalizam a compra? Por que isso acontece?

Page 9: Elytics - Construindo uma plataforma de big data

Relatórios, relatórios, relatórios...

Page 10: Elytics - Construindo uma plataforma de big data

Mudanças!

Page 11: Elytics - Construindo uma plataforma de big data

Mudanças!

Page 12: Elytics - Construindo uma plataforma de big data

Negócio

● Qual a porcentagem de usuários que iniciam uma conversa, mas não finalizam a compra? Por que isso acontece?

● Os vendedores estão respondendo em tempo adequado?

● Como monitoramos mais facilmente e rapidamente uma fraude?

● Como criar visualizações que auxiliem na tomada de decisão em relação à evolução dos produtos

Page 13: Elytics - Construindo uma plataforma de big data

Reports, reports, reports...

Ahh não!

Page 14: Elytics - Construindo uma plataforma de big data

#Comofaz

Page 15: Elytics - Construindo uma plataforma de big data

… sounds like Big Data...

Volume

Velocidade

Veracidade Variedade

Valor

… Houston, we have a Big Problem!

Page 16: Elytics - Construindo uma plataforma de big data

Elytics: Plataforma de Big Data Analytics

● Objetivos○ Criar e visualizar métricas○ Validar novas funcionalidades○ Auxiliar em troubleshooting○ Análises exploratórias utilizando os dados○ Aplicação de técnicas que auxiliem na

otimização de objetivos de negócio

Page 17: Elytics - Construindo uma plataforma de big data

Elytics: Visão geral

Ingestão de dados Processamento Armazenamento

Visualização Machine Learning

Big Data

Big Data Analytics / Data Science

Análise e ModelagemInferência

Page 18: Elytics - Construindo uma plataforma de big data

Arquitetura

Page 19: Elytics - Construindo uma plataforma de big data

Secor

Ingestão de Dados Processamento e Armazenamento

Visualização

Machine Learning

Amazon S3

Amazon EMR

Page 20: Elytics - Construindo uma plataforma de big data

Ingestão de Dados

Page 21: Elytics - Construindo uma plataforma de big data

Ingestão de dados

SECOR

Amazon S3

Page 22: Elytics - Construindo uma plataforma de big data

Apache Kafka

● Publish-subscribe.● Vários consumidores por partição.● Garantia de ordem de entrega.● ~ 5 milhões de mensagens/dia.

Page 23: Elytics - Construindo uma plataforma de big data

Apache Kafka

{"type":"String",

"date":"2016-02-23T22:03:13.034Z[Etc/UTC]",

"payload":{"key":"value"}}

Page 24: Elytics - Construindo uma plataforma de big data

Processamento e Armazenamento

Page 25: Elytics - Construindo uma plataforma de big data

Apache Spark

● Processamento iterativo por Streaming de dados;● RDD - Processamento distribuído em memória;● Suporta Java, Scala, Python e R;

Page 26: Elytics - Construindo uma plataforma de big data

Apache Spark: Visão geral

Page 27: Elytics - Construindo uma plataforma de big data

Cluster Mode

Page 28: Elytics - Construindo uma plataforma de big data

Amazon Elastic MapReduce

Transient Cluster

Amazon S3

Page 29: Elytics - Construindo uma plataforma de big data

Amazon Elastic MapReduce

Persistent Cluster

Streamings

Page 30: Elytics - Construindo uma plataforma de big data

Controle de Offset para Streamings

Driver

Executor

Receiver

`

`

Simple Level API

Page 31: Elytics - Construindo uma plataforma de big data

Monitoração de execução

JMX

Page 32: Elytics - Construindo uma plataforma de big data

E mais...

Source file configuration

Dependency Injection

Datasource configuration

Amazon S3

Page 33: Elytics - Construindo uma plataforma de big data

This is...

Page 34: Elytics - Construindo uma plataforma de big data

Sparta

● Dependency Injection;● Datasource configuration;● Monitoring;● Kafka consumer manager;● Provider configuration;● Distcp;

Page 35: Elytics - Construindo uma plataforma de big data

Sparta: Streaming Configuration

# Kafka Simple API Configurationkafka.brokers=kafka.topics=

# Streaming Configurationstream.max.rate.per.second=stream.graceful.shutdown=stream.batch.interval.ms=stream.writeAheadLog.enable=stream.checkpoint.directory=stream.back.pressure.enabled=

# Kafka Offset Persistentkafka.offset.persistent=kafka.cassandra.hosts=kafka.cassandra.keyspace=kafka.cassandra.auto.migration=

Page 36: Elytics - Construindo uma plataforma de big data

Sparta: Batch Configuration

# File Source Configurationfile.s3.access.key=file.s3.secret.key=file.source=

# Batch History Configurationbatch.cassandra.hosts=batch.cassandra.port=batch.cassandra.user=batch.cassandra.password=batch.cassandra.keyspace=batch.cassandra.datacenter=batch.history.ttl.days=

# Data Source Configurationdatabase.url=database.user=database.pass=database.driver.class=

Page 37: Elytics - Construindo uma plataforma de big data

Sparta: Monitoring Configuration

# Monitoring Configurationreporter.statsd.host=reporter.statsd.port=reporter.statsd.prefix=reporter.enabled=reporter.class=

Page 38: Elytics - Construindo uma plataforma de big data

Sparta Open Source is Comming Soon!

Page 39: Elytics - Construindo uma plataforma de big data

Visualização

Page 40: Elytics - Construindo uma plataforma de big data

Abordagens

Utilizar plataformas de BI

Façamos nós mesmos

NVD3.js, Google Charts...

Page 41: Elytics - Construindo uma plataforma de big data
Page 42: Elytics - Construindo uma plataforma de big data

Apache Zeppelin!!!

Page 43: Elytics - Construindo uma plataforma de big data

Camada de visualizaçãoDados

processados

Análise exploratória/Insights

Dashboards

Amazon S3

Page 44: Elytics - Construindo uma plataforma de big data

Machine Learning

Page 45: Elytics - Construindo uma plataforma de big data

O que é?

● Aplicações○ Recomendação de produtos○ Prevenção a fraudes○ Segmentação de clientes○ Ranking em resultados de busca

Conjunto de dados ? Resposta

Objetivo Atendido!Sim!

Não :(

Satisfatória?

Page 46: Elytics - Construindo uma plataforma de big data

#Comofaz2Conjunto de

dados

X1...

Xn

Respostas

y1...

yn

E aí, qual é a função?

y=f(X)

Encontrar aproximação da função (modelo) Fique tranquilo e favorável, o seu modelo vai errar!

Erro controlado -> otimização do objetivo

Page 47: Elytics - Construindo uma plataforma de big data

Seller Score

É possível criar um score que permita identificar quais são os melhores vendedores do Elo7?

Variáveis de cada observação (X): métricas de desempenho do vendedor

Variável resposta (y ∈ [0,1]): probabilidade do vendedor estar entre os melhores

y = f(X)

Como encontrar a função aproximada (modelo) f ?

Page 48: Elytics - Construindo uma plataforma de big data

Regressão logística

Conjunto de vendedores com score calculado

[(X1,y1),...,(Xn,yn))]

Algoritmo de regressão logística

Modelo gerado!

Avaliar qualidade do

modelo

Modelo preditivo: algoritmo estima parâmetros B0 e B1 para a função

logística

(Função logística)

Vendedor não avaliado (Xn+1,?)

y =

Vendedor avaliado! (Xn+1,yn+1)

Page 49: Elytics - Construindo uma plataforma de big data

Preciso implementar isso?!?!?

Não... (ufa!)

Amazon Machine Learning

Page 50: Elytics - Construindo uma plataforma de big data

Integração com Elytics

Amazon S3

Amazon EMR

Job batch

Seller Score

Page 51: Elytics - Construindo uma plataforma de big data

Aplicações do Seller Score

● Aumentar ranking dos melhores vendedores na busca;

● Permitir contratação de posições de destaque;● Priorizar atendimento;● Prevenção de fraudes.

Page 52: Elytics - Construindo uma plataforma de big data

Recapitulando...

Page 53: Elytics - Construindo uma plataforma de big data

Secor

Ingestão de Dados Processamento e Armazenamento

Visualização

Machine Learning

Amazon S3

Amazon EMR

Page 54: Elytics - Construindo uma plataforma de big data

Para finalizar...

Page 55: Elytics - Construindo uma plataforma de big data

Lições aprendidas

● Source of truth: S3 e/ou HDFS;● Evitar serviços não-gerenciados;● Optar por streaming de dados traz grandes

responsabilidades; ● Visualizar métricas é de extrema importância.

Page 56: Elytics - Construindo uma plataforma de big data

Próximos passos

● Evoluir a plataforma;● Migrar o máximo de serviços para AWS;● Disponibilizar mais dashboards de visualização;● Ampliar projetos de Big Data Analytics.

Page 57: Elytics - Construindo uma plataforma de big data

Obrigado!

Karina Moraeslinkedin: br.linkedin.com/in/karinamoraes

Tiago Viníciuslinkedin: br.linkedin.com/in/viniremigio