Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg

Stéphane Fréchette
Stéphane FréchetteData & Business Intelligence Solutions Architect | Consultant | Big Data | NoSQL | Data Science | Data Platform MVP
Graph Databases for SQL Server 
Professionals 
Stéphane Fréchette
Who am I? 
My name is Stéphane Fréchette 
SQL Server MVP | Consultant | Speaker | Database & BI Architect | NoSQL. 
Drums, good food and fine wine. Founder @ukubu, @GatineauOuverte, 
@TEDxGatineau 
I have a passion for architecting, designing and building solutions that 
matter. 
Twitter: @sfrechette 
Blog: stephanefrechette.com 
Email: stephanefrechette@ukubu.com 
2 | 11/25/2014 | SQLSaturday Winnipeg #350
Thanks to Our Sponsors! 
Gold 
Silver 
Bronze
Session Outline 
 What is a Graph? 
 What is Neo4j? 
 Data Modeling – The Property Graph 
 Cypher Query Language 
 Importing Data… 
 Use Cases 
 Demos 
 Resources 
4 | 11/25/2014 | SQLSaturday Winnipeg #350
What is a Graph? 
5 | 11/25/2014 | SQLSaturday Winnipeg #350
Are these Graphs? 
6 | 11/25/2014 | SQLSaturday Winnipeg #350
This is a Graph 
Node 
Relationship 
A Property Graph 
7 | 11/25/2014 | SQLSaturday Winnipeg #350
Organization Project Graph 
8 | 11/25/2014 | SQLSaturday Winnipeg #350
Twitter Social Graph 
9 | 11/25/2014 | SQLSaturday Winnipeg #350
What is Neo4j? 
An open-source graph database by Neo 
Technology. Neo4j stores data in nodes 
connected by directed, typed 
relationships with properties on both, 
also know as a Property Graph 
 Fully ACID compliant 
 Massively scalable, up to several billion 
nodes/relationships/properties 
 Highly-available, when distributed across 
multiple machines 
 Accessible by a convenient REST 
interface or an object-oriented Java API 
11/10 | 25/2014 | SQLSaturday Winnipeg #350
Data Modeling 
From SQL Server to Graph 
Property Graph 
11 | 11/25/2014 | SQLSaturday Winnipeg #350
Example: Meetup Data In SQL Server 
Member MeetupOrganizer MeetupMember Meetup 
ID Member 
1 Daniel 
2 Stephane 
3 John 
4 Randy 
ID Name 
1 Ottawa SQL Server User 
Group 
2 Ottawa JavaScript 
3 Ottawa Visio User Group 
4 Ottawa Tableau User Group 
5 Dirty Dancing Ottawa 
MemberID MeetupID 
2 1 
1 2 
3 3 
2 4 
3 5 
MemberID MeetupID 
3 1 
3 2 
4 2 
4 4 
1 5 
12 | 11/25/2014 | SQLSaturday Winnipeg #350
Example: Meetup Data In a Graph Member Meetup 
name: ‘Stephane’ 
name: ‘Ottawa Tableau User Group’ 
name: ‘Ottawa SQL Server User 
Group’ 
name: ‘John’ 
name: ‘Ottawa JavaScript’ 
name: ‘Ottawa Visio User Group’ 
name: ‘Dirty Dancing Ottawa’ 
name: ‘Randy’ 
name: ‘Daniel’ 
13 | 11/25/2014 | SQLSaturday Winnipeg #350
Cypher Query Language 
Cypher is a declarative graph query language that allows 
for expressive and efficient querying and updating of the 
graph store 
 Pattern-matching 
 Declarative: what to retrieve, not how to retrieve it 
 Inspired from other known Language (SQL, SPARQL, Haskell, Python) 
 Aggregation, Ordering, Limit 
 Update the Graph 
14 | 11/25/2014 | SQLSaturday Winnipeg #350
Cypher and T-SQL 
Cypher also has a number of keywords that have a direct 
equivalence with SQL which makes it a curiously familiar 
language 
 WHERE 
 ORDER BY 
 LIMIT 
 SUM, COUNT, STDEVP, MIN, MAX etc… 
 LTRIM, UPPER, LOWER, REPLACE, LEFT, RIGHT, SUBSTRING 
 DISTINCT 
 CASE (SQL Server Pros) – [:WILL_LOVE] -> (Cypher) 
