SlideShare ist ein Scribd-Unternehmen logo
1 von 86
Downloaden Sie, um offline zu lesen
alberto@graphenedb.com | @albertoperdomo
Leveraging relations at
scale with Neo4j
Madrid.rb - July 2013
Alberto Perdomo
GrapheneDB
alberto@graphenedb.com | @albertoperdomo
About me
๏Co-founder of Aentos
๏Ruby developer
๏GrapheneDB: Neo4j as a Service
alberto@graphenedb.com | @albertoperdomo
Origin of Graphs
alberto@graphenedb.com | @albertoperdomo
Leonhard Euler, 1736
alberto@graphenedb.com | @albertoperdomo
Königsberg Bridge
Problem
alberto@graphenedb.com | @albertoperdomo
Euler’s Technique
alberto@graphenedb.com | @albertoperdomo
Euler’s Technique
alberto@graphenedb.com | @albertoperdomo
Königsberg Problem
Graph
A little Graph Theory
alberto@graphenedb.com | @albertoperdomo
The Math
G=( V, E )
alberto@graphenedb.com | @albertoperdomo
Types of Graphs
alberto@graphenedb.com | @albertoperdomo
Undirected Graph
A
B
C
Adam
Michael
John
Example: Facebook Friendships
alberto@graphenedb.com | @albertoperdomo
Directed Graph
A
B
C
Adam
Michael
John
Example: Twitter follows
alberto@graphenedb.com | @albertoperdomo
Weighted Graph
A
B
C
0.6 0.8
Adam John
Star Wars: Episode IV
Example: Movie Ratings
alberto@graphenedb.com | @albertoperdomo
Labeled Graph
A C
friend_of fan_of
Adam LA Lakers
Michael
fan_pagefriend_of
B
user
user
Example: Facebook friendships
+ fan pages
alberto@graphenedb.com | @albertoperdomo
Property Graph
A
B
C
rated: 0.6
directed
Type: Cast Member
Name: George Lucas
Born_At: 1944-05-14
Type: Movie
Title: Star Wars Episode IV - A New Hope
Release: 1977
Type: User
Name: Adam
Age: 34
Country: USA
wrote
Example: IMDB
alberto@graphenedb.com | @albertoperdomo
Graph Databases
alberto@graphenedb.com | @albertoperdomo
Graph DB: Definition
๏Uses graph as primary data structure
๏Property graph: store data as nodes,
relations and properties
alberto@graphenedb.com | @albertoperdomo
Graph DBs
vs
other DBs
alberto@graphenedb.com | @albertoperdomo
A graph can be modeled
with almost any technology
alberto@graphenedb.com | @albertoperdomo
Mysql vs Neo4j
๏1M users
๏Friends of friends for 1K users
Depth Execution Time – MySQL Execution Time – Neo4j
2 0. 016 0. 010
3 30. 267 168
4 1, 543. 505 1. 359
5 Not Finished in 1 Hour 2. 132
http://www.neotechnology.com/how-much-faster-is-a-graph-database-really/,
http://www.manning.com/partner/
alberto@graphenedb.com | @albertoperdomo
Conventional DBs
๏Index lookup to find out adjacent nodes
๏Depends on total number of vertices
and edges in DB (global)
alberto@graphenedb.com | @albertoperdomo
Graph DB: Definition
๏Any system that provides index-free
adjacency[1]
๏Linear cost to retrieve adjacent nodes:
depends on the number of local neighbours
[1] http://www.slideshare.net/slidarko/problemsolving-using-graph-traversals-searching-scoring-ranking-and-recommendation
alberto@graphenedb.com | @albertoperdomo
While DB grows, cost of
local step remains the same
alberto@graphenedb.com | @albertoperdomo
Modeling connected
data is natural
alberto@graphenedb.com | @albertoperdomo
When use a graph?
alberto@graphenedb.com | @albertoperdomo
High density of
relations
alberto@graphenedb.com | @albertoperdomo
A search engine for
relations
alberto@graphenedb.com | @albertoperdomo
Graph analysis
๏Recommend vertices to user x
๏Search for y given x
๏Score x given its local neighbourhood
๏Rank x relative to y
alberto@graphenedb.com | @albertoperdomo
Recommendations
alberto@graphenedb.com | @albertoperdomo
Social Graph
A representation of the
relationship between people and
other people
alberto@graphenedb.com | @albertoperdomo
Social Graph
๏Facebook
๏Twitter
๏LinkedIn
“Since you have
many friends in
common, you might
know fellow X.”
alberto@graphenedb.com | @albertoperdomo
Interest Graph
A representation of the
relationship between people
and things
alberto@graphenedb.com | @albertoperdomo
Interest Graph
๏Pinterest
๏Instagram
๏Quora
๏Spotify
“A lot of people who
like x like you, also
like y, too.”
alberto@graphenedb.com | @albertoperdomo
Pinterest Interest Graph
http://engineering.pinterest.com/post/55272557617/building-a-follower-model-from-scratch
alberto@graphenedb.com | @albertoperdomo
e-commerce
alberto@graphenedb.com | @albertoperdomo
e-commerce
Upselling
alberto@graphenedb.com | @albertoperdomo
Recommendations
bought
Many users
Star Wars I DVD
bought
C
A
B
looking at
A user
Star Wars Trilogy
DVD Pack
“Customers who bought a, also bought b”
alberto@graphenedb.com | @albertoperdomo
Rank x
๏Rank nodes based on their
neighbourhood/network
๏Klout, PageRank
alberto@graphenedb.com | @albertoperdomo
Geospatial problems
๏Travelling Salesman
๏Route for delivery of parcels
๏Optimize route for duration, distance,
traffic flow, etc.
๏Must not be physical path, example:
connecting people
alberto@graphenedb.com | @albertoperdomo
Recognize patterns
๏Fraud detection
๏Debt compensation systems
๏Text analysis
๏Chain of exchanges
alberto@graphenedb.com | @albertoperdomo
Visualize connected
data
alberto@graphenedb.com | @albertoperdomo
Your domain model
determines what you
can do
alberto@graphenedb.com | @albertoperdomo
High chances your
data is a graph
alberto@graphenedb.com | @albertoperdomo
The Neo4j
Graph Database
alberto@graphenedb.com | @albertoperdomo
Data modeling
alberto@graphenedb.com | @albertoperdomo
White board
alberto@graphenedb.com | @albertoperdomo
Then Add Complexity
alberto@graphenedb.com | @albertoperdomo
Process, Tips
๏Model facts as nodes
๏Use relations to model relations
between facts
๏Refactor - schema-less !
alberto@graphenedb.com | @albertoperdomo
Neo4j
๏Graph DB written in Java
๏Java API + HTTP/REST + Embedded
๏Full ACID
๏Built-in indexing (or roll your own)
๏Scale: 32B nodes, 32B relations
alberto@graphenedb.com | @albertoperdomo
The Cypher Query
Language
alberto@graphenedb.com | @albertoperdomo
Cypher
๏Neo4j’s graph query language
๏Declarative pattern matching
๏“SQL for graphs”
๏ASCII art
alberto@graphenedb.com | @albertoperdomo
Pattern matching
alberto@graphenedb.com | @albertoperdomo
Pattern matching
alberto@graphenedb.com | @albertoperdomo
Basic Syntax
A B
(a) --> (b)
alberto@graphenedb.com | @albertoperdomo
Basic Syntax
START a=node(*)
MATCH (a)-->(b)
RETURN a,b;
alberto@graphenedb.com | @albertoperdomo
(a) --> (b)
alberto@graphenedb.com | @albertoperdomo
Relations
(a) -[:ACTED_IN]-> (b)
A B
ACTED IN
alberto@graphenedb.com | @albertoperdomo
Syntax
START a=node(*)
MATCH (a)-[:ACTED_IN]->(b)
RETURN a.name, b.title;
alberto@graphenedb.com | @albertoperdomo
Syntax
START a=node(*)
MATCH (a)-[r:ACTED_IN]->(b)
RETURN a.name, r.roles, b.title;
alberto@graphenedb.com | @albertoperdomo
Syntax
(a) --> (b) <-- (c)
A B C
alberto@graphenedb.com | @albertoperdomo
Syntax
START a=node(*)
MATCH (a) -[:ACTED_IN]->(m)<-[:DIRECTED]- (d)
RETURN a.name, m.title, d.name;
alberto@graphenedb.com | @albertoperdomo
Sort & Limit
START a=node(*)
MATCH (a) -[:ACTED_IN]->(m)<-[:DIRECTED]- (d)
RETURN a.name, m.title, d.name
ORDER BY(count) DESC
LIMIT 5;
alberto@graphenedb.com | @albertoperdomo
Starting point: All nodes
START n=node(*)
RETURN n;
alberto@graphenedb.com | @albertoperdomo
Starting point: Where
START n=node(*)
WHERE has (n.name) AND n.name = “George Lucas”
RETURN n;
alberto@graphenedb.com | @albertoperdomo
Starting point: Auto
Index
START n=node:node_auto_index(name=“George Lucas”)
RETURN n;
alberto@graphenedb.com | @albertoperdomo
Starting point: multiple
nodes
START lucas=node:node_auto_index(name=“George Lucas”),
ford=node:node_auto_index(name=”Harrison Ford”)
MATCH (lucas) -[:DIRECTED]-> (m) <-[:ACTED_IN]- (ford)
RETURN m.title;
alberto@graphenedb.com | @albertoperdomo
Multiple relations
MATCH (a)-[:ACTED_IN|DIRECTED]->()
alberto@graphenedb.com | @albertoperdomo
Constraints with
comparison
START a=node:node_auto_index(name=“Alberto Perdomo”)
MATCH (a) -[:KNOWS]-> (b)
WHERE b.born < a.born
RETURN a.name;
alberto@graphenedb.com | @albertoperdomo
Contraints with
patterns
MATCH (alberto)-[:KNOWS*2]->(fof)
WHERE NOT((ferblape)-[:KNOWS]-(fof))
alberto@graphenedb.com | @albertoperdomo
Variable length paths
MATCH (alberto)-[:KNOWS*2]->(fof)
alberto@graphenedb.com | @albertoperdomo
Agreggation
๏count(x)
๏min(x)
๏max(x)
๏avg(x)
๏collect(x)
๏filter(x)
alberto@graphenedb.com | @albertoperdomo
Updating the graph
๏Create, Set, Delete nodes
๏Create, Set, Delete relations
alberto@graphenedb.com | @albertoperdomo
Neo4j: More features
alberto@graphenedb.com | @albertoperdomo
Built-in Graph Algos
๏shortest path
๏allSimplePaths
๏allPaths
๏dijkstra
alberto@graphenedb.com | @albertoperdomo
Extending Neo4j: Plugins
๏Provides extra API endpoints to run
external code. JAR files.
๏Neo4j-Spatial
๏Neo4j-Sparql
alberto@graphenedb.com | @albertoperdomo
Neo4j from Ruby
๏ Neography
๏ Wrapper around REST API
๏ Neo4j.rb:
๏ Language binding for JRuby
๏ ActiveModel, Mixins
๏ Embedded Neo4j w/ GPL license (not only?)
๏ Other?
alberto@graphenedb.com | @albertoperdomo
Neography
# Node creation:
node1 = @neo.create_node("age" => 31, "name" => "Max")
node2 = @neo.create_node("age" => 33, "name" => "Roel")
# Node properties:
@neo.set_node_properties(node1, {"weight" => 200})
# Relationships between nodes:
@neo.create_relationship("coding_buddies", node1, node2)
# Get node relationships:
@neo.get_node_relationships(node2, "in",
"coding_buddies")
# Use indexes:
@neo.add_node_to_index("people", "name", "max", node1)
@neo.get_node_index("people", "name", "max")
# Cypher queries:
@neo.execute_query("start n=node(0) return n")
alberto@graphenedb.com | @albertoperdomo
Neo4j.rb ActiveModel
class User < Neo4j::Rails::Model
attr_accessor :password
attr_accessible :email, :password, :password_confirmation
after_save :encrypt_password
email_regex = /A[w+-.]+@[a-zd-.]+.[a-z]+z/i
# add an exact lucene index on the email property
property :email, index: :exact
has_one(:avatar).to(Avator)
accepts_nested_attributes_for :avatar, allow_destroy: true
end
alberto@graphenedb.com | @albertoperdomo
Neo4j.rb Mixin
class Person
include Neo4j::NodeMixin
property :name, index: :exact
property :city
has_n :friends
has_one :address
end
alberto@graphenedb.com | @albertoperdomo
Neo4j Licensing
๏ Community: GPL
๏ Advanced: Commercial + AGPL
๏ Monitoring
๏ Support
๏ Enterprise: Commercial + AGPL
๏ Monitoring + HA clustering + Online backups
๏ Support
alberto@graphenedb.com | @albertoperdomo
Getting Started
๏www.neo4j.org/learn/try
๏www.neo4j.org/download
๏download -> unpack -> start
๏http://localhost:7474
alberto@graphenedb.com | @albertoperdomo
Built in Web Admin
๏Stats
๏Console & browser
๏Indexes
alberto@graphenedb.com | @albertoperdomo
Neo4j Resources
๏ Code & Issues: github.com/neo4j/neo4j
๏ Resources: www.neo4j.org/learn
๏ Mailing List: groups.google.com/forum/#!forum/neo4j
๏ Questions: stackoverflow.com/questions/tagged/neo4j
๏ Meetups: www.neo4j.org/participate/events/meetups
Free download:
http://graphdatabases.com/
alberto@graphenedb.com | @albertoperdomo
GrapheneDB:
Neo4j as a Service
@albertoperdomo
alberto@graphenedb.com
Thanks!

