Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Grafos com TinkerPop3 e TitanDB - TDC2016
Search
Mike Dias
July 08, 2016
Technology
0
85
Grafos com TinkerPop3 e TitanDB - TDC2016
Mike Dias
July 08, 2016
Tweet
Share
More Decks by Mike Dias
See All by Mike Dias
Elytics: Métricas em tempo real no Elo7
mikedias
0
110
Grafos distribuídos com Titan:db
mikedias
0
380
Index Activiti data on Elasticsearch
mikedias
0
350
TinkerPop Blueprints
mikedias
0
64
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
17k
OPENLOGI Company Profile
hr01
0
58k
rootful・rootless・privilegedコンテナの違い/rootful_rootless_privileged_container_difference
moz_sec_
0
110
Unsafe.BitCast のすゝめ。
nenonaninu
0
160
AI×医用画像の現状と可能性_2024年版/AI×medical_imaging_in_japan_2024
tdys13
0
1.2k
Accessibility Inspectorを活用した アプリのアクセシビリティ向上方法
hinakko
0
110
React Routerで実現する型安全なSPAルーティング
sansantech
PRO
4
900
The future we create with our own MVV
matsukurou
0
1.5k
ソフトウェア開発における「パーフェクトな意思決定」/Perfect Decision-Making in Software Development
yayoi_dd
2
2.7k
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
170
[JAWS-UG新潟#20] re:Invent2024 -CloudOperationsアップデートについて-
shintaro_fukatsu
0
150
Storage Browser for Amazon S3
miu_crescent
1
350
Featured
See All Featured
A better future with KSS
kneath
238
17k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
190
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building Applications with DynamoDB
mza
92
6.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
BBQ
matthewcrist
85
9.4k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Making Projects Easy
brettharned
116
6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Embracing the Ebb and Flow
colly
84
4.5k
How to train your dragon (web standard)
notwaldorf
88
5.8k
Transcript
Titan:db TinkerPop3 Grafos com e @mike_dias
@mike_dias
None
Agenda • Grafos • TinkerPop3 • TitanDB
Grafos
mother name: hercules age: 30 type: demigod name: alcmene age:
24 type: human name: jupter age: 5000 type: god father
mother name: hercules age: 30 type: demigod name: alcmene age:
24 type: human name: jupter age: 5000 type: god father Vertex
mother name: hercules age: 30 type: demigod name: alcmene age:
24 type: human name: jupter age: 5000 type: god father Edge
mother name: hercules age: 30 type: demigod name: alcmene age:
24 type: human name: jupter age: 5000 type: god father Property
Property Graph
Por que usar grafos
Modelagem intuitiva
Queries expressivas
Casos de uso Recomendações personalizadas Influência social
Casos de uso Melhor rota Detecção de fraude
Quero usar grafos! #comofas?
Apache TinkerPop • Vendor-agnostic graph compute framework • Gremlin -
graph traversal language • Capacidades OLTP e OLAP
Core API Graph graph = TinkerGraph.open(); Vertex nosql =
graph.addVertex("trilha"); nosql.property("nome", "NoSQL"); Vertex tdc2016 = graph.addVertex("evento"); tdc2016.property("nome", "TDC 2016"); Edge e = nosql.addEdge("compoe", tdc2016); e.property("data", "08/07/2016");
Core API Graph graph = Neo4jGraph.open("..."); Vertex nosql =
graph.addVertex("trilha"); nosql.property("nome", "NoSQL"); Vertex tdc2016 = graph.addVertex("evento"); tdc2016.property("nome", "TDC 2016"); Edge e = nosql.addEdge("compoe", tdc2016); e.property("data", "08/07/2016");
TinkerPop-enabled Vendors TitanGraph.open(…) Neo4jGraph.open(…) OrientGraph.open(…) StardogGraph.open(…) DSEGraph.open(…) BlazeGraph.open(…)
Gremlin lang What are the names of Gremlin's friends' friends?
g.V().has("name","gremlin"). out("knows"). out("knows"). values("name")
Gremlin console
OLTP vs OLAP
Spark computer graph = GraphFactory.open(…); g = graph.traversal(). withComputer(SparkGraphComputer.class);
g.V().hasLabel("person").groupCount().by("age")
Giraph computer graph = GraphFactory.open(…); g = graph.traversal(). withComputer(GiraphGraphComputer.class);
g.V().hasLabel("person").groupCount().by("age")
Gremlin server REST WebSockets
Learn more http://sql2gremlin.com https://academy.datastax.com/courses/ds232-the-gremlin-graph-query-language https://academy.datastax.com/resources/getting-started-graph-databases http://tinkerpop.apache.org
Meu grafo é muito grande. #comofas?
Titan:db • Suporte nativo ao TinkerPop3 • Storages configuráveis •
Licença Apache 2
Backend flexível
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
• Leituras e escritas estritamente consistentes • Escalabilidade linear •
Integração com o ecossistema Hadoop Titan:db +
g.V().has('name',CONTAINS,'Bob') g.V().has('place',WITHIN,Geoshape.circle(37.97,23.72,50)) Full text & Geo Search
Vertex centric index
Graph partitioning
Disclaimer
Quem está usando?
http://arli.us/edu-planet-scale
http://arli.us/magazinaluiza
http://arli.us/cisco-sec1
http://pt.slideshare.net/Hadoop_Summit/t-235p230-ctang
https://videos.dabcc.com/aws-reinvent-2015-dat203-building- graph-databases-on-aws/
Concluindo… • Vários casos de uso resolvidos com Grafos •
Quando for usar grafos, use TinkerPop3 • Titan transforma Big Data em Big "Graph" Data
Obrigado! @mike_dias
[email protected]
Dúvidas?