Graph support in SQL Server vNext
Disclaimer! I work for Microsoft, and hear about lots of awesome, interesting (and secret) things, which I cannot share here in my private blog. But the following was disclosed in a public blog post, and I assume that all of the information is free of NDA.
Just read a blog post by Denis Gobo (b|l|t) on some cool announcements for SQL Server vNext, announced at Pass Summit last month. One of them is SQL Graph, which is extending SQL Server with graphs as first class citizens.
The feature is called SQL Graph, and it is now available in private preview, which means that you can be involved in trying out the feature and give feedback to the product team behind it. During 2015-2016, I was involved in various preview programs for SQL Server 2016, and I enjoyed that very much. In fact, I liked it so much, that I later applied for a position at Microsoft. But that’s another story… :)
According to the preview landing page,
SQL Graph adds graph processing capabilities to SQL Server, which will help you link different pieces of connected data to help gather powerful insights and increase operational agility. Graphs are well suited for applications where relationships are important, such as fraud detection, risk management, social networks, recommendation engines, predictive analysis, dependence analysis, IoT suites, etc.
Initially, SQL Server will support CRUD graph operations and multi-hop graph navigation, and the following functionality will be available in the private preview:
Create graph objects, that is, nodes to represent entities and edges to represent relationships between any 2 given nodes. Both Nodes and Edges can have properties associated to them.
SQL language extensions to support join free, pattern matching queries for multi-hop navigation.
I think this is awesome. A couple of years ago, when I worked as product owner for Effektor, we investigated the use of graph databases in data warehouses and BI. At the time, we thought about adding support for graph datamarts to Effektor (which is a data warehouse generator). The graph database we were considering using was Neo4j, an open source (an commercially available) ACID compliant database written in Java. We wanted to be able to annotate the metamodel for an EDW data warehouse with graph concepts like edges, nodes and properties, and then make it possible to auto generate the schema and DDL statements for a graph database, as well as SSIS-packages and/or stored procedures to populate this “graph datamart,” just like we were able to do for normal star schema datamarts and process datamarts (basically accumulating snapshot fact tables with surrounding dimensions). We never went through with the idea, partly because we would need a Java runtime for Effektor, which only took dependencies on SQL Server standard edition and .net 4.5. So, there’s an idea for building a cool data product for you to go execute on... If you do, please ping me and tell me how it goes.
Anyway, I think it is very exiting that the SQL Server team is embracing graph concepts in their upcoming release. It will be very interesting to see how this works out.
Complete a short survey here, if you are interested in enrolling into the private preview program:
Read Denis Gobos blog post here:
Read more about Neo4j here:
And download and read this awesome (free) book from O’Reilly’s about graph databases (and Neo4j), which inspired us back in the Effektor days: