SlideShare a Scribd company logo
1 of 34
Graph Databases 
for SQL Server Professionals 
Stéphane Fréchette 
Thursday September 18, 2014
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
Session Outline 
• What is a Graph? 
• What is Neo4j? 
• Data Modeling – The Property Graph 
• Cypher Query Language 
• Importing Data… 
• Use Cases 
• Demos 
• Resources
What is a Graph?
Are these Graphs?
This is a Graph 
Node 
Relationship 
A Property Graph
Organization Project Graph
Twitter Social Graph
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
Data Modeling 
From SQL Server to Graph 
Property Graph
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
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’
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
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)
Cypher - Meetup
Neo4j Browser
Demo 
(let’s query some data…)
Importing Data…
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)
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!
Demo 
(walkthrough on importing data…)
The Sample Dataset
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
Importing using Spreadsheets
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
Importing using neo4j-shell-tools
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
Importing using LOAD CSV
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
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/
Summary 
(graphs)-[:ARE]->(everywhere)
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
What Questions Do You Have?
Thank You 
For attending this session

More Related Content

What's hot

What's hot (20)

What’s New in Spark 2.0: Structured Streaming and Datasets - StampedeCon 2016
What’s New in Spark 2.0: Structured Streaming and Datasets - StampedeCon 2016What’s New in Spark 2.0: Structured Streaming and Datasets - StampedeCon 2016
What’s New in Spark 2.0: Structured Streaming and Datasets - StampedeCon 2016
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27
 
Architecting Your First Big Data Implementation
Architecting Your First Big Data ImplementationArchitecting Your First Big Data Implementation
Architecting Your First Big Data Implementation
 
IS OLAP DEAD IN THE AGE OF BIG DATA?
IS OLAP DEAD IN THE AGE OF BIG DATA?IS OLAP DEAD IN THE AGE OF BIG DATA?
IS OLAP DEAD IN THE AGE OF BIG DATA?
 
SQL on Hadoop for the Oracle Professional
SQL on Hadoop for the Oracle ProfessionalSQL on Hadoop for the Oracle Professional
SQL on Hadoop for the Oracle Professional
 
AnalyticsConf2016 - Zaawansowana analityka na platformie Azure HDInsight
AnalyticsConf2016 - Zaawansowana analityka na platformie Azure HDInsightAnalyticsConf2016 - Zaawansowana analityka na platformie Azure HDInsight
AnalyticsConf2016 - Zaawansowana analityka na platformie Azure HDInsight
 
Building a Big Data Pipeline
Building a Big Data PipelineBuilding a Big Data Pipeline
Building a Big Data Pipeline
 
Hadoop Architecture Options for Existing Enterprise DataWarehouse
Hadoop Architecture Options for Existing Enterprise DataWarehouseHadoop Architecture Options for Existing Enterprise DataWarehouse
Hadoop Architecture Options for Existing Enterprise DataWarehouse
 
Strata sf - Amundsen presentation
Strata sf - Amundsen presentationStrata sf - Amundsen presentation
Strata sf - Amundsen presentation
 
Using Oracle Big Data SQL 3.0 to add Hadoop & NoSQL to your Oracle Data Wareh...
Using Oracle Big Data SQL 3.0 to add Hadoop & NoSQL to your Oracle Data Wareh...Using Oracle Big Data SQL 3.0 to add Hadoop & NoSQL to your Oracle Data Wareh...
Using Oracle Big Data SQL 3.0 to add Hadoop & NoSQL to your Oracle Data Wareh...
 
Using Hadoop to build a Data Quality Service for both real-time and batch data
Using Hadoop to build a Data Quality Service for both real-time and batch dataUsing Hadoop to build a Data Quality Service for both real-time and batch data
Using Hadoop to build a Data Quality Service for both real-time and batch data
 
Using Oracle Big Data Discovey as a Data Scientist's Toolkit
Using Oracle Big Data Discovey as a Data Scientist's ToolkitUsing Oracle Big Data Discovey as a Data Scientist's Toolkit
Using Oracle Big Data Discovey as a Data Scientist's Toolkit
 
How a Tweet Went Viral - BIWA Summit 2017
How a Tweet Went Viral - BIWA Summit 2017How a Tweet Went Viral - BIWA Summit 2017
How a Tweet Went Viral - BIWA Summit 2017
 
AnzoGraph DB - SPARQL 101
AnzoGraph DB - SPARQL 101AnzoGraph DB - SPARQL 101
AnzoGraph DB - SPARQL 101
 
