SlideShare a Scribd company logo
1 of 77
Release Demo:
Neo4j 3.4 & Bloom
Michael Hunger (@mesirii)
Developer Relations Neo4j
CPH- June 2018
3
Graph
Transactions
Graph
Analytics
Data Integration
Development
& Admin
Analytics
Tooling
Drivers & APIs Discovery & Visualization
Developers
Admins
Applications Business Users
Data Analysts
Data Scientists
Enterprise Data Hub
Native Graph Platform: Tools for Many Users
Neo4j: Enabling the Connected Enterprise
Consumers of Connected Data
AI & Graph Analytics
• Sentiment analysis
• Customer
segmentation
• Machine learning
• Cognitive computing
• Community detection
Transactional Graphs
• Fraud detection
• Real-time recommendations
• Network and IT operations
management
• Knowledge Graphs
• Master Data Management
Discovery & Visualization
• Fraud detection
• Network and IT
operations
• Product information
management
• Risk and portfolio analysisData
Scientists
Business
Users
Applications
Neo4j 3.3 and 3.4
Latest Innovations
3.3
Oct 2017
Development &
Administration
Analytics
Tooling
Graph
Analytics
Graph
Transactions
Data Integration
Discovery & VisualizationDrivers & APIs
AI
Neo4j Database 3.3
• 50% faster writes
• Real-time transactions
and traversal applications
Review: The Neo4j Graph Platform, Fall 2017
Neo4j Desktop, the developers’
mission control console
• Free, registered local license
of Enterprise Edition
• APOC library installer
• Algorithm library installer
Data Integration
• Neo4j ETL reveals RDBMS
hidden relationships upon
importing to graph
• Data Importer for fast data
ingestion
Graph Analytics
• Graph Algorithms support
Community Detection,
Centrality and Path Finding
• Cypher for Apache Spark
from openCypher.org
supports graph composition
(sub-graphs) and algorithm
chaining
Discovery & Visualization
• Integration with popular
visualization vendors
• Neo4j Browser and custom
visualizations allow graph
exploration
Bolt with GraphQL and more
• Secure, Causal Clustering
• High-speed analytic processing
• On-prem, Docker & cloud delivery
“Least Connected” load balancing
Faster & more memory efficient runtime
Batch generation of IDs
Schema operations now take local locks
Page cache metadata moved off heap
Native GB+ Tree numeric indexes
Bulk importer paging & memory improvements
Dynamically reload config settings without restarting
Neo4j Admin & Config
Storage & Indexing
Memory Management
Kernel & Transactions
Cypher Engine
Drivers & Bolt Protocol
Neo4j 3.3 Performance Improvements
Concurrent/Transactional Write Performance
25000
20000
15000
10000
5000
0
Neo4j 2.2 Neo4j 2.3 Neo4j 3.0 Neo4j 3.1 Neo4j 3.2 Neo4j 3.3
69%
31%
59%
38%
55%
(Simulates Real-World Workloads)
`
RR
RR RR
RRRRRR
READ REPLICAS
London
`
C C
RR RR RR
RRRRRR
READ REPLICAS
New York
Multi-Data Center Clustering with Secure Transit
Neo4j Desktop 1.0
• Mission control for developers
• Connect to both local and remote
Neo4j servers
• Free with registration
• Includes development license for Neo4j Enterprise Edition
• Graph Apps
• Keeps you up to date with latest versions, plugins, etc.
• https://neo4j.com/download
Finds the optimal path
or evaluates route
availability and quality
• Single Source Short Path
• All-Nodes SSP
• Parallel paths
Evaluates how a
group is clustered or
partitioned
• Label Propagation
• Union Find
• Strongly Connected
Components
• Louvain
• Triangle-Count
Determines the
importance of distinct
nodes in the network
• PageRank
• Betweeness
• Closeness
• Degree
Data Science Algorithms
Project Goals
• high performance graph algorithms
• user friendly (procedures)
• support graph projections
• augment OLTP with OLAP
• integrate efficiently with live Neo4j
database
(read, write, Cypher)
• common Graph API to write your
own
Usage
1. Call as Cypher procedure
Usage
1. Call as Cypher procedure
2. Pass in specification (Label, Prop, Query) and
configuration
Usage
1. Call as Cypher procedure
2. Pass in specification (Label, Prop, Query) and
configuration
3. ~.stream variant returns (a lot) of results
CALL algo.<name>.stream('Label','TYPE',{conf})
YIELD nodeId, score
Usage
1. Call as Cypher procedure
2. Pass in specification (Label, Prop, Query) and
configuration
3. ~.stream variant returns (a lot) of results
CALL algo.<name>.stream('Label','TYPE',{conf})
YIELD nodeId, score
1. non-stream variant writes results to graph and
returns statistics
CALL algo.<name>('Label','TYPE',{conf});
Usage
1. Call as Cypher procedure
2. Pass in specification (Label, Prop, Query) and
configuration
3. ~.stream variant returns (a lot) of results
CALL algo.<name>.stream('Label','TYPE',{conf})
YIELD nodeId, score
1. non-stream variant writes results to graph and
returns statistics
CALL algo.<name>('Label','TYPE',{conf});
1. Cypher projection:
pass in Cypher for node and relationship lists
CALL algo.<name>(
'MATCH ... RETURN id(n)',
'MATCH (n)-->(m) RETURN id(n), id(m)',
{ graph:'cypher' }
)
Architecture
1. Load Data in parallel from
Neo4j
2. Store in efficient data
structure
3. Run graph algorithm in
parallel using Graph API
4. Write data back in parallel Neo4j
1, 2
Algorithm
Datastructures
4
3
Graph API
TheAlgorithms
Centralities
• PageRank (baseline)
• Betweeness
• Closeness
• Degree
Example: PageRank
CALL algo.pageRank('Page', 'LINKS', {
iterations:20,
dampingFactor:0.85,
write: true,
writeProperty:"pagerank"}
)
YIELD nodes, iterations, loadMillis,
computeMillis, writeMillis,
dampingFactor, write, writeProperty
Clustering
• Label Propagation
• Louvain (Phase2)
• Union Find / WCC
• Strongly Connected
Components
• Triangle-
Count/Clustering CoeffTheAlgorithms
CALL algo.unionFind('User', 'FRIEND', {
write:true,
partitionProperty:'partition'}
)
YIELD nodes, setCount, loadMillis,
computeMillis, writeMillis
Example: UnionFind (CC)
Path-Expansion / Traversal
• Single Short Path
• All-Nodes SSP
• Parallel BFS / DFS
TheAlgorithms
MATCH(start:Location {name:'A'})
CALL algo.deltaStepping.stream(start, 'cost', 3.0)
YIELD nodeId, distance
RETURN nodeId, distance ORDER LIMIT 20
Example: Delta Stepping
Reading Material
• Thanks to Amy Hodler
• 13 Top Resources on Graph Theory
• neo4j.com/blog/
top-13-resources-graph-theory-algorithms/
GraphAware NLP
Comprehensive Suite of NLP
Tools for Neo4j
Feature Matrix
github.com/graphaware/neo4j-nlp
Trump Twitter Analysis
(M. David Allen)
● Import Trump Twitter Archive
● Extract Hashtags and Mentions
● Some Analytics Queries
● Use NLP (Caution)
● for Entities and Sentiment
● Some more queries
Trump is Dooming the World one Tweet(storm) at a Time
https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
WITH [ archive.com/data/realdonaldtrump/2018.json',..]
as urls
UNWIND urls AS url
CALL apoc.load.json(url) YIELD value as t
CREATE (tweet:Tweet {
id_str: t.id_str, text: t.text,
created_at: t.created_at, retweets: t.retweet_count,
favorites: t.favorite_count, retweet: t.is_retweet,
reply: t.in_reply_to_user_id_str, source: t.source
}) RETURN count(t);
Importing Data
https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
MATCH (t:Tweet) WHERE t.text contains '#'
WITH t,
apoc.text.regexGroups(t.text, "#([w_]+)") as matches
UNWIND matches as match
WITH t, match[1] as hashtag
MERGE (h:Tag { name: toUpper(hashtag) })
ON CREATE SET h.text = hashtag
MERGE (h)<-[:TAGGED]-(t)
RETURN count(h);
Importing Data - Hashtags
https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
MATCH (t:Tweet) WHERE t.text CONTAINS '@'
WITH t,
apoc.text.regexGroups(t.text, "@([w_]+)") as
matches
UNWIND matches as match
WITH t, match[1] as mention
MERGE (u:User { name: toLower(mention) })
ON CREATE SET u.text = mention
MERGE (u)<-[:MENTIONED]-(t)
RETURN count(u);
Importing Data - Mentions
https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
MATCH (tag:Tag)<-[:TAGGED]-(tw)
RETURN tag.name, count(*) as freq
ORDER BY freq desc LIMIT 10;
MATCH (u:User)<-[:MENTIONED]-(tw)
RETURN u.name, count(*) as freq
ORDER BY freq desc LIMIT 10;
Query Data – Tags / Mentions
https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
NLP Knowledge Studio
NLP Knowledge Studio
by GraphAware
NLP Knowledge Studio
NLP Knowledge Studio
NLP Knowledge Studio
by GraphAware
NLP Knowledge Studio
by GraphAware
New in Town
3.4
May 2018
Neo4j 3.4 Videos
youtu.be/mdNJFTUiuA8
Neo4j 3.4 Sandbox
neo4j.com/sandbox
Support for Time and Date
+
• property storage: local date and time, date & time with timezones
• durations
• indexed
• range scans: $before < event.time < $after
• lots of possible datetime formats including weeks, quarters
• ordering
• Events, Time Tracking, History, Auditing, ...
DateTime
https://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/
DateTime Types & Functions
Support date Support time Support timezone
Date x
Time x x
LocalTime x
DateTime x x x
LocalDateTime x x
DateTime Types & Functions
date()
time.transaction()
localtime.statement()
datetime.realtime()
datetime.realtime('Europe/Berlin')
"db.temporal.timezone"
Current date, using statement clock
Current time, using transaction clock
Current local time, using statement clock
Current date and time, using realtime clock
This datetime instance will have the default timezone
of the database
Current date and time, using realtime clock,
in Europe/Berlin timezone
Neo4j setting to configure default timezone*, taking a String, e.g.
"Europe/Berlin".
DateTime Types & Functions
date("2018-01-01")
localtime("12:00:01.003")
time("12:00:01.003+01:00")
datetime("2018-01-01T12:00:01.003[Europe/Berlin]")
DateTime Types & Functions
date({year: 2018, month: 1, day: 1})
localtime({hour: 12, minute: 0, second 1, millisecond: 3})
time({hour: 12, minute: 0, second 1, millisecond: 3, timezone: '+01:00'})
datetime({year: 2018, month: 1, day: 1, hour: 12, minute: 0,
second 1, millisecond: 3, timezone: 'Europe/Berlin'})
DateTime Types & Functions - Duration
a = localdatetime("2018-01-01T00:00")
b = localdatetime("2018-02-02T01:00")
duration.between(a, b) -> (1M, 1D, 3600s, 0ns)
duration.inMonths(a, b) -> (1M, 0D, 0s, 0ns)
duration.inDays(a, b) -> (0M, 32D, 0s, 0ns)
duration.inSeconds(a, b) -> (0M, 0D, 2768400s, 0ns)
DateTime Types & Functions - Duration
a = localdatetime("2018-01-01T00:00")
b = localdatetime("2018-02-02T01:00")
duration.between(a, b) -> (1M, 1D, 3600s, 0ns)
duration.inMonths(a, b) -> (1M, 0D, 0s, 0ns)
duration.inDays(a, b) -> (0M, 32D, 0s, 0ns)
duration.inSeconds(a, b) -> (0M, 0D, 2768400s, 0ns)
// Maths
instant + duration
instant – duration
duration * number
duration / number
DateTime Types & Functions - toString
toString
Date 2018-05-07
Time 15:37:20.05+02:00
LocalTime 15:37:20.05
DateTime 2018-05-07T15:37:20.05+02:00[Europe/Stockholm]
LocalDateTime 2018-05-07T15:37:20.05
Duration P12Y5M14DT16H13M10.01S
Prints all temporal types in a format that can be parsed back
DateTime Types & Functions - Pitfalls
• Don’t compare Durations. Add them to the same instant and compare
the results instead.
date + dur < date + dur2
• Don’t subtract instants. Use duration.between.
duration.between(date1, date2)
• Keep predicates simple to leverage indexing.
MATCH (n), (m) WHERE datetime({date: n.date, time: m.time}) = dt
MATCH (n), (m) WHERE n.date = date(dt) AND m.time = time(dt)
Support for Geospatial Search
+
medium.com/neo4j/whats-new-in-neo4j-spatial-features-586d69cda8d0
Geospatial Graph Queries – Coord Systems
Explicit CRS:
• point({x:1, y:2, z:3, crs:'wgs-84-3d'})
• point({x:1, y:2, z:3, srid:4979})
Inferred CRS:
• point({x:1, y:2}) => 'cartesian'
• point({x:1, y:2, z:3}) => 'cartesian-3d'
• point({latitude:2, longitude:1}) => 'wgs-84'
• point({latitude:2, longitude:1, height:1000}) => 'wgs-84-3d'
Geospatial Graph Queries – Index
Neo4j 3.2 introduced the GBPTree:
• Lock-free writes (high insert performance)
• Good read performance (comparable)
Neo4j 3.3 introduced the NativeSchemaNumberIndex:
• And the FusionSchemaIndex
• Allows multiple types to exist in one logical index
Neo4j 3.4 Spatial Index / Date Time Index
• Different indexes for coordinate system
• Hilbert Space Filling Curves
Geospatial Graph Queries
x
y
z
Geospatial Graph Queries
9 index 5 hits
Demo
Spacetime Reviews
github.com/johnymontana/spacetime-reviews
github.com/johnymontana/spacetime-reviews
spacetime.graph.zone
Performance
Neo4j 3.3 Neo4j 3.4
70% Faster
250
500
0
750
1000
Neo4j 3.2
Reads – Neo4j Enterprise Cypher Runtime
10% Faster
Mixed Workload Read Benchmark
Supercharging Graph Writes
One Component:
80% of transactional write overhead (!!!)
?QM ,.
Index Insertion
 ACID
 Optimized for
graph
 Fast Reads
 ~10x Faster Writes
Neo4j GB+ Tree
Index
Label Groupings (Neo4j 3.2)
Numerics (Neo4j 3.3)
Strings (Neo4j 3.4)
QM ,.
External Index
Provider
Native Neo4j Index
Supercharging Graph Writes
68
Writes with Native String Indexes
500%
improvement
Neo4j 3.4 RC1 Performance
Scalability
Multi-Clustering Support for Global Internet Apps
Horizontally partition graph by domain (country, product, customer, data center)
70
Multi-tenancy
Geo Partitioning
Write Scaling
Driver Support
sa cluster
uk cluster
us_east cluster
hk cluster
Ops & Admin
LDAP & Active
Directory
User &
Roles
Procedure
Access Controls
Security: Property Blacklisting added
Kerberos SSO
Certs
Intra-Cluster
Encryption
Security
Event Logging
TLS Wire
Encryption
SSN: “043-56-8834”
0000“043-56-8834”
Property
Blacklisting
73
Property Level Security
https://neo4j.com/docs/operations-manual/current/security/authentication-authorization/property-level-security/
Rolling Upgrades
74
3.4 3.4 3.44.0 4.0 4.0
Auto Cache Reheating
Upgrade to new versions
with zero downtime
Store upgrades
may require downtime but
can be done subsequently
For Restarts, Restores, and Cluster Expansion
75
3.4 Features By Edition Community Edition Enterprise Edition
Date / Time data types ■ ■
3D Geospatial data types ■ ■
Performance Improvements
Native String Indexes – up to 5x faster writes ■ ■
2x faster backups ■
Improved Cypher runtime Fast Faster
100B+ object bulk importer ■ Resumable
Enterprise Scaling & Administration
Multi-Clustering (partitioning of clusters) ■
Automatic cache warming ■
Rolling upgrades ■
Resumable copy/restore cluster member ■
New diagnostic metrics and support tools ■
Security: Property blacklisting by user/role ■
Development &
Administration
Analytics
Tooling
Graph
Analytics
Graph
Transactions
Data Integration
Discovery & VisualizationDrivers & APIs
AI
Neo4j Database 3.4
• 70% faster Cypher
• Native String Indexes
(up to 5x faster writes)
• 100B+ bulk importer
The Neo4j Graph Platform, Summer 2018
Improved Admin Experience
• Rolling upgrades
• 2X faster backups
• Cache Warming on startup
• Improved diagnostics
Morpheus for Apache Spark
• Graph analytics in the data lake
• In-memory Spark graphs from
Apache Hadoop, Hive,
Gremlin and Spark
• Save graphs into Neo4j
• High-speed data exchange
between Neo4j & data lake
• Progressive analysis using
named graphs
Graph Data Science
• High speed graph
algorithms
Neo4j Bloom
• New graph illustration and
communication tool for non-
technical users
• Explore and edit graph
• Search-based
• Create storyboards
• Foundation for graph data
discovery
• Integrated with graph platform
Multi-Cluster routing built into Bolt drivers
• Date/Time data type
• 3-D Geospatial search
• Secure, Horizontal Multi-Clustering
• Property Blacklisting Security
Introducing A Brand New
Graph Exploration Product
Neo4j Bloom
Neo4j Bloom
79
• High fidelity
• Scene navigation
• Property views
• Search suggestions
• Saved phrase history
• Property editor
• Schema perspectives
• Bloom chart type
• Visualize
• Communicate
• Discover
• Navigate
• Isolate
• Edit
• Share
80
Neo4j Bloom Features
• Prompted Search
• Property Browser &
editor
• Category icons and
color scheme
• Pan, Zoom & Select
Advancing the Platform
81
Native graph architecture extends
scale, use cases and performance
• Neo4j Database 3.4
Shipping May, 2018
New products for new users
• Neo4j Bloom visualization &
storyboard tool for business
Shipping in June, 2018

More Related Content

What's hot

A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQLA Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQLDatabricks
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationDatabricks
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaGuido Schmutz
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiDatabricks
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQLDatabricks
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Databricks
 
Speed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorSpeed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorDatabricks
 
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...Databricks
 
Optimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansOptimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansDatabricks
 
Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Databricks
 
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaMohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaFlink Forward
 
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4jExtending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4jDatabricks
 
The Nitty Gritty of Advanced Analytics Using Apache Spark in Python
The Nitty Gritty of Advanced Analytics Using Apache Spark in PythonThe Nitty Gritty of Advanced Analytics Using Apache Spark in Python
The Nitty Gritty of Advanced Analytics Using Apache Spark in PythonMiklos Christine
 
MLflow Model Serving
MLflow Model ServingMLflow Model Serving
MLflow Model ServingDatabricks
 
Apache Spark Side of Funnels
Apache Spark Side of FunnelsApache Spark Side of Funnels
Apache Spark Side of FunnelsDatabricks
 
Analyzing Blockchain Transactions in Apache Spark with Jiri Kremser
Analyzing Blockchain Transactions in Apache Spark with Jiri KremserAnalyzing Blockchain Transactions in Apache Spark with Jiri Kremser
Analyzing Blockchain Transactions in Apache Spark with Jiri KremserDatabricks
 
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 Lessons from the Field, Episode II: Applying Best Practices to Your Apache S... Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...Databricks
 
Getting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesGetting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesDatabricks
 

What's hot (20)

A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQLA Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper Optimization
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQL
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
 
Speed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorSpeed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS Accelerator
 
Apache Spark Crash Course
Apache Spark Crash CourseApache Spark Crash Course
Apache Spark Crash Course
 
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...
A Practical Approach to Building a Streaming Processing Pipeline for an Onlin...
 
Optimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansOptimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex Plans
 
Catalyst optimizer
Catalyst optimizerCatalyst optimizer
Catalyst optimizer
 
Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™
 
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaMohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
 
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4jExtending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
 
The Nitty Gritty of Advanced Analytics Using Apache Spark in Python
The Nitty Gritty of Advanced Analytics Using Apache Spark in PythonThe Nitty Gritty of Advanced Analytics Using Apache Spark in Python
The Nitty Gritty of Advanced Analytics Using Apache Spark in Python
 
MLflow Model Serving
MLflow Model ServingMLflow Model Serving
MLflow Model Serving
 
Apache Spark Side of Funnels
Apache Spark Side of FunnelsApache Spark Side of Funnels
Apache Spark Side of Funnels
 
Analyzing Blockchain Transactions in Apache Spark with Jiri Kremser
Analyzing Blockchain Transactions in Apache Spark with Jiri KremserAnalyzing Blockchain Transactions in Apache Spark with Jiri Kremser
Analyzing Blockchain Transactions in Apache Spark with Jiri Kremser
 
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 Lessons from the Field, Episode II: Applying Best Practices to Your Apache S... Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 
Getting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesGetting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on Kubernetes
 

Similar to New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visualization

Neo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j
 
Introduction to Neo4j and .Net
Introduction to Neo4j and .NetIntroduction to Neo4j and .Net
Introduction to Neo4j and .NetNeo4j
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j
 
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...confluent
 
Introducing Neo4j 3.0
Introducing Neo4j 3.0Introducing Neo4j 3.0
Introducing Neo4j 3.0Neo4j
 
GraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewGraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewNeo4j
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData SolutionsTravis Oliphant
 
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMorpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMartin Junghanns
 
Morpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache SparkMorpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache SparkHenning Kropp
 
Neo4j GraphTalk Oslo - Building Intelligent Solutions with Graphs
Neo4j GraphTalk Oslo - Building Intelligent Solutions with GraphsNeo4j GraphTalk Oslo - Building Intelligent Solutions with Graphs
Neo4j GraphTalk Oslo - Building Intelligent Solutions with GraphsNeo4j
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for GraphsJean Ihm
 
GraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewGraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewNeo4j
 
Neo4j GraphDay Seattle- Sept19- in the enterprise
Neo4j GraphDay Seattle- Sept19-  in the enterpriseNeo4j GraphDay Seattle- Sept19-  in the enterprise
Neo4j GraphDay Seattle- Sept19- in the enterpriseNeo4j
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j
 
A Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptA Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptSanket Shikhar
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Databricks
 
Cloudera Movies Data Science Project On Big Data
Cloudera Movies Data Science Project On Big DataCloudera Movies Data Science Project On Big Data
Cloudera Movies Data Science Project On Big DataAbhishek M Shivalingaiah
 
Making sense of your data
Making sense of your dataMaking sense of your data
Making sense of your dataGerald Muecke
 
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j
 

Similar to New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visualization (20)

Neo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform Overview
 
Introduction to Neo4j and .Net
Introduction to Neo4j and .NetIntroduction to Neo4j and .Net
Introduction to Neo4j and .Net
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
 
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...
Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen &...
 
Introducing Neo4j 3.0
Introducing Neo4j 3.0Introducing Neo4j 3.0
Introducing Neo4j 3.0
 
GraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewGraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform Overview
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData Solutions
 
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMorpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
 
Morpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache SparkMorpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache Spark
 
Neo4j GraphTalk Oslo - Building Intelligent Solutions with Graphs
Neo4j GraphTalk Oslo - Building Intelligent Solutions with GraphsNeo4j GraphTalk Oslo - Building Intelligent Solutions with Graphs
Neo4j GraphTalk Oslo - Building Intelligent Solutions with Graphs
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
 
GraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewGraphTour - Neo4j Database Overview
GraphTour - Neo4j Database Overview
 
Neo4j GraphDay Seattle- Sept19- in the enterprise
Neo4j GraphDay Seattle- Sept19-  in the enterpriseNeo4j GraphDay Seattle- Sept19-  in the enterprise
Neo4j GraphDay Seattle- Sept19- in the enterprise
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You
 
A Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptA Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.ppt
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
 
Cloudera Movies Data Science Project On Big Data
Cloudera Movies Data Science Project On Big DataCloudera Movies Data Science Project On Big Data
Cloudera Movies Data Science Project On Big Data
 
Making sense of your data
Making sense of your dataMaking sense of your data
Making sense of your data
 
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperative
 

More from jexp

Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfjexp
 
Easing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsEasing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsjexp
 
Looming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in JavaLooming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in Javajexp
 
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxGraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxjexp
 
Neo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesNeo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesjexp
 
How Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the DotsHow Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the Dotsjexp
 
The Home Office. Does it really work?
The Home Office. Does it really work?The Home Office. Does it really work?
The Home Office. Does it really work?jexp
 
Polyglot Applications with GraalVM
Polyglot Applications with GraalVMPolyglot Applications with GraalVM
Polyglot Applications with GraalVMjexp
 
Neo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache KafkaNeo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache Kafkajexp
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...jexp
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Editionjexp
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Developmentjexp
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databasesjexp
 
A Game of Data and GraphQL
A Game of Data and GraphQLA Game of Data and GraphQL
A Game of Data and GraphQLjexp
 
Querying Graphs with GraphQL
Querying Graphs with GraphQLQuerying Graphs with GraphQL
Querying Graphs with GraphQLjexp
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Futurejexp
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 
Class graph neo4j and software metrics
Class graph neo4j and software metricsClass graph neo4j and software metrics
Class graph neo4j and software metricsjexp
 
New Neo4j Auto HA Cluster
New Neo4j Auto HA ClusterNew Neo4j Auto HA Cluster
New Neo4j Auto HA Clusterjexp
 
Spring Data Neo4j Intro SpringOne 2012
Spring Data Neo4j Intro SpringOne 2012Spring Data Neo4j Intro SpringOne 2012
Spring Data Neo4j Intro SpringOne 2012jexp
 

More from jexp (20)

Looming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdfLooming Marvelous - Virtual Threads in Java Javaland.pdf
Looming Marvelous - Virtual Threads in Java Javaland.pdf
 
Easing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line toolsEasing the daily grind with the awesome JDK command line tools
Easing the daily grind with the awesome JDK command line tools
 
Looming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in JavaLooming Marvelous - Virtual Threads in Java
Looming Marvelous - Virtual Threads in Java
 
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptxGraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
GraphConnect 2022 - Top 10 Cypher Tuning Tips & Tricks.pptx
 
Neo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFilesNeo4j Connector Apache Spark FiNCENFiles
Neo4j Connector Apache Spark FiNCENFiles
 
How Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the DotsHow Graphs Help Investigative Journalists to Connect the Dots
How Graphs Help Investigative Journalists to Connect the Dots
 
The Home Office. Does it really work?
The Home Office. Does it really work?The Home Office. Does it really work?
The Home Office. Does it really work?
 
Polyglot Applications with GraalVM
Polyglot Applications with GraalVMPolyglot Applications with GraalVM
Polyglot Applications with GraalVM
 
Neo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache KafkaNeo4j Graph Streaming Services with Apache Kafka
Neo4j Graph Streaming Services with Apache Kafka
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Edition
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Development
 
A whirlwind tour of graph databases
A whirlwind tour of graph databasesA whirlwind tour of graph databases
A whirlwind tour of graph databases
 
A Game of Data and GraphQL
A Game of Data and GraphQLA Game of Data and GraphQL
A Game of Data and GraphQL
 
Querying Graphs with GraphQL
Querying Graphs with GraphQLQuerying Graphs with GraphQL
Querying Graphs with GraphQL
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 
Class graph neo4j and software metrics
Class graph neo4j and software metricsClass graph neo4j and software metrics
Class graph neo4j and software metrics
 
New Neo4j Auto HA Cluster
New Neo4j Auto HA ClusterNew Neo4j Auto HA Cluster
New Neo4j Auto HA Cluster
 
Spring Data Neo4j Intro SpringOne 2012
Spring Data Neo4j Intro SpringOne 2012Spring Data Neo4j Intro SpringOne 2012
Spring Data Neo4j Intro SpringOne 2012
 

Recently uploaded

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visualization

  • 1. Release Demo: Neo4j 3.4 & Bloom Michael Hunger (@mesirii) Developer Relations Neo4j CPH- June 2018 3
  • 2. Graph Transactions Graph Analytics Data Integration Development & Admin Analytics Tooling Drivers & APIs Discovery & Visualization Developers Admins Applications Business Users Data Analysts Data Scientists Enterprise Data Hub Native Graph Platform: Tools for Many Users
  • 3. Neo4j: Enabling the Connected Enterprise Consumers of Connected Data AI & Graph Analytics • Sentiment analysis • Customer segmentation • Machine learning • Cognitive computing • Community detection Transactional Graphs • Fraud detection • Real-time recommendations • Network and IT operations management • Knowledge Graphs • Master Data Management Discovery & Visualization • Fraud detection • Network and IT operations • Product information management • Risk and portfolio analysisData Scientists Business Users Applications
  • 4. Neo4j 3.3 and 3.4 Latest Innovations
  • 6. Development & Administration Analytics Tooling Graph Analytics Graph Transactions Data Integration Discovery & VisualizationDrivers & APIs AI Neo4j Database 3.3 • 50% faster writes • Real-time transactions and traversal applications Review: The Neo4j Graph Platform, Fall 2017 Neo4j Desktop, the developers’ mission control console • Free, registered local license of Enterprise Edition • APOC library installer • Algorithm library installer Data Integration • Neo4j ETL reveals RDBMS hidden relationships upon importing to graph • Data Importer for fast data ingestion Graph Analytics • Graph Algorithms support Community Detection, Centrality and Path Finding • Cypher for Apache Spark from openCypher.org supports graph composition (sub-graphs) and algorithm chaining Discovery & Visualization • Integration with popular visualization vendors • Neo4j Browser and custom visualizations allow graph exploration Bolt with GraphQL and more • Secure, Causal Clustering • High-speed analytic processing • On-prem, Docker & cloud delivery
  • 7. “Least Connected” load balancing Faster & more memory efficient runtime Batch generation of IDs Schema operations now take local locks Page cache metadata moved off heap Native GB+ Tree numeric indexes Bulk importer paging & memory improvements Dynamically reload config settings without restarting Neo4j Admin & Config Storage & Indexing Memory Management Kernel & Transactions Cypher Engine Drivers & Bolt Protocol Neo4j 3.3 Performance Improvements
  • 8. Concurrent/Transactional Write Performance 25000 20000 15000 10000 5000 0 Neo4j 2.2 Neo4j 2.3 Neo4j 3.0 Neo4j 3.1 Neo4j 3.2 Neo4j 3.3 69% 31% 59% 38% 55% (Simulates Real-World Workloads)
  • 9. ` RR RR RR RRRRRR READ REPLICAS London ` C C RR RR RR RRRRRR READ REPLICAS New York Multi-Data Center Clustering with Secure Transit
  • 10. Neo4j Desktop 1.0 • Mission control for developers • Connect to both local and remote Neo4j servers • Free with registration • Includes development license for Neo4j Enterprise Edition • Graph Apps • Keeps you up to date with latest versions, plugins, etc. • https://neo4j.com/download
  • 11. Finds the optimal path or evaluates route availability and quality • Single Source Short Path • All-Nodes SSP • Parallel paths Evaluates how a group is clustered or partitioned • Label Propagation • Union Find • Strongly Connected Components • Louvain • Triangle-Count Determines the importance of distinct nodes in the network • PageRank • Betweeness • Closeness • Degree Data Science Algorithms
  • 12. Project Goals • high performance graph algorithms • user friendly (procedures) • support graph projections • augment OLTP with OLAP • integrate efficiently with live Neo4j database (read, write, Cypher) • common Graph API to write your own
  • 13. Usage 1. Call as Cypher procedure
  • 14. Usage 1. Call as Cypher procedure 2. Pass in specification (Label, Prop, Query) and configuration
  • 15. Usage 1. Call as Cypher procedure 2. Pass in specification (Label, Prop, Query) and configuration 3. ~.stream variant returns (a lot) of results CALL algo.<name>.stream('Label','TYPE',{conf}) YIELD nodeId, score
  • 16. Usage 1. Call as Cypher procedure 2. Pass in specification (Label, Prop, Query) and configuration 3. ~.stream variant returns (a lot) of results CALL algo.<name>.stream('Label','TYPE',{conf}) YIELD nodeId, score 1. non-stream variant writes results to graph and returns statistics CALL algo.<name>('Label','TYPE',{conf});
  • 17. Usage 1. Call as Cypher procedure 2. Pass in specification (Label, Prop, Query) and configuration 3. ~.stream variant returns (a lot) of results CALL algo.<name>.stream('Label','TYPE',{conf}) YIELD nodeId, score 1. non-stream variant writes results to graph and returns statistics CALL algo.<name>('Label','TYPE',{conf}); 1. Cypher projection: pass in Cypher for node and relationship lists CALL algo.<name>( 'MATCH ... RETURN id(n)', 'MATCH (n)-->(m) RETURN id(n), id(m)', { graph:'cypher' } )
  • 18. Architecture 1. Load Data in parallel from Neo4j 2. Store in efficient data structure 3. Run graph algorithm in parallel using Graph API 4. Write data back in parallel Neo4j 1, 2 Algorithm Datastructures 4 3 Graph API
  • 19. TheAlgorithms Centralities • PageRank (baseline) • Betweeness • Closeness • Degree
  • 20. Example: PageRank CALL algo.pageRank('Page', 'LINKS', { iterations:20, dampingFactor:0.85, write: true, writeProperty:"pagerank"} ) YIELD nodes, iterations, loadMillis, computeMillis, writeMillis, dampingFactor, write, writeProperty
  • 21. Clustering • Label Propagation • Louvain (Phase2) • Union Find / WCC • Strongly Connected Components • Triangle- Count/Clustering CoeffTheAlgorithms
  • 22. CALL algo.unionFind('User', 'FRIEND', { write:true, partitionProperty:'partition'} ) YIELD nodes, setCount, loadMillis, computeMillis, writeMillis Example: UnionFind (CC)
  • 23. Path-Expansion / Traversal • Single Short Path • All-Nodes SSP • Parallel BFS / DFS TheAlgorithms
  • 24. MATCH(start:Location {name:'A'}) CALL algo.deltaStepping.stream(start, 'cost', 3.0) YIELD nodeId, distance RETURN nodeId, distance ORDER LIMIT 20 Example: Delta Stepping
  • 25. Reading Material • Thanks to Amy Hodler • 13 Top Resources on Graph Theory • neo4j.com/blog/ top-13-resources-graph-theory-algorithms/
  • 26. GraphAware NLP Comprehensive Suite of NLP Tools for Neo4j
  • 29. ● Import Trump Twitter Archive ● Extract Hashtags and Mentions ● Some Analytics Queries ● Use NLP (Caution) ● for Entities and Sentiment ● Some more queries Trump is Dooming the World one Tweet(storm) at a Time https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
  • 30. WITH [ archive.com/data/realdonaldtrump/2018.json',..] as urls UNWIND urls AS url CALL apoc.load.json(url) YIELD value as t CREATE (tweet:Tweet { id_str: t.id_str, text: t.text, created_at: t.created_at, retweets: t.retweet_count, favorites: t.favorite_count, retweet: t.is_retweet, reply: t.in_reply_to_user_id_str, source: t.source }) RETURN count(t); Importing Data https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
  • 31. MATCH (t:Tweet) WHERE t.text contains '#' WITH t, apoc.text.regexGroups(t.text, "#([w_]+)") as matches UNWIND matches as match WITH t, match[1] as hashtag MERGE (h:Tag { name: toUpper(hashtag) }) ON CREATE SET h.text = hashtag MERGE (h)<-[:TAGGED]-(t) RETURN count(h); Importing Data - Hashtags https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
  • 32. MATCH (t:Tweet) WHERE t.text CONTAINS '@' WITH t, apoc.text.regexGroups(t.text, "@([w_]+)") as matches UNWIND matches as match WITH t, match[1] as mention MERGE (u:User { name: toLower(mention) }) ON CREATE SET u.text = mention MERGE (u)<-[:MENTIONED]-(t) RETURN count(u); Importing Data - Mentions https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
  • 33. MATCH (tag:Tag)<-[:TAGGED]-(tw) RETURN tag.name, count(*) as freq ORDER BY freq desc LIMIT 10; MATCH (u:User)<-[:MENTIONED]-(tw) RETURN u.name, count(*) as freq ORDER BY freq desc LIMIT 10; Query Data – Tags / Mentions https://medium.com/@david.allen_3172/using-nlp-in-neo4j-ac40bc92196f
  • 43. Support for Time and Date +
  • 44. • property storage: local date and time, date & time with timezones • durations • indexed • range scans: $before < event.time < $after • lots of possible datetime formats including weeks, quarters • ordering • Events, Time Tracking, History, Auditing, ... DateTime https://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/
  • 45. DateTime Types & Functions Support date Support time Support timezone Date x Time x x LocalTime x DateTime x x x LocalDateTime x x
  • 46. DateTime Types & Functions date() time.transaction() localtime.statement() datetime.realtime() datetime.realtime('Europe/Berlin') "db.temporal.timezone" Current date, using statement clock Current time, using transaction clock Current local time, using statement clock Current date and time, using realtime clock This datetime instance will have the default timezone of the database Current date and time, using realtime clock, in Europe/Berlin timezone Neo4j setting to configure default timezone*, taking a String, e.g. "Europe/Berlin".
  • 47. DateTime Types & Functions date("2018-01-01") localtime("12:00:01.003") time("12:00:01.003+01:00") datetime("2018-01-01T12:00:01.003[Europe/Berlin]")
  • 48. DateTime Types & Functions date({year: 2018, month: 1, day: 1}) localtime({hour: 12, minute: 0, second 1, millisecond: 3}) time({hour: 12, minute: 0, second 1, millisecond: 3, timezone: '+01:00'}) datetime({year: 2018, month: 1, day: 1, hour: 12, minute: 0, second 1, millisecond: 3, timezone: 'Europe/Berlin'})
  • 49. DateTime Types & Functions - Duration a = localdatetime("2018-01-01T00:00") b = localdatetime("2018-02-02T01:00") duration.between(a, b) -> (1M, 1D, 3600s, 0ns) duration.inMonths(a, b) -> (1M, 0D, 0s, 0ns) duration.inDays(a, b) -> (0M, 32D, 0s, 0ns) duration.inSeconds(a, b) -> (0M, 0D, 2768400s, 0ns)
  • 50. DateTime Types & Functions - Duration a = localdatetime("2018-01-01T00:00") b = localdatetime("2018-02-02T01:00") duration.between(a, b) -> (1M, 1D, 3600s, 0ns) duration.inMonths(a, b) -> (1M, 0D, 0s, 0ns) duration.inDays(a, b) -> (0M, 32D, 0s, 0ns) duration.inSeconds(a, b) -> (0M, 0D, 2768400s, 0ns) // Maths instant + duration instant – duration duration * number duration / number
  • 51. DateTime Types & Functions - toString toString Date 2018-05-07 Time 15:37:20.05+02:00 LocalTime 15:37:20.05 DateTime 2018-05-07T15:37:20.05+02:00[Europe/Stockholm] LocalDateTime 2018-05-07T15:37:20.05 Duration P12Y5M14DT16H13M10.01S Prints all temporal types in a format that can be parsed back
  • 52. DateTime Types & Functions - Pitfalls • Don’t compare Durations. Add them to the same instant and compare the results instead. date + dur < date + dur2 • Don’t subtract instants. Use duration.between. duration.between(date1, date2) • Keep predicates simple to leverage indexing. MATCH (n), (m) WHERE datetime({date: n.date, time: m.time}) = dt MATCH (n), (m) WHERE n.date = date(dt) AND m.time = time(dt)
  • 53. Support for Geospatial Search + medium.com/neo4j/whats-new-in-neo4j-spatial-features-586d69cda8d0
  • 54. Geospatial Graph Queries – Coord Systems Explicit CRS: • point({x:1, y:2, z:3, crs:'wgs-84-3d'}) • point({x:1, y:2, z:3, srid:4979}) Inferred CRS: • point({x:1, y:2}) => 'cartesian' • point({x:1, y:2, z:3}) => 'cartesian-3d' • point({latitude:2, longitude:1}) => 'wgs-84' • point({latitude:2, longitude:1, height:1000}) => 'wgs-84-3d'
  • 55. Geospatial Graph Queries – Index Neo4j 3.2 introduced the GBPTree: • Lock-free writes (high insert performance) • Good read performance (comparable) Neo4j 3.3 introduced the NativeSchemaNumberIndex: • And the FusionSchemaIndex • Allows multiple types to exist in one logical index Neo4j 3.4 Spatial Index / Date Time Index • Different indexes for coordinate system • Hilbert Space Filling Curves
  • 61. Neo4j 3.3 Neo4j 3.4 70% Faster 250 500 0 750 1000 Neo4j 3.2 Reads – Neo4j Enterprise Cypher Runtime 10% Faster Mixed Workload Read Benchmark
  • 62. Supercharging Graph Writes One Component: 80% of transactional write overhead (!!!) ?QM ,. Index Insertion
  • 63.  ACID  Optimized for graph  Fast Reads  ~10x Faster Writes Neo4j GB+ Tree Index Label Groupings (Neo4j 3.2) Numerics (Neo4j 3.3) Strings (Neo4j 3.4) QM ,. External Index Provider Native Neo4j Index Supercharging Graph Writes
  • 64. 68 Writes with Native String Indexes 500% improvement Neo4j 3.4 RC1 Performance
  • 66. Multi-Clustering Support for Global Internet Apps Horizontally partition graph by domain (country, product, customer, data center) 70 Multi-tenancy Geo Partitioning Write Scaling Driver Support sa cluster uk cluster us_east cluster hk cluster
  • 68. LDAP & Active Directory User & Roles Procedure Access Controls Security: Property Blacklisting added Kerberos SSO Certs Intra-Cluster Encryption Security Event Logging TLS Wire Encryption SSN: “043-56-8834” 0000“043-56-8834” Property Blacklisting
  • 70. Rolling Upgrades 74 3.4 3.4 3.44.0 4.0 4.0 Auto Cache Reheating Upgrade to new versions with zero downtime Store upgrades may require downtime but can be done subsequently For Restarts, Restores, and Cluster Expansion
  • 71. 75 3.4 Features By Edition Community Edition Enterprise Edition Date / Time data types ■ ■ 3D Geospatial data types ■ ■ Performance Improvements Native String Indexes – up to 5x faster writes ■ ■ 2x faster backups ■ Improved Cypher runtime Fast Faster 100B+ object bulk importer ■ Resumable Enterprise Scaling & Administration Multi-Clustering (partitioning of clusters) ■ Automatic cache warming ■ Rolling upgrades ■ Resumable copy/restore cluster member ■ New diagnostic metrics and support tools ■ Security: Property blacklisting by user/role ■
  • 72. Development & Administration Analytics Tooling Graph Analytics Graph Transactions Data Integration Discovery & VisualizationDrivers & APIs AI Neo4j Database 3.4 • 70% faster Cypher • Native String Indexes (up to 5x faster writes) • 100B+ bulk importer The Neo4j Graph Platform, Summer 2018 Improved Admin Experience • Rolling upgrades • 2X faster backups • Cache Warming on startup • Improved diagnostics Morpheus for Apache Spark • Graph analytics in the data lake • In-memory Spark graphs from Apache Hadoop, Hive, Gremlin and Spark • Save graphs into Neo4j • High-speed data exchange between Neo4j & data lake • Progressive analysis using named graphs Graph Data Science • High speed graph algorithms Neo4j Bloom • New graph illustration and communication tool for non- technical users • Explore and edit graph • Search-based • Create storyboards • Foundation for graph data discovery • Integrated with graph platform Multi-Cluster routing built into Bolt drivers • Date/Time data type • 3-D Geospatial search • Secure, Horizontal Multi-Clustering • Property Blacklisting Security
  • 73. Introducing A Brand New Graph Exploration Product
  • 75. Neo4j Bloom 79 • High fidelity • Scene navigation • Property views • Search suggestions • Saved phrase history • Property editor • Schema perspectives • Bloom chart type • Visualize • Communicate • Discover • Navigate • Isolate • Edit • Share
  • 76. 80 Neo4j Bloom Features • Prompted Search • Property Browser & editor • Category icons and color scheme • Pan, Zoom & Select
  • 77. Advancing the Platform 81 Native graph architecture extends scale, use cases and performance • Neo4j Database 3.4 Shipping May, 2018 New products for new users • Neo4j Bloom visualization & storyboard tool for business Shipping in June, 2018