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
88
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
120
Grafos distribuídos com Titan:db
mikedias
0
410
Index Activiti data on Elasticsearch
mikedias
0
380
TinkerPop Blueprints
mikedias
0
73
Other Decks in Technology
See All in Technology
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
140
serverless team topology
_kensh
3
260
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
410
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
610
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
410
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
220
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
240
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
180
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.7k
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
310
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
730
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
940
Scaling GitHub
holman
463
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
How STYLIGHT went responsive
nonsquared
100
5.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.9k
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?