15 | 11/25/2014 | SQLSaturday Winnipeg #350
Cypher - Meetup 
16 | 11/25/2014 | SQLSaturday Winnipeg #350
Neo4j Browser 
11/17 | 25/2014 | SQLSaturday Winnipeg #350
Demo 
(let’s query some data…) 
18 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing Data… 
19 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing Data… 
Some important considerations… 
Different import scenarios 
 Dataset size: 1000s, 100000s, 10000000s 
 Dataset format (source): Database, File (CSV, Spreadsheet, GraphML, Geoff), 
Service, Other 
 Import type: Initial Bulk Load, Incremental Load, Initial Bulk Load + Incremental Load 
Different import tools 
 Spreadsheet based 
 Neo4j-shell based: (Cypher, neo4j-shell-tools, Cypher LOAD CSV) 
 Command-line based: Batch Importer 
 Neo4j Brower based 
 ETL Tools: (Talend, Mulesoft, Pentaho Kettle) 
 Custom software: (Java API, REST API, Spring Data Neo4j) 
20 | 11/25/2014 | SQLSaturday Winnipeg #350
Many different mappings 
Import 
Scenarios 
Import 
Tools 
Not always clear what you should be using 
Depends on your skillsets, dataset size… (lots of other stuff) 
Choose wisely! 
21 | 11/25/2014 | SQLSaturday Winnipeg #350
Demo 
(walkthrough on importing data…) 
22 | 11/25/2014 | SQLSaturday Winnipeg #350
The Sample Dataset 
23 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using Spreadsheets 
Very small size datasets < 1000, easy to use 
Format data in 
spreadsheet 
Generate Cypher 
statements with 
formulas 
Copy and Execute 
Cypher in Neo4j 
browser 
24 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using Spreadsheets 
25 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using neo4j-shell-tools 
Small to medium size datasets 
https://github.com/jexp/neo4j-shell-tools 
Format data in CSV 
files 
Create import-cypher 
commands 
for 
neo4j-shell-tools 
Execute commands 
from neo4j-shell 
26 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using neo4j-shell-tools 
27 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using LOAD CSV 
Native Cypher 
Format data in 
CSV files 
Create 
“LOAD CSV” 
commands 
Execute 
command from 
neo4j-shell or 
browser 
Additional 
“cleanup” for 
Labels and 
RelTypes 
28 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using LOAD CSV 
29 | 11/25/2014 | SQLSaturday Winnipeg #350
Importing using Batch Importer 
Non-transactional import, suited for very very large datasets 
Format data in 
TSV files 
Execute Batch 
Import 
command 
Copy store 
files to Neo4j 
Server 
directory 
Start Neo4j 
Server with 
generated store 
files 
30 | 11/25/2014 | SQLSaturday Winnipeg #350
Use Cases 
Principal uses of Graph Database include: 
 Network and Data Center Management 
(Queries: Impact Analysis, Root Cause Analysis, Quality-of-Service Mapping, Asset Management) 
 Authorization and Access 
(Queries : Access Management, Interconnected Group Organization, Provenance) 
 Social 
(Queries : Friend Recommendations, Sharing & Collaboration, Influencer Analysis) 
 Geo 
(Queries : Routing, Logistics, Capacity Planning) 
 Recommendations 
(Queries : Product, Social, Service, and Professional Recommendations) 
 Fraud Detection 
http://www.neotechnology.com/neo4j-use-cases/ 
31 | 11/25/2014 | SQLSaturday Winnipeg #350
Summary 
(graphs)-[:ARE]->(everywhere) 
32 | 11/25/2014 | SQLSaturday Winnipeg #350
Resources 
 Neo Technology http://www.neotechnology.com/ 
 Neoj.org (Learn, Develop, Downloads,…) 
http://www.neo4j.org/ 
 Neo4j on Vimeo http://vimeo.com/neo4j 
 Neo4j on SlideShare http://www.slideshare.net/neo4j 
 Neo4j on Github https://github.com/neo4j 
 Neo4j Cypher Cheat Sheet http://docs.neo4j.org/refcard/2.1/ 
 Neo4j Graph Database as a Service 
http://www.graphenedb.com/ 
 Linkurious – The easiest way to explore graph databases 
http://linkurio.us/ 
 KeyLines- Visualize dynamic networks http://keylines.com/ 
 Experiments with NEO4J: Using a graph database as a SQL 
