Você está na página 1de 27

Como no fazer Data Science:

Muitos dados ou pouca arquitetura?


I Encontro Data Science Recife
HOW WE WORK

Marca In Loco Publishers


Faz campanhas programticas Utiliza a tecnologia para atingir a Colocam o SDK nos aplicativos e
em mobile melhor audincia para cada se conectam plataforma para
campanha acompanhar faturamento
In Loco Indoor Location Tech

+ +

Accelerometer Magnetic Field Wi-fi

Tecnologia de localizao indoor mais precisa do mercado

Sem utilizar beacons ou bluetooth.


5+ bilhes
impresses / ms

50+ milhes
usurios ativos

A maior Mobile Ad Network da


Amrica Latina
P L ATA F O R M A D E D A D O S

Utilizando nossa tecnologia e arquitetura


para servir
dados e inteligncia
para a construo de novos
servios e produtos
Construindo a

01 primeira
arquitetura de
Dados
tudo comeou assim
e depois foi gerando dados no
Data Lake no S3
como analisar?

document-based, log JSON


gerar log em BSON para facilitar insero no Mongo
e comprimir com gzip para minimizar uso do S3
queries no Mongo DB para gerar insights
vamos analisar
e escalou rapidamente
O comeo do fim

muitos registros .BSON.gz, demorando para processar


soluo: agregar para carregar respostas pr-computadas
usando Hadoop MapReduce
crontab para gerenciar quando rodar jobs
consultar em bancos pelas estatsticas agregadas
Arquitetura Big Data
02 Vamos fazer
Data Science
but it worked, until

Estatsticas bsicas do negcio de anncios no mais suficiente

Demandas ad hoc de anlises de dados

Surge a necessidade de Data Science na empresa


em um dia na In Loco:

~170 milhes de impresses por dia

~100GB de logs comprimidos

590 aplicaes Hadoop / Spark


Mobile
histograma de tempo de back to application por aplicativo
mdia de misclicks por publisher, aplicativo, tipo de criativo
anlise extensa de localizaes por OS

Location
em que bairro / cidade / estado / pas temos mais pontos de localizao
qual o comportamento da localizao indoor em determinado estabelecimento
erro / preciso mdia de localizao dado parmetros (WiFi, GPS, aplicativo, proximidade de estabelecimento)

Publisher
requests, impresses, fill rate, cliques, CTR, receita, eCPM (da base toda, por publisher, por app e por slot de anncio)

Ad Ops
tempo mdio de visita por estabelecimento
perfil sociodemogrfico impactado por campanha
quantos usurios que so X foram impactados por campanha C e foram ao estabelecimento E depois de tempo T e depois
Fazendo Data Science em larga escala

Cdigo MapReduce especfico anlise em um repositrio central

Compilar, subir o .jar

Quebrar, resolver, esperar, rodar de novo

Entregar
Muda esse parmetro e roda de novo por favor
Por que demorava?

Estrutura de logs no foi feita pensando em arquitetura de Warehouse

Compilar cdigo e armazenar em repositrio contraprodutivo


para demandas pontuais
O ciclo de feedback lento levava desperdcios desenvolvimento,
processamento, cu$to e no gerava produtos

Problema de muitos dados na verdade era de engenharia


03 Faxina na
casa
Construindo o Data Warehouse
Mudana de logs apropriadas para SparkSQL,
Hive e outras engines de SQL

Uso de Kafka para fazer ETL em real time com


o mnimo de processamento possvel

Interpretadores e engines SQL e Spark


para anlises no Data Warehouse

Dashboards para visualizao interativa


dos dados

Uso de ferramentas de pipeline para jobs


Spark mais complexos
Arquitetura Big Data
Benchmarking

Daily Active Users (DAU) on 5 x (16GB RAM, 4 vCPU)


Spark on .bson.gz: 50min22s
( + T(compilao) + T(desenvolvimento) + T(publicar .jar pro S3, executar step))

Presto on Parquet: 9s
SELECT COUNT(DISTINCT mad_id) WHERE DAY = 'YYYY/MM/DD'

~336x speedup
Desafios

Aumento de complexidade ao lidar com streaming

Overhead operacional do cluster Hadoop


como realizar deploy? como subir novamente se cair?
como sincronizar backups constantes? como monitorar uso do HDFS? como escalar automaticamente?

Gerenciamento de prioridades / execues paralelas


como garantir que duas pessoas realizando queries ao mesmo tempo obtm recursos de forma justa?
como forar que jobs em produo tenham prioridade de recursos sob anlises pontuais?
Como no fazer Data Science

Assumindo que apenas usar Spark resolve qualquer escala de dados

No identificando gargalos (e.g.: estrutura de logs) e procurando respostas fceis

No arrumando a arquitetura para possibilitar os cientistas a fazerem o seu trabalho

No conhecendo o modelo de execuo / algoritmos / ferramentas do que usado no dia-a-dia

Deixando apenas o "time de Dados" sabendo onde os dados esto e como usar

No deixando que TODO funcionrio da empresa seja um Data Scientist


Thank You!
99jobs.com/in-loco-media
guilherme.peixoto@inlocomedia.com

www.inlocomedia.com

Você também pode gostar