nosql for search - riak
TRANSCRIPT
NoSQL for Search
Thiago Avelino@avelino0
Quem esta fazendo?
Quem usa?
Mais um NoSQL?
2008, Akamai Technologies, Inc.
DefiniçãoeLevelDB
Bala de prata
solução para maquina de pesquisa
Porque Riak?•Escalável
•Altamente disponível em rede
•Key/Value
•Erlang
•Total controle de memoria
•Ferramenta de Indexação
•Versão comercial
Escrevendo com Chave e Value
Key/ValueKey/Value
Aplicação
Riak
Escrevendo com Chave e Value
objectoobjecto
Aplicação
Riak
Consulta com Chave e Value
keykey
Aplicação
Riak
objectoobjecto
Consulta via Map/Reduce
key+funçãokey+função
Aplicação
Riak
objecto(s)objecto(s)
MapMap
MapMap
ReduceReduce
Consulta por indexe secundario
where linguagem == "python"
where linguagem == "python"
Aplicação
Riak
WTF!!
WTF!!Aceito
pesquisa inteligente...
Aceito pesquisa
inteligente...
Texto complexo
“Linguagem python ou ruby”
“Linguagem python ou ruby”
Aplicação
Riak
Agora você precisa de
Riak..
Agora você precisa de
Riak..
Pesquisa de texto complexa e mecanismo de
indexação baseado em Riak
Ambiente
Aplicação
Aplicação
RiakRiak
Ambiente
Aplicação
Aplicação
RiakRiakInde
xInde
x
Aplicação
Aplicação
RiakRiak
maquina de buscapreciso de mais index
?????????
?????????
Aplicação
Aplicação
RiakRiakLucene
ouSolr
Luceneou
Solr
O que achei?
Aplicação
Aplicação
RiakRiakLucene
ouSolr
Luceneou
Solr
Java
Java
Aplicação
Aplicação
Lucene
Lucene
RiakRiak
Lucene deve resolver o meu problema
Aplicação
Aplicação
Lucene
LuceneLucene
LuceneLucene
Lucene
RiakRiak
Aumentando a capacidade de armazenamento
Aplicação
Aplicação
Lucene
LuceneLucene
LuceneLucene
Lucene
Lucene
LuceneLucene
LuceneLucene
Lucene
Lucene
LuceneLucene
LuceneLucene
Lucene
RiakRiak
Replicar para adicionar mais produtividade
Riak Search
Aplicação
Aplicação
Riak SearchRiak
Search
RiakRiak
Index
Index
RiakRiak
Index
Index
RiakRiak
Index
Index
•Lucene Syntax
•Reutiliza Java Lucene Analyzers
•Solr Endpoints
•Integração via Riak Post-Commit Hook (Index)
•Integração via Riak Map/Reduce (Query)
•Schema-less
Funcionalidades como lucene
(e muito mais)
•Adicionar maquina em tempo real (Processamento e mais espaço)
•Automatico Load Balance
•Replica (Duplicar dados ou performance)
•indexes e query em paralelo
•...
e muito mais
Como é feito os indexes?
Documento
Index
NoSQL é o futuro de BigData#1#1
nosql, 1é, 1o, 1
futuro, 1de, 1
bigdata, 1
Como é feito os indexes?
Documento
Index
NoSQL é o futuro de BigData#1#1
nosql, 1nosql, 2nosql, 3
é, 1é, 2
bigdata, 1bigdata, 3
...
É bom usar NoSQL em produção#2#2
Recomendado usar NoSQL com
BigData#3#3
Consulta em tempo real
nosql E bigdata
bigdatanosql
E
Consulta em tempo real
bigdatanosql
E
nosql, 1nosql, 2nosql, 3
bigdata, 1bigdata, 3
Consulta em tempo real
(Merge intercessão)
Resultado: 1, 3
123
13
Consulta em tempo real
(Merge união)
Resultado: 1, 2, 3
123
13
Comportamento complexo
Indexando documento
[{programadores: {nome: “Thiago Avelino”,linguagem: [“python”, “javascript”, “ruby”],nosql: [{nome: “riak”, tipo: [“key”, “valor”]},{nome: “mongodb”, tipo: [“documento”, “key”, “valor”]},]},}]
Indexando documento
#programadores
#nome
#linguagem
#nosql
Thiago Avelino
pythonjavascript
ruby
#nome
#tipo
riakmongod
b
keyvalue
documento
Dividindo index em node
Riak #1Riak #1 Riak #2Riak #2 Riak #3Riak #3
Index
Index
Index
Index
Index
Index
16 gb16 gb 6 gb6 gb 2 gb2 gb
Dividindo index em node
#programadores
#nome
#linguagem
#nosql
Thiago Avelino
pythonjavascript
ruby
#nome
#tipo
riakmongod
b
keyvalue
documento
Dividindo index em node
#programadores
#nome
#linguagem
#nosql
Thiago Avelino
pythonjavascript
ruby
#nome
#tipo
riakmongod
b
keyvalue
documento
Node #1Node #1 Node #2Node #2 Node #3Node #3
Dividindo index em node#programador
es
#nome
#linguagem
#nosql
Thiago Avelino
pythonjavascript
ruby
#nome
#tipo
riakmongod
b
keyvalue
documento
$node #1
$node #2
$node #3
Drivers
•Python
•Ruby
•php
•Javascript (NodeJS)
•.Net
Links•http://basho.com/
•http://basho.com/products/riak-control/
•http://basho.com/products/riak-enterprise/
•http://wiki.basho.com/
•https://github.com/basho
•http://shop.oreilly.com/product/0636920018957.do (Book)
Quer saber mais sobre Riak?
Pergunta-me como!
Quer saber mais sobre Riak?
Pergunta-me como!
Obrigado!Perguntas?
Thiago Avelino@avelino0
www.avelino.usthiagoavelinoster@gma
il.com