Server metadata hub http://bit.ly/V2PrxN 
 Kenny Bastani http://www.kennybastani.com/ 
 Rik Van Bruggen http://blog.bruggen.com/ 
 Max de Marzi http://maxdemarzi.com/ 
 Better Software Development http://jexp.de/blog/ 
 Graph Databases (Free Book) http://graphdatabases.com/ 
 Neo4j GraphGist http://gist.neo4j.org/ 
 GraphConnect Conference http://graphconnect.com/ 
 Titan – Distributed Graph Database 
https://thinkaurelius.github.io/titan/ 
 InfiniteGraph http://www.infinitegraph.com/ 
 OrientDB http://www.orientechnologies.com/ 
 Cayley by Google https://github.com/google/cayley 
33 | 11/25/2014 | SQLSaturday Winnipeg #350
What Questions Do You 
Have? 
34 | 11/25/2014 | SQLSaturday Winnipeg #350
Thank You 
For attending this session 
35 | 11/25/2014 | SQLSaturday Winnipeg #350
1 of 35

Recommended

Power Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbe by
Power Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbePower Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbe
Power Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbeChirag Patel
2.4K views99 slides
Introduction to SQL++ for Big Data: Same Language, More Power by
Introduction to SQL++ for Big Data: Same Language, More PowerIntroduction to SQL++ for Big Data: Same Language, More Power
Introduction to SQL++ for Big Data: Same Language, More PowerAll Things Open
100 views60 slides
What Data-Driven Websites Are and How They Work by
What Data-Driven Websites Are and How They WorkWhat Data-Driven Websites Are and How They Work
What Data-Driven Websites Are and How They WorkTessa Mero
1.7K views22 slides
Ensuring Successful Office 365 Tenant to Tenant Migration SPS Cambridge 2017... by
Ensuring Successful Office 365 Tenant to Tenant Migration  SPS Cambridge 2017...Ensuring Successful Office 365 Tenant to Tenant Migration  SPS Cambridge 2017...
Ensuring Successful Office 365 Tenant to Tenant Migration SPS Cambridge 2017...Chirag Patel
675 views20 slides
Semantic web conference_integration by
Semantic web conference_integrationSemantic web conference_integration
Semantic web conference_integrationSTI Innsbruck
450 views10 slides
SPSVienna Office 365 Tenant to Tenant Migration - a complete Survial Guide by
SPSVienna Office 365 Tenant to Tenant Migration - a complete Survial GuideSPSVienna Office 365 Tenant to Tenant Migration - a complete Survial Guide
SPSVienna Office 365 Tenant to Tenant Migration - a complete Survial GuideStephan Bisser
586 views26 slides

More Related Content

What's hot

How to Join the "1M JIRA Issues" Club by
How to Join the "1M JIRA Issues" ClubHow to Join the "1M JIRA Issues" Club
How to Join the "1M JIRA Issues" ClubAtlassian
3.2K views50 slides
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation) by
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)Robert Metzger
945 views20 slides
How does SharePoint access data by
How does SharePoint access dataHow does SharePoint access data
How does SharePoint access dataAlan Eardley
53 views26 slides
BizTalk Server 2016 Feature Pack 1 by
BizTalk Server 2016 Feature Pack 1BizTalk Server 2016 Feature Pack 1
BizTalk Server 2016 Feature Pack 1BizTalk360
490 views15 slides
Digital Publishing Made Easy with the OSCI Toolkit by
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI ToolkitKyle Jaebker
649 views36 slides
PnP Monthly Community Call - April 2018 by
PnP Monthly Community Call - April 2018PnP Monthly Community Call - April 2018
PnP Monthly Community Call - April 2018SharePoint Patterns and Practices
2.1K views26 slides

What's hot(20)

