Slide 1

Slide 1 text

Titan:db Grafos distribuídos com @mike_dias

Slide 2

Slide 2 text

@mike_dias

Slide 3

Slide 3 text

Slide 4

Slide 4 text

O que são grafos?

Slide 5

Slide 5 text

mother name: hercules age: 30 type: demigod name: alcmene age: 24 type: human name: jupter age: 5000 type: god father

Slide 6

Slide 6 text

mother name: hercules age: 30 type: demigod name: alcmene age: 24 type: human name: jupter age: 5000 type: god father Vertex

Slide 7

Slide 7 text

mother name: hercules age: 30 type: demigod name: alcmene age: 24 type: human name: jupter age: 5000 type: god father Edge

Slide 8

Slide 8 text

mother name: hercules age: 30 type: demigod name: alcmene age: 24 type: human name: jupter age: 5000 type: god father Property

Slide 9

Slide 9 text

Property Graph

Slide 10

Slide 10 text

Por que usar grafos?

Slide 11

Slide 11 text

Modelagem intuitiva

Slide 12

Slide 12 text

Queries expressivas

Slide 13

Slide 13 text

Vários tipos de análises • Ranking • Path expressions • Scoring • Inference • Motifs • Mixing patterns • Geodesic • Etc..

Slide 14

Slide 14 text

Casos de uso Recomendações personalizadas Influência social

Slide 15

Slide 15 text

Casos de uso Melhor rota Detecção de fraude

Slide 16

Slide 16 text

Por que usar o Titan?

Slide 17

Slide 17 text

Titan:db • Grafos de tamanhos “infinitos" • Capacidades OLTP e OLAP • Licença Apache 2

Slide 18

Slide 18 text

Backend flexível

Slide 19

Slide 19 text

Titan:db + • Disponibilidade contínua sem ponto único de falha • Sem gargalos na leitura ou escrita no grafo • Escalabilidade elástica • Cache de dados frequentemente acessados

Slide 20

Slide 20 text

• Leituras e escritas estritamente consistentes • Escalabilidade linear • Integração com o ecossistema Hadoop • Hadoop MapReduce jobs + HBase tables. Titan:db +

Slide 21

Slide 21 text

g.V.has('name',CONTAINS,'Bob')   g.V.has('place',WITHIN,Geoshape.circle(37.97,23.72,50)) Full text & Geo Search

Slide 22

Slide 22 text

Integração com Hadoop GraphSON

Slide 23

Slide 23 text

Graph derivation

Slide 24

Slide 24 text

Graph statistic

Slide 25

Slide 25 text

TinkerPop Blueprints

Slide 26

Slide 26 text

Preparado para o TinkerPop3

Slide 27

Slide 27 text

Como usar o Titan?

Slide 28

Slide 28 text

Local server mode TitanGraph  g  =  TitanFactory.build()     .set("storage.backend","cassandra")     .set("storage.hostname","127.0.0.1")     .open();

Slide 29

Slide 29 text

Remote server mode TitanGraph  g  =  TitanFactory.build()     .set("storage.backend","cassandra")     .set("storage.hostname","77.77.77.77,77.77.77.78")     .open();

Slide 30

Slide 30 text

Remote server mode usando Rexter GET  http://rexster.titan.machine1/mygraph/vertices/1 GET  http://rexster.titan.machine2/mygraph/tp/gremlin   ?script=g.v(1).out('follows').out('created')

Slide 31

Slide 31 text

Quem está usando?

Slide 32

Slide 32 text

http://arli.us/magazinaluiza

Slide 33

Slide 33 text

http://arli.us/edu-planet-scale

Slide 34

Slide 34 text

http://arli.us/cisco-sec1

Slide 35

Slide 35 text

http://pt.slideshare.net/Hadoop_Summit/t-235p230-ctang

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

Concluindo… • Vários casos de uso resolvidos com Grafos • Titan transforma Big Data em Big "Graph" Data • Rexter expõe o Titan para qualquer linguagem • Tecnologia open source e madura

Slide 38

Slide 38 text

Obrigado! @mike_dias [email protected] Dúvidas?