Yes another exploration and exercise on graph modeling. This time about something I often use… the Cloud: Microsoft Azure. Thought it would be interesting to model the available Azure Cloud Service offerings by category, region, and location. The inspiration and data comes from the following source of information on the following web page A trivial one, but useful for demonstrating and understanding concepts. This is also a great example of how to store master data and discover new insights in existing data.

The Cypher, CSV files, and database backup can be found here ->

You can also get a copy of the raw data in Excel here on OneDrive

How to approach and model our graph

Let’s visualize it! A Region ‘East US’ is in a Location ‘Virginia’, that Region offers a Service ‘Stream Analytics’ and that Service belongs in a Category named ‘Analytics’. Also a Service could be a parent or child of another Service. From that analysis we can create the following model.

Azure Cloud Services Graph Model:

Graph model built using Arrows

Importing the Data using Cypher

Using the CSV files will be using Cypher’s LOAD CSV command to transform and load the content into a graph structure.
You can import and run the entire Cypher script using the neo4j-shell by issuing the following command:
bin/neo4j-shell -path azureservices.db -file cypher/import.cql
*make sure the Neo4j service is not running before you execute the script (bin/neo4j stop)

The following is the Cypher script that creates the indexes, constraints, nodes and relationships for our graph.

Once the script successfully executed, start Neo4j and load the web console (http://localhost:7474)

Some cypher queries




New to Neo4j and graph databases, follow this link to get you started

We are back on September 17 for another great season!
Looking forward to exciting times with the upcoming release of SQL Server 2016, recent Power BI availability and always evolving Azure cloud offerings.

Here is the schedule:

Still some open slots, if you would like to a talk, present at one of our scheduled meetups, please submit your session title and abstract to with “Ottawa SQL Server User Group (PASS Chapter)” in the subject header

For more details please visit our Meetup page -> and
official PASS Chapter page ->

Follow us on Twitter @OttawaPASS

Airplane_silhouette A quick exercise on graph modeling. I recently got inspired from one of Nicole White’s post who did something similar with the Dallas Fort Worth Airport (DFW) data. So I decided to create a Neo4j graph database of the shopping places (boutiques, restaurants and services) at the Montreal-Pierre Elliott Trudeau International Airport (YUL). There isn’t any raw data to download on the site. So I will spare you the details of my scrapping efforts and instead share with you my findings and results.



You can view and download the data here from Google Drive. The code, sample queries and database backup can be found on Github.

Here is a sample from the Data sheet:

Essentially from the raw data collected I was able to create individual sheets for each ‘entities’ and for ‘relationships’, just like tables you would model in your favourite RDBMS and from that exported them to individual CSV files ready for import;

  • area.csv
  • categories.csv
  • gatezones.csv
  • levels.csv
  • area.csv
  • placecategorygatezone.csv
  • places.csv

But first let take a look at how we will approach and model our graph, FYI at YUL airport there is no ‘Terminals’ but rather ‘Levels’…

Case in Point: A Place ‘Tim Hortons’ belongs in a Category ‘Cafés’ and that Place is located at a Gate ‘Gate 3′ in the following Area ‘Restricted area – Canada’ on a certain Level ‘First Floor/Departures’. Pretty straight forward and from that perspective we can create our model.

YUL Graph Model:

Importing the Data using Cypher

With the extracted CSV files will be using Cypher’s LOAD CSV command to transform and load the content into a graph structure.
You can import and run the entire Cypher script using the neo4j-shell by issuing the following command:
bin/neo4j-shell -path yul.db -file cypher/import.cypher


Start Neo4j and load the web console (http://localhost:7474), we are now ready to issue some Cypher queries…

Find all places and their categories located at Gate 57 (with Area and Level)


Find Boutiques in Restricted area – International on First Floor/Departures


Return count of places in each Category


Take time to explore the data and try to write your own queries!

Don’t forget the available online training from Neo4j: Getting Started with Neo4j and recently added Neo4j in Production

This past May 4 – 8 in Chicago was the Microsoft Ignite 2015 Conference. I unfortunately was not able to attend but was certainly looking forward to all the session material being available and posted on Channel 9.

Some enhancements and new features coming SQL Server 2016 were announced:
– Stretch Database
– Native JSON support
– PolyBase
– Enhancements to Master Data Services and SSIS
– Always Encrypted
– Operational Analytics
– In database analytics with R-Integration
– Azure SQL Data Warehouse

I strongly recommend you keep updated by reading the following Data Platform Blogs and watch the Day 1 Microsoft Ignite Keynote

SQL Server 2016 public preview is coming this summer. To not be left out and stay informed please sign up here and don’t forget to also signup for Power BI Preview

So in no particular order I have quickly put together a list of sessions that are of interest to me and that will consume most of my upcoming evenings and weekends…

NoSQL on Microsoft Azure: An introduction

Data Science with Microsoft Azure Machine Learning, Microsoft SQL Server and R

What’s Next for Business Analytics in Microsoft Excel

What’s Next for Visualizations in Microsoft Office

Microsoft BI Overview

Overview of Advanced Analytics with Machine Learning and Data Orchestration

Harnessing the Power of Hadoop: Cloud Scale with Microsoft Azure HDInsight

In-Memory Technologies Overview for Microsoft SQL Server and Microsoft Azure

Power BI Overview

Microsoft Azure SQL Data Warehouse Overview

Microsoft SQL Server BI Drill Down

Microsoft Azure Machine Learning Marketplace: Real-World Experience to Solve Your Business Problems

Microsoft Azure SQL Database: Overview and Customer Scenarios

Next Steps in Polybase with Dr. David Dewitt

SELECT Latest FROM Microsoft Azure DocumentDB

Advanced Analytics: Navigating Your Way There

Operational Analytics in SQL Server

Big Data for the SQL Ninja

Cloud-Based Machine Learning for the Developer

Overview of Microsoft Analytics Platform System (APS)

Build Hybrid Big Data Pipelines with Azure Data Factory and Azure HDInsight

Microsoft Azure DocumentDB and Azure HDInsight: Better Together

Real-Time Analytics at Scale for Internet of Things

End-to-End Business Analytics Solution: Real-World Scenario & Demo

Power BI for Developers

Planning Your Big Data Architecture on Azure

Optimizing Hadoop Using Microsoft Azure HDInsight

Advanced Modeling and Calculations Using the Microsoft Power BI Designer

Revolution Analytics Joins Microsoft: Strange Bedfellows or a New Power Tool for Advanced Analytics

Azure SQL Data Warehouse: Deep Dive

DNA of Data-Driven Organizations: Storytelling with R, Microsoft Azure Machine Learning and Power BI

Scalable BI and Advanced Modeling with Microsoft SQL Server Analysis Services and Power Pivot

Harness Predictive Customer Churn Models with Azure Machine Learning, Data Factory, and More

What’s New in Master Data Services (MDS) and Integration Services (SSIS) in SQL Server

Microsoft SQL Server Unplugged

ColumnStore Index: Microsoft SQL Server 2014 and Beyond