How to Join the "1M JIRA Issues" Club by Atlassian
How to Join the "1M JIRA Issues" ClubHow to Join the "1M JIRA Issues" Club
How to Join the "1M JIRA Issues" Club
Atlassian3.2K views
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation) by Robert Metzger
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
Robert Metzger945 views
How does SharePoint access data by Alan Eardley
How does SharePoint access dataHow does SharePoint access data
How does SharePoint access data
Alan Eardley53 views
BizTalk Server 2016 Feature Pack 1 by BizTalk360
BizTalk Server 2016 Feature Pack 1BizTalk Server 2016 Feature Pack 1
BizTalk Server 2016 Feature Pack 1
BizTalk360490 views
Digital Publishing Made Easy with the OSCI Toolkit by Kyle Jaebker
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI Toolkit
Kyle Jaebker649 views
Cloud First: Be Prepared by Alan Eardley
Cloud First: Be PreparedCloud First: Be Prepared
Cloud First: Be Prepared
Alan Eardley192 views
SharePoint Upgrade or Migration, or is it both? - SPS London 2016 by Chirag Patel
SharePoint Upgrade or Migration, or is it both? - SPS London 2016SharePoint Upgrade or Migration, or is it both? - SPS London 2016
SharePoint Upgrade or Migration, or is it both? - SPS London 2016
Chirag Patel1.2K views
Design for scale by Doug Lampe
Design for scaleDesign for scale
Design for scale
Doug Lampe301 views
Ensuring Successful Office 365 Tenant to Tenant Migration Collab365 Global Co... by Chirag Patel
Ensuring Successful Office 365 Tenant to Tenant Migration Collab365 Global Co...Ensuring Successful Office 365 Tenant to Tenant Migration Collab365 Global Co...
Ensuring Successful Office 365 Tenant to Tenant Migration Collab365 Global Co...
Chirag Patel527 views
Swiss pass chapter deck - zurich - april 2011 by Charley Hanania
Swiss pass chapter deck - zurich - april 2011Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011
Charley Hanania403 views
Workflows in SharePoint 2013 by Portiva
Workflows in SharePoint 2013Workflows in SharePoint 2013
Workflows in SharePoint 2013
Portiva904 views
Aprendamos DAX - José Ahias López Portillo by SpanishPASSVC
Aprendamos DAX - José Ahias López PortilloAprendamos DAX - José Ahias López Portillo
Aprendamos DAX - José Ahias López Portillo
SpanishPASSVC584 views
Apache Flink First Half of 2015 Community Update by Robert Metzger
Apache Flink First Half of 2015 Community UpdateApache Flink First Half of 2015 Community Update
Apache Flink First Half of 2015 Community Update
Robert Metzger850 views
SharePoint Saturday STL: SharePoint Powershell Admins by Kenneth Maglio
SharePoint Saturday STL: SharePoint Powershell AdminsSharePoint Saturday STL: SharePoint Powershell Admins
SharePoint Saturday STL: SharePoint Powershell Admins
Kenneth Maglio399 views
Icinga Camp Bangalore - Welcome by Icinga
Icinga Camp Bangalore - WelcomeIcinga Camp Bangalore - Welcome
Icinga Camp Bangalore - Welcome
Icinga479 views
What's new in SharePoint Online - London SharePoint User Group March 2018 by Chirag Patel
What's new in SharePoint Online - London SharePoint User Group March 2018What's new in SharePoint Online - London SharePoint User Group March 2018
What's new in SharePoint Online - London SharePoint User Group March 2018
Chirag Patel562 views

Viewers also liked

NoSQL Now! Introduction to Graph Databases by
NoSQL Now! Introduction to Graph DatabasesNoSQL Now! Introduction to Graph Databases
NoSQL Now! Introduction to Graph Databasesakollegger
2.2K views130 slides
20150624 Belgian GraphDB meetup at Ordina by
20150624 Belgian GraphDB meetup at Ordina20150624 Belgian GraphDB meetup at Ordina
20150624 Belgian GraphDB meetup at OrdinaRik Van Bruggen
1.4K views71 slides
A case-for-graph-db by
A case-for-graph-dbA case-for-graph-db
A case-for-graph-dbDhaval Dalal
2.1K views40 slides
La bi, l'informatique décisionnelle et les graphes by
La bi, l'informatique décisionnelle et les graphesLa bi, l'informatique décisionnelle et les graphes
La bi, l'informatique décisionnelle et les graphesCédric Fauvet
1.2K views45 slides
Introduction à Neo4j - La base de données de graphes - 2016 by
Introduction à Neo4j - La base de données de graphes - 2016Introduction à Neo4j - La base de données de graphes - 2016
Introduction à Neo4j - La base de données de graphes - 2016Cédric Fauvet
1K views44 slides
Intro to Neo4j - Nicole White by
Intro to Neo4j - Nicole WhiteIntro to Neo4j - Nicole White
Intro to Neo4j - Nicole WhiteNeo4j
4.2K views38 slides

Viewers also liked(20)

