Grafos distribuídos com Titan:db

Grafos distribuídos com Titan:db

Palestra sobre Big Graph Data com Titan:db apresentada no @TheDevConf nas trilhas BigData e NoSQL

Da1bf5eb395c67b4abe83837e52a6c1f?s=128

Mike Dias

July 23, 2015
Tweet

Transcript

  1. Titan:db Grafos distribuídos com @mike_dias

  2. @mike_dias

  3. vagas@icolabora.com.br

  4. O que são grafos?

  5. mother name: hercules age: 30 type: demigod name: alcmene age:

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

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

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

    24 type: human name: jupter age: 5000 type: god father Property
  9. Property Graph

  10. Por que usar grafos?

  11. Modelagem intuitiva

  12. Queries expressivas

  13. Vários tipos de análises • Ranking • Path expressions •

    Scoring • Inference • Motifs • Mixing patterns • Geodesic • Etc..
  14. Casos de uso Recomendações personalizadas Influência social

  15. Casos de uso Melhor rota Detecção de fraude

  16. Por que usar o Titan?

  17. Titan:db • Grafos de tamanhos “infinitos" • Capacidades OLTP e

    OLAP • Licença Apache 2
  18. Backend flexível

  19. 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
  20. • Leituras e escritas estritamente consistentes • Escalabilidade linear •

    Integração com o ecossistema Hadoop • Hadoop MapReduce jobs + HBase tables. Titan:db +
  21. g.V.has('name',CONTAINS,'Bob')   g.V.has('place',WITHIN,Geoshape.circle(37.97,23.72,50)) Full text & Geo Search

  22. Integração com Hadoop GraphSON

  23. Graph derivation

  24. Graph statistic

  25. TinkerPop Blueprints

  26. Preparado para o TinkerPop3

  27. Como usar o Titan?

  28. Local server mode TitanGraph  g  =  TitanFactory.build()     .set("storage.backend","cassandra")

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

        .set("storage.hostname","77.77.77.77,77.77.77.78")     .open();
  30. 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')
  31. Quem está usando?

  32. http://arli.us/magazinaluiza

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

  34. http://arli.us/cisco-sec1

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

  36. None
  37. 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
  38. Obrigado! @mike_dias mike.rodrigues.dias@gmail.com Dúvidas?