Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Big Data no mundo real

No description
by

Evandro Silvestre

on 23 July 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Big Data no mundo real

Transformando dados em conhecimento
Big Data no mundo real
O que é Geomarketing?
Inteligência que faz diferença
Marketing Geográfico
Evandro Ricardo Silvestre
Quero expandir meu negócio e preciso encontrar pontos e áreas de interesse. Que lugares são esses?
Vou criar uma campanha para divulgar minha marca, onde devo concentrar essa divulgação?
Quais lojas da minha rede que estão a menos de 1km de distância de um concorrente?
Quais são as Municípios do estado de São Paulo com população entre 20 e 24 anos maior que 10mil habitantes onde o meu concorrente tem loja e eu não ?
Tínhamos uma solução!?
Porém cada consulta demorava 1min para executar (aceitável!?)
E consumia totalmente o processamento do banco (inaceitável!!)
Como responder a essas perguntas com precisão e rapidez?
Como tratar uma quantidade grande e crescente de dados heterogêneos?
Como dar respostas sem saber a pergunta?
O desafio
Big Data
Definição: Conjuntos de dados cujo tamanho inviabiliza a utilização de ferramentas de BD padrão.
Foco em armazenar grande quantidade de dados e alto desempenho para obtenção dos dados
Baseado nos 5V’s: velocidade, volume, variedade, veracidade e valor
Requer processamento paralelo dos dados para tratar os dados em um tempo aceitável.

NoSQL
Banco de dados não relacional
Útil para manipular grandes volumes de dados.
Permite uma estrutura de dados dinâmica.
Não considera a relação entre elementos.
Alta escalabilidade e tolerância a falhas
Não faz validação de dados
Focado em recuperação de dados
Particionamento de dados
Conceitos
WebLogic 11g
Aplicação
Servidor de relatórios
Servidor de Mapas
1.500 usuários / cerca de 300 simultâneos
Oracle Enterprise 11.2
67Gb de dados
30 milhões de registros
A infraestrutura inicial
Usamos MVC
Model View Controller
Replicar o banco!
Custo de licenciamento:
R$ 700mil
+Hardware
+Gerenciamento complicado
A solução comum
Servidor de busca baseado no Lucene
Muito rápido.
Altamente escalável.
Já possui mecanismo de replicação.
Permite esquemas dinâmicos.
Muito flexível e customizável para indexação e busca.
Poderosa linguagem para busca.
Sumarização de consultas (Faceted queries).
Apache Solr
Solr – Alguns exemplos
http://localhost:8080/solr/<node>/select
q=*:*
rows=10
facet=true
facet.field=tipo

Tratamento do dado para busca e indexação
charFilter – permite tratar o dado original (troca de caracteres e padrões).
tokenizer – “quebra” o dado original em tokens
filter – trata os valores dos tokens
Leitura

Escalabilidade
Denormalização
Gravação

Coerência dos dados
Normalização
Criado por Greg Young e popularizado por Martin Fowler
Command-query responsibility segregation
Toda aplicação é dividido em duas ações:
CQRS
http://martinfowler.com/bliki/CQRS.html

Como aplicamos CQRS
Solr
Oracle
DSL: domain-specific language
Linguagem especifica para um determinado modelo
Ex: HTML
camada:Municípios estado:SP popFaixaEtaria:(25 a 34;20 a 24) > 25% que tenha:Mcdonald´s; que nao tenha:Subway
mcdonalds em campinas que estejam:{a menos de(300m) [polo] bobs}
Query Model é um serviço totalmente Stateless.
Sem estado = Facilidade para escalar
Está em um servidor separado do Command Model
Basicamente interpreta a DSL, cria e executa a query, pega os resultados e devolve para o client
Explicando....
Interface
DSL Externa
Alterações
Query Model
Command
Model
Notifica
Persiste
Consulta
Optamos por AP.
Trabalhamos com o principio de consitência eventual. O sistema aceita escrita sempre, mas faz a consitência com o banco algum momento depois.
Consitência dos dados
Alta disponibilidade:
Particionamento dos dados
Segundo o teorema, somente duas das três prioridades podem ser garantidas.
Teorema CAP
Metadados
Metadados são informações sobre dados.
Essa informações são inteligíveis para o computador
Ex: informações sobre um arquivo ou uma foto
O OnMaps é desenvolvido para ler os metadados e indicar qual será o comportamento naquele momento.
Exemplos de comportamentos:
Quais campos estão disponíveis na consulta
Estilo do ponto que aparecerá no mapa
Quem pode visualizar os dados
Além disso, os metadados definem como uma tabela será desnormalizadas.
Ou seja, os dados ficam normalizados no banco,
E os metadados dizem como desnormalizar esses dados para o servidor de consulta
Obrigado
silvestree@gmail.com
Normalmente as pessoas só conhecem uma ferramenta
E os problemas são resolvidos
sempre do mesmo jeito

Solr
Oracle
Interface
DSL Externa
Alterações
Query Model
Command
Model
Notifica
Persiste
Consulta
Solr
Query Model
Consulta
Escalando
Load balance
O tempo de resposta está
bom, mas quero atenter um grande número de requisições
Solr
Oracle
Interface
DSL Externa
Alterações
Command
Model
Notifica
Persiste
Query Model
Consulta
Escalando
Muitos dados! O tempo de resposta não está aceitável. Fragmentação dos dados necessária.
Solr
Solr
Resultado da consulta consolidado com respostas de cada servidor
Cada shard possui aproximadamente 1/N da quantidade de elementos do indice
A questão é...
Como lidamos com dados tão diferentes?
Os clientes tem dados totalmente diferentes
Alguns exibem faturamento, outros metragem

Os dados são exibidos de forma diferente no mapa
As consultas são diferentes para cada cliente
Nunca sabemos que tipo de dados entrará no sistema na semana que vem!
Resolvemos tudo através de metadados
Por exemplo
O metadado
Conceitos Utilizados
CQRS
Tecnologias Utilizadas
Colocações finais
Cuidado com o hype
Saiba um pouco de tudo e tudo de uma coisa
Faça o que é certo fazer
Não tenha medo
Entenda sempre um nível abaixo
Conheça o conceito, a filosófia
Utilize Metódos Ágeis
Demonstração
Full transcript