NoSQL Now! Introduction to Graph Databases by akollegger
NoSQL Now! Introduction to Graph DatabasesNoSQL Now! Introduction to Graph Databases
NoSQL Now! Introduction to Graph Databases
akollegger2.2K views
20150624 Belgian GraphDB meetup at Ordina by Rik Van Bruggen
20150624 Belgian GraphDB meetup at Ordina20150624 Belgian GraphDB meetup at Ordina
20150624 Belgian GraphDB meetup at Ordina
Rik Van Bruggen1.4K views
A case-for-graph-db by Dhaval Dalal
A case-for-graph-dbA case-for-graph-db
A case-for-graph-db
Dhaval Dalal2.1K views
La bi, l'informatique décisionnelle et les graphes by Cédric Fauvet
La bi, l'informatique décisionnelle et les graphesLa bi, l'informatique décisionnelle et les graphes
La bi, l'informatique décisionnelle et les graphes
Cédric Fauvet1.2K views
Introduction à Neo4j - La base de données de graphes - 2016 by Cédric Fauvet
Introduction à Neo4j - La base de données de graphes - 2016Introduction à Neo4j - La base de données de graphes - 2016
Introduction à Neo4j - La base de données de graphes - 2016
Cédric Fauvet1K views
Intro to Neo4j - Nicole White by Neo4j
Intro to Neo4j - Nicole WhiteIntro to Neo4j - Nicole White
Intro to Neo4j - Nicole White
Neo4j4.2K views
Neo4j -- or why graph dbs kick ass by Emil Eifrem
Neo4j -- or why graph dbs kick assNeo4j -- or why graph dbs kick ass
Neo4j -- or why graph dbs kick ass
Emil Eifrem7.9K views
Intro to Cypher by jexp
Intro to CypherIntro to Cypher
Intro to Cypher
jexp5.7K views
Intro to Neo4j or why insurances should love graphs by Peter Neubauer
Intro to Neo4j or why insurances should love graphsIntro to Neo4j or why insurances should love graphs
Intro to Neo4j or why insurances should love graphs
Peter Neubauer5.2K views
Neo4j - Cas d'usages pour votre métier by Neo4j
Neo4j - Cas d'usages pour votre métierNeo4j - Cas d'usages pour votre métier
Neo4j - Cas d'usages pour votre métier
Neo4j2.1K views
Immersion Musicale avec Neo4j by Neo4j
Immersion Musicale avec Neo4jImmersion Musicale avec Neo4j
Immersion Musicale avec Neo4j
Neo4j1.2K views
OrientDB vs Neo4j - and an introduction to NoSQL databases by Curtis Mosters
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databases
Curtis Mosters9.8K views
RDBMS to Graphs by Neo4j
RDBMS to GraphsRDBMS to Graphs
RDBMS to Graphs
Neo4j1.7K views
The Graph Traversal Programming Pattern by Marko Rodriguez
The Graph Traversal Programming PatternThe Graph Traversal Programming Pattern
The Graph Traversal Programming Pattern
Marko Rodriguez56.3K views
Recommandations avec Neo4j et le GraphAware Recommendation Engine by Christophe Willemsen
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation Engine
Intro to Neo4j presentation by jexp
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
jexp13.4K views
Introduction to Graph databases and Neo4j (by Stefan Armbruster) by barcelonajug
Introduction to Graph databases and Neo4j (by Stefan Armbruster)Introduction to Graph databases and Neo4j (by Stefan Armbruster)
Introduction to Graph databases and Neo4j (by Stefan Armbruster)
barcelonajug4.3K views
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH) by David Fombella Pombal
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH) Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)
Neo4j Introduction (Basics, Cypher, RDBMS to GRAPH)

Similar to Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg

Graph Databases for SQL Server Professionals by
Graph Databases for SQL Server ProfessionalsGraph Databases for SQL Server Professionals
Graph Databases for SQL Server ProfessionalsStéphane Fréchette
9.2K views34 slides
Intro to Neo4j and Graph Databases by
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
11K views117 slides
Polyglot Persistence with MongoDB and Neo4j by
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jCorie Pollock
1.6K views97 slides
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C... by
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...SpanishPASSVC
1.3K views28 slides
Chapter Deck 2010 April by
Chapter Deck 2010 AprilChapter Deck 2010 April
Chapter Deck 2010 AprilfwPASS
455 views10 slides
Graphs fun vjug2 by
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2Neo4j
1.6K views61 slides

Similar to Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg(20)