Weitere ähnliche Inhalte

Andere mochten auch

An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph Databases
InfiniteGraph
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j Internals
Tobias Lindaaker
 
Using MongoDB as a high performance graph database
Using MongoDB as a high performance graph databaseUsing MongoDB as a high performance graph database
Using MongoDB as a high performance graph database
Chris Clarke
 

Andere mochten auch (16)

Document Classification with Neo4j
Document Classification with Neo4jDocument Classification with Neo4j
Document Classification with Neo4j
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendations
 
An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph Databases
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
 
Natural Language Processing with Neo4j
Natural Language Processing with Neo4jNatural Language Processing with Neo4j
Natural Language Processing with Neo4j
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflow
 
An overview of Neo4j Internals
An overview of Neo4j InternalsAn overview of Neo4j Internals
An overview of Neo4j Internals
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
Using MongoDB as a high performance graph database
Using MongoDB as a high performance graph databaseUsing MongoDB as a high performance graph database
Using MongoDB as a high performance graph database
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
The Importance of MDM - Eternal Management of the Data Mind
The Importance of MDM - Eternal Management of the Data MindThe Importance of MDM - Eternal Management of the Data Mind
The Importance of MDM - Eternal Management of the Data Mind
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
Webinar: RDBMS to Graphs
Webinar: RDBMS to GraphsWebinar: RDBMS to Graphs
Webinar: RDBMS to Graphs
 

Mehr von Alberto Perdomo

Primeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4jPrimeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4j
Alberto Perdomo
 
Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...
Alberto Perdomo
 

Mehr von Alberto Perdomo (14)

Primeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4jPrimeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4j
 
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011
 
Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasCurso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
Curso TDD Ruby on Rails #06: Mocks y stubs
Curso TDD Ruby on Rails #06: Mocks y stubsCurso TDD Ruby on Rails #06: Mocks y stubs
Curso TDD Ruby on Rails #06: Mocks y stubs
 
Curso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: ShouldaCurso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: Shoulda
 
Curso TDD Ruby on Rails #04: Factorías de objetos
Curso TDD Ruby on Rails #04: Factorías de objetosCurso TDD Ruby on Rails #04: Factorías de objetos
Curso TDD Ruby on Rails #04: Factorías de objetos
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitarios
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven DevelopmentCurso TDD Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
Curso TDD Ruby on Rails #01: Introducción al testing
Curso TDD Ruby on Rails #01: Introducción al testingCurso TDD Ruby on Rails #01: Introducción al testing
Curso TDD Ruby on Rails #01: Introducción al testing
 
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Leveraging relations at scale with Neo4j