nosql for search - riak

Post on 20-Jun-2015

1.201 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

NoSQL for Search

Thiago Avelino@avelino0

www.avelino.usthiagoavelinoster@gmail.com

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

?????????

?????????

Google

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

top related