From lots of reports (with some data Analysis) 
to Massive Data Analysis (Wit...
From lots of reports (with some data Analysis) 
to Massive Data Analysis (Wit...From lots of reports (with some data Analysis) 
to Massive Data Analysis (Wit...
From lots of reports (with some data Analysis) 
to Massive Data Analysis (Wit...
 
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
 
Intro to graphs for HR analytics
Intro to graphs for HR analyticsIntro to graphs for HR analytics
Intro to graphs for HR analytics
 
An Introduction to Graph: Database, Analytics, and Cloud Services
An Introduction to Graph:  Database, Analytics, and Cloud ServicesAn Introduction to Graph:  Database, Analytics, and Cloud Services
An Introduction to Graph: Database, Analytics, and Cloud Services
 
Intro to Big Data - Spark
Intro to Big Data - SparkIntro to Big Data - Spark
Intro to Big Data - Spark
 
How Lyft Drives Data Discovery
How Lyft Drives Data DiscoveryHow Lyft Drives Data Discovery
How Lyft Drives Data Discovery
 

Viewers also liked

Dbta Webinar Realize Value of Big Data with graph 011713
Dbta Webinar Realize Value of Big Data with graph  011713Dbta Webinar Realize Value of Big Data with graph  011713
Dbta Webinar Realize Value of Big Data with graph 011713
InfiniteGraph
 
A walk in graph databases v1.0
A walk in graph databases v1.0A walk in graph databases v1.0
A walk in graph databases v1.0
Pierre De Wilde
 
An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph Databases
InfiniteGraph
 

Viewers also liked (20)

Data Analytics with R and SQL Server
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL Server
 
NOSQL overview and intro to graph databases with Neo4j (Geeknight May 2010)
NOSQL overview and intro to graph databases with Neo4j (Geeknight May 2010)NOSQL overview and intro to graph databases with Neo4j (Geeknight May 2010)
NOSQL overview and intro to graph databases with Neo4j (Geeknight May 2010)
 
SQL Server 2014 Faster Insights from Any Data
SQL Server 2014 Faster Insights from Any DataSQL Server 2014 Faster Insights from Any Data
SQL Server 2014 Faster Insights from Any Data
 
Lessons learned from designing a QA Automation for analytics databases (big d...
Lessons learned from designing a QA Automation for analytics databases (big d...Lessons learned from designing a QA Automation for analytics databases (big d...
Lessons learned from designing a QA Automation for analytics databases (big d...
 
Graph Search: The Power of Connected Data
Graph Search: The Power of Connected DataGraph Search: The Power of Connected Data
Graph Search: The Power of Connected Data
 
Back to the future - Temporal Table in SQL Server 2016
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
 
Intro to Spring Data Neo4j
Intro to Spring Data Neo4jIntro to Spring Data Neo4j
Intro to Spring Data Neo4j
 
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
 
Dbta Webinar Realize Value of Big Data with graph 011713
Dbta Webinar Realize Value of Big Data with graph  011713Dbta Webinar Realize Value of Big Data with graph  011713
Dbta Webinar Realize Value of Big Data with graph 011713
 
Graph Databases - Where Do We Do the Modeling Part?
Graph Databases - Where Do We Do the Modeling Part?Graph Databases - Where Do We Do the Modeling Part?
Graph Databases - Where Do We Do the Modeling Part?
 
10. Graph Databases
10. Graph Databases10. Graph Databases
10. Graph Databases
 
NoSQL Graph Databases - Why, When and Where
NoSQL Graph Databases - Why, When and WhereNoSQL Graph Databases - Why, When and Where
NoSQL Graph Databases - Why, When and Where
 
A walk in graph databases v1.0
A walk in graph databases v1.0A walk in graph databases v1.0
A walk in graph databases v1.0
 
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDBMongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
 
SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Taking R Analytics to SQL and the Cloud
Taking R Analytics to SQL and the CloudTaking R Analytics to SQL and the Cloud
Taking R Analytics to SQL and the Cloud
 
An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph Databases
 
Converting Relational to Graph Databases
Converting Relational to Graph DatabasesConverting Relational to Graph Databases
Converting Relational to Graph Databases
 

Similar to Graph Databases for SQL Server Professionals

Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
Neo4j
 
No sql and sql - open analytics summit
No sql and sql - open analytics summitNo sql and sql - open analytics summit
No sql and sql - open analytics summit
Open Analytics
 

Similar to Graph Databases for SQL Server Professionals (20)

Graph databases for SQL Server profesionnals
Graph databases for SQL Server profesionnalsGraph databases for SQL Server profesionnals
Graph databases for SQL Server profesionnals
 
DeepeshRehi
DeepeshRehiDeepeshRehi
DeepeshRehi
 
Ncku csie talk about Spark
Ncku csie talk about SparkNcku csie talk about Spark
Ncku csie talk about Spark
 
Intro to Cypher
Intro to CypherIntro to Cypher
Intro to Cypher
 
10 Big Data Technologies you Didn't Know About
10 Big Data Technologies you Didn't Know About 10 Big Data Technologies you Didn't Know About
10 Big Data Technologies you Didn't Know About
 
Stéphane Fréchette - Samedi SQL - Introduction to HDInsight
Stéphane Fréchette - Samedi SQL - Introduction to HDInsightStéphane Fréchette - Samedi SQL - Introduction to HDInsight
Stéphane Fréchette - Samedi SQL - Introduction to HDInsight
 
Introduction to Azure HDInsight
Introduction to Azure HDInsightIntroduction to Azure HDInsight
Introduction to Azure HDInsight
 
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
State of Play. Data Science on Hadoop in 2015 by SEAN OWEN at Big Data Spain ...
 
Graph databases and the #panamapapers
Graph databases and the #panamapapersGraph databases and the #panamapapers
Graph databases and the #panamapapers
 
There and Back Again, A Developer's Tale
There and Back Again, A Developer's TaleThere and Back Again, A Developer's Tale
There and Back Again, A Developer's Tale
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
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
 
Open Source DataViz with Apache Superset
Open Source DataViz with Apache SupersetOpen Source DataViz with Apache Superset
Open Source DataViz with Apache Superset
 
State of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMState of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAM
 
No sql and sql - open analytics summit
No sql and sql - open analytics summitNo sql and sql - open analytics summit
No sql and sql - open analytics summit
 
Scalable Ensemble Machine Learning @ Harvard Health Policy Data Science Lab
Scalable Ensemble Machine Learning @ Harvard Health Policy Data Science LabScalable Ensemble Machine Learning @ Harvard Health Policy Data Science Lab
Scalable Ensemble Machine Learning @ Harvard Health Policy Data Science Lab
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegGraph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
 
Scalable Machine Learning using R and Azure HDInsight - Parashar
Scalable Machine Learning using R and Azure HDInsight - ParasharScalable Machine Learning using R and Azure HDInsight - Parashar
Scalable Machine Learning using R and Azure HDInsight - Parashar
 

More from Stéphane Fréchette

More from Stéphane Fréchette (12)

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
Self-Service Data Integration with Power Query - SQLSaturday #364 Boston
 
Power BI - Bring your data together
Power BI - Bring your data togetherPower BI - Bring your data together
Power BI - Bring your data together
 
Self-Service Data Integration with Power Query
Self-Service Data Integration with Power QuerySelf-Service Data Integration with Power Query
Self-Service Data Integration with Power Query
 
Le journalisme de données... par où commencer?
Le journalisme de données... par où commencer?Le journalisme de données... par où commencer?
Le journalisme de données... par où commencer?
 
Modernizing Your Data Warehouse using APS
Modernizing Your Data Warehouse using APSModernizing Your Data Warehouse using APS
Modernizing Your Data Warehouse using APS
 
TEDxGatineau
TEDxGatineau TEDxGatineau
TEDxGatineau
 
Power BI
Power BIPower BI
Power BI
 
Introduction to Master Data Services in SQL Server 2012
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
 
Data Quality Services in SQL Server 2012
Data Quality Services in SQL Server 2012Data Quality Services in SQL Server 2012
Data Quality Services in SQL Server 2012
 
Business Intelligence in Excel 2013
Business Intelligence in Excel 2013Business Intelligence in Excel 2013
Business Intelligence in Excel 2013
 
Gatineau Ouverte troisième rencontre publique
Gatineau Ouverte troisième rencontre publiqueGatineau Ouverte troisième rencontre publique
Gatineau Ouverte troisième rencontre publique
 
Gatineau Ouverte première rencontre publique
Gatineau Ouverte première rencontre publiqueGatineau Ouverte première rencontre publique
Gatineau Ouverte première rencontre publique
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Graph Databases for SQL Server Professionals

  • 1. Graph Databases for SQL Server Professionals Stéphane Fréchette Thursday September 18, 2014
  • 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
  • 3. Session Outline • What is a Graph? • What is Neo4j? • Data Modeling – The Property Graph • Cypher Query Language • Importing Data… • Use Cases • Demos • Resources
  • 4. What is a Graph?
  • 6. This is a Graph Node Relationship A Property Graph
  • 9. 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
  • 10. Data Modeling From SQL Server to Graph Property Graph
  • 11. 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. 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. 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. 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)
  • 17. Demo (let’s query some data…)
  • 19. 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. 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. Demo (walkthrough on importing data…)
  • 23. 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
  • 25. 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
  • 27. 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
  • 29. 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. 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/
  • 32. 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. What Questions Do You Have?
  • 34. Thank You For attending this session

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