Intro to Neo4j and Graph Databases by Neo4j
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
Neo4j11K views
Polyglot Persistence with MongoDB and Neo4j by Corie Pollock
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
Corie Pollock1.6K views
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C... by SpanishPASSVC
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...
Configurando Aplicaciones para Réplicas de Lectura de SQL-Server AlwaysOn - C...
SpanishPASSVC1.3K views
Chapter Deck 2010 April by fwPASS
Chapter Deck 2010 AprilChapter Deck 2010 April
Chapter Deck 2010 April
fwPASS455 views
Graphs fun vjug2 by Neo4j
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
Neo4j1.6K views
Graph databases for SQL Server profesionnals by MSDEVMTL
Graph databases for SQL Server profesionnalsGraph databases for SQL Server profesionnals
Graph databases for SQL Server profesionnals
MSDEVMTL505 views
Technology Roadmap by ericnel by Eric Nelson
Technology Roadmap by ericnelTechnology Roadmap by ericnel
Technology Roadmap by ericnel
Eric Nelson1.2K views
E2D3 introduction by E2D3
E2D3 introductionE2D3 introduction
E2D3 introduction
E2D3 42.7K views
GraphTalk Helsinki - Introduction to Graphs and Neo4j by Neo4j
GraphTalk Helsinki - Introduction to Graphs and Neo4jGraphTalk Helsinki - Introduction to Graphs and Neo4j
GraphTalk Helsinki - Introduction to Graphs and Neo4j
Neo4j156 views
Neo4j Aura on AWS: The Customer Choice for Graph Databases by Neo4j
Neo4j Aura on AWS: The Customer Choice for Graph DatabasesNeo4j Aura on AWS: The Customer Choice for Graph Databases
Neo4j Aura on AWS: The Customer Choice for Graph Databases
Neo4j256 views
Building and Delivering Reports from your Web and Mobile Apps with Telerik Re... by Lohith Goudagere Nagaraj
Building and Delivering Reports from your Web and Mobile Apps with Telerik Re...Building and Delivering Reports from your Web and Mobile Apps with Telerik Re...
Building and Delivering Reports from your Web and Mobile Apps with Telerik Re...
There and Back Again, A Developer's Tale by Neo4j
There and Back Again, A Developer's TaleThere and Back Again, A Developer's Tale
There and Back Again, A Developer's Tale
Neo4j420 views
O365Engage17 - Microsoft graph the swiss army knife by NCCOMMS
O365Engage17 - Microsoft graph   the swiss army knifeO365Engage17 - Microsoft graph   the swiss army knife
O365Engage17 - Microsoft graph the swiss army knife
NCCOMMS88 views
The New Frontier: Optimizing Big Data Exploration by Inside Analysis
The New Frontier: Optimizing Big Data ExplorationThe New Frontier: Optimizing Big Data Exploration
The New Frontier: Optimizing Big Data Exploration
Inside Analysis439 views
Microsoft products 2014 by Ashraf Atef
Microsoft products 2014Microsoft products 2014
Microsoft products 2014
Ashraf Atef1.7K views
Devops kc meetup_5_20_2013 by Aaron Blythe
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013
Aaron Blythe447 views

More from Stéphane Fréchette

Back to the future - Temporal Table in SQL Server 2016 by
Back to the future - Temporal Table in SQL Server 2016Back to the future - Temporal Table in SQL Server 2016
Back to the future - Temporal Table in SQL Server 2016Stéphane Fréchette
4.8K views16 slides
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston by
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston  Self-Service Data Integration with Power Query - SQLSaturday #364 Boston
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston Stéphane Fréchette
1.4K views24 slides
Power BI - Bring your data together by
Power BI - Bring your data togetherPower BI - Bring your data together
Power BI - Bring your data togetherStéphane Fréchette
1.9K views28 slides
Data Analytics with R and SQL Server by
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL ServerStéphane Fréchette
5.9K views30 slides
Self-Service Data Integration with Power Query by
Self-Service Data Integration with Power QuerySelf-Service Data Integration with Power Query
Self-Service Data Integration with Power QueryStéphane Fréchette
2.5K views24 slides
Introduction to Azure HDInsight by
Introduction to Azure HDInsightIntroduction to Azure HDInsight
Introduction to Azure HDInsightStéphane Fréchette
3.2K views29 slides

More from Stéphane Fréchette(17)

