THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Jamie Thomson

This is the blog of Jamie Thomson, a data mangler in London working for Dunnhumby

M lives!

In 2007 Microsoft announced a program of work under the codename Oslo which was intended to be a modelling technology and if you believed the hype this was going to be a very big initiative within Microsoft. By September 2010 Oslo was effectively dead (read blog post Update on SQL Server Modeling CTP (Repository/Modeling Services, "Quadrant" and "M") and if my memory serves me correctly that was quite a lot of anger from customers that had invested time and effort into Oslo. Specifically the three parts of Oslo that were killed were:

  • The Oslo Repository
  • Quadrant – Effectively a query tool for SQL Server that featured an infinite canvas (which I actually really liked)
  • M – a modelling language

M in particular had a lot of hype behind it and many people were mystified when it was seemingly canned. In the aforementioned blog post the lead architect for Oslo, Don Box, had this to say:

we created a language codenamed “M” for defining schema, constraints, queries, and transformations. While we used “M” to build the “Oslo” repository and “Quadrant,” there has been significant interest both inside and outside of Microsoft in using “M” for other applications. We are continuing our investment in this technology and will share our plans for productization once they are concrete.

So there was a promise to keep M alive but since then nothing has been heard of it and I suspect many people (including myself) assumed it had gone the way of the dodo. As it turns out that isn’t the case, M does indeed live on as the query language that underpins the recently released Microsoft Data Explorer for Excel Preview (see my blog post Data Explorer hits full preview for more info). An updated version of Data Explorer was released today (read: A new build of “Data Explorer”, and an Auto Update feature) and one of the new features is something they call Advanced Query Editing, that is the ability to see the underlying query that gets built by the UI. Here’s an example I lifted from my previous post Traversing the Facebook Graph using Data Explorer:


That query language…is M. Here it is in raw copyable form:

    Source = Facebook.Graph(""),
    #"Expand likes" = Table.ExpandTableColumn(Source, "likes", {"name"}, {""}),
    #"Expand comments" = Table.ExpandTableColumn(#"Expand likes", "comments", {"message"}, {"comments.message"}),
    HiddenOtherColumns = Table.SelectColumns(#"Expand comments",{"message", "", "comments.message"})

At this stage its looking very likely that Data Explorer will come to market which means that Don Box wasn’t lying and one of the most lamented parts of Oslo will do too. Data Explorer is effectively a free query builder for M queries – go and download and have a play.


Published Tuesday, March 12, 2013 11:07 PM by jamiet
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS


No Comments

Leave a Comment


This Blog


Privacy Statement