Back to the future - Temporal Table in SQL Server 2016 by Stéphane Fréchette
Back to the future - Temporal Table in SQL Server 2016Back to the future - Temporal Table in SQL Server 2016
Back to the future - Temporal Table in SQL Server 2016
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston by Stéphane Fréchette
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston  Self-Service Data Integration with Power Query - SQLSaturday #364 Boston
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston
On the move with Big Data (Hadoop, Pig, Sqoop, SSIS...) by Stéphane Fréchette
On the move with Big Data (Hadoop, Pig, Sqoop, SSIS...)On the move with Big Data (Hadoop, Pig, Sqoop, SSIS...)
On the move with Big Data (Hadoop, Pig, Sqoop, SSIS...)
Introduction to Master Data Services in SQL Server 2012 by Stéphane Fréchette
Introduction to Master Data Services in SQL Server 2012Introduction to Master Data Services in SQL Server 2012
Introduction to Master Data Services in SQL Server 2012
Stéphane Fréchette19.3K views

Recently uploaded

Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...ShapeBlue
164 views13 slides
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
199 views20 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
265 views23 slides
"Running students' code in isolation. The hard way", Yurii Holiuk by
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk Fwdays
36 views34 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
196 views62 slides
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
183 views18 slides

Recently uploaded(20)

Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue164 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue199 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays36 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue196 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue183 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue152 views
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 by BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada44 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10146 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue141 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty65 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
"Node.js Development in 2024: trends and tools", Nikita Galkin by Fwdays
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin
Fwdays33 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue162 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue225 views

Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg

  • 1. Graph Databases for SQL Server Professionals Stéphane Fréchette
  • 2. Who am I? My name is Stéphane Fréchette SQL Server MVP | Consultant | Speaker | Database & BI Architect | NoSQL. Drums, good food and fine wine. Founder @ukubu, @GatineauOuverte, @TEDxGatineau I have a passion for architecting, designing and building solutions that matter. Twitter: @sfrechette Blog: stephanefrechette.com Email: stephanefrechette@ukubu.com 2 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 3. Thanks to Our Sponsors! Gold Silver Bronze
  • 4. Session Outline  What is a Graph?  What is Neo4j?  Data Modeling – The Property Graph  Cypher Query Language  Importing Data…  Use Cases  Demos  Resources 4 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 5. What is a Graph? 5 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 6. Are these Graphs? 6 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 7. This is a Graph Node Relationship A Property Graph 7 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 8. Organization Project Graph 8 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 9. Twitter Social Graph 9 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 10. What is Neo4j? An open-source graph database by Neo Technology. Neo4j stores data in nodes connected by directed, typed relationships with properties on both, also know as a Property Graph  Fully ACID compliant  Massively scalable, up to several billion nodes/relationships/properties  Highly-available, when distributed across multiple machines  Accessible by a convenient REST interface or an object-oriented Java API 11/10 | 25/2014 | SQLSaturday Winnipeg #350
  • 11. Data Modeling From SQL Server to Graph Property Graph 11 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 12. Example: Meetup Data In SQL Server Member MeetupOrganizer MeetupMember Meetup ID Member 1 Daniel 2 Stephane 3 John 4 Randy ID Name 1 Ottawa SQL Server User Group 2 Ottawa JavaScript 3 Ottawa Visio User Group 4 Ottawa Tableau User Group 5 Dirty Dancing Ottawa MemberID MeetupID 2 1 1 2 3 3 2 4 3 5 MemberID MeetupID 3 1 3 2 4 2 4 4 1 5 12 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 13. Example: Meetup Data In a Graph Member Meetup name: ‘Stephane’ name: ‘Ottawa Tableau User Group’ name: ‘Ottawa SQL Server User Group’ name: ‘John’ name: ‘Ottawa JavaScript’ name: ‘Ottawa Visio User Group’ name: ‘Dirty Dancing Ottawa’ name: ‘Randy’ name: ‘Daniel’ 13 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 14. Cypher Query Language Cypher is a declarative graph query language that allows for expressive and efficient querying and updating of the graph store  Pattern-matching  Declarative: what to retrieve, not how to retrieve it  Inspired from other known Language (SQL, SPARQL, Haskell, Python)  Aggregation, Ordering, Limit  Update the Graph 14 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 15. Cypher and T-SQL Cypher also has a number of keywords that have a direct equivalence with SQL which makes it a curiously familiar language  WHERE  ORDER BY  LIMIT  SUM, COUNT, STDEVP, MIN, MAX etc…  LTRIM, UPPER, LOWER, REPLACE, LEFT, RIGHT, SUBSTRING  DISTINCT  CASE (SQL Server Pros) – [:WILL_LOVE] -> (Cypher) 15 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 16. Cypher - Meetup 16 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 17. Neo4j Browser 11/17 | 25/2014 | SQLSaturday Winnipeg #350
  • 18. Demo (let’s query some data…) 18 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 19. Importing Data… 19 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 20. Importing Data… Some important considerations… Different import scenarios  Dataset size: 1000s, 100000s, 10000000s  Dataset format (source): Database, File (CSV, Spreadsheet, GraphML, Geoff), Service, Other  Import type: Initial Bulk Load, Incremental Load, Initial Bulk Load + Incremental Load Different import tools  Spreadsheet based  Neo4j-shell based: (Cypher, neo4j-shell-tools, Cypher LOAD CSV)  Command-line based: Batch Importer  Neo4j Brower based  ETL Tools: (Talend, Mulesoft, Pentaho Kettle)  Custom software: (Java API, REST API, Spring Data Neo4j) 20 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 21. Many different mappings Import Scenarios Import Tools Not always clear what you should be using Depends on your skillsets, dataset size… (lots of other stuff) Choose wisely! 21 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 22. Demo (walkthrough on importing data…) 22 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 23. The Sample Dataset 23 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 24. Importing using Spreadsheets Very small size datasets < 1000, easy to use Format data in spreadsheet Generate Cypher statements with formulas Copy and Execute Cypher in Neo4j browser 24 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 25. Importing using Spreadsheets 25 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 26. Importing using neo4j-shell-tools Small to medium size datasets https://github.com/jexp/neo4j-shell-tools Format data in CSV files Create import-cypher commands for neo4j-shell-tools Execute commands from neo4j-shell 26 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 27. Importing using neo4j-shell-tools 27 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 28. Importing using LOAD CSV Native Cypher Format data in CSV files Create “LOAD CSV” commands Execute command from neo4j-shell or browser Additional “cleanup” for Labels and RelTypes 28 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 29. Importing using LOAD CSV 29 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 30. Importing using Batch Importer Non-transactional import, suited for very very large datasets Format data in TSV files Execute Batch Import command Copy store files to Neo4j Server directory Start Neo4j Server with generated store files 30 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 31. Use Cases Principal uses of Graph Database include:  Network and Data Center Management (Queries: Impact Analysis, Root Cause Analysis, Quality-of-Service Mapping, Asset Management)  Authorization and Access (Queries : Access Management, Interconnected Group Organization, Provenance)  Social (Queries : Friend Recommendations, Sharing & Collaboration, Influencer Analysis)  Geo (Queries : Routing, Logistics, Capacity Planning)  Recommendations (Queries : Product, Social, Service, and Professional Recommendations)  Fraud Detection http://www.neotechnology.com/neo4j-use-cases/ 31 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 32. Summary (graphs)-[:ARE]->(everywhere) 32 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 33. Resources  Neo Technology http://www.neotechnology.com/  Neoj.org (Learn, Develop, Downloads,…) http://www.neo4j.org/  Neo4j on Vimeo http://vimeo.com/neo4j  Neo4j on SlideShare http://www.slideshare.net/neo4j  Neo4j on Github https://github.com/neo4j  Neo4j Cypher Cheat Sheet http://docs.neo4j.org/refcard/2.1/  Neo4j Graph Database as a Service http://www.graphenedb.com/  Linkurious – The easiest way to explore graph databases http://linkurio.us/  KeyLines- Visualize dynamic networks http://keylines.com/  Experiments with NEO4J: Using a graph database as a SQL Server metadata hub http://bit.ly/V2PrxN  Kenny Bastani http://www.kennybastani.com/  Rik Van Bruggen http://blog.bruggen.com/  Max de Marzi http://maxdemarzi.com/  Better Software Development http://jexp.de/blog/  Graph Databases (Free Book) http://graphdatabases.com/  Neo4j GraphGist http://gist.neo4j.org/  GraphConnect Conference http://graphconnect.com/  Titan – Distributed Graph Database https://thinkaurelius.github.io/titan/  InfiniteGraph http://www.infinitegraph.com/  OrientDB http://www.orientechnologies.com/  Cayley by Google https://github.com/google/cayley 33 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 34. What Questions Do You Have? 34 | 11/25/2014 | SQLSaturday Winnipeg #350
  • 35. Thank You For attending this session 35 | 11/25/2014 | SQLSaturday Winnipeg #350

Editor's Notes

  1. Nope, these are Charts, Bar and Line Charts…
  2. This a Graph, a Property Graph
  3. Sample Organization Project Graph
  4. Sample Twitter Social Graph
  5. NoSQL Category