<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Insufficient data from Andrew Fryer</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/andrew/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/andrew/feed.xml</link>
    <description>The place where I page to when my brain is full up of stuff about the Microsoft platform</description>
    <lastBuildDate>Thu, 25 Jan 2018 14:50:59 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>To SQL or not to SQL</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/to-sql-or-not-to-sql</link>
      <pubDate>Mon, 16 Oct 2017 08:00:52 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12535</guid>
      <description><![CDATA[I was on tour last week at @SQL_Relay and gave a talk on CosmosDB at

To SQL, or not to SQL: that...]]></description>
      <content:encoded><![CDATA[I was on tour last week at <a href="http://www.sqlrelay.co.uk">@SQL_Relay</a> and gave a talk on <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/introduction">CosmosDB</a> at

<em>To SQL, or not to SQL: that is the question: Whether ’tis nobler in the mind to suffer The tweets and articles of outraged fanatics, Or to code structured queries against a sea of data, And by opposing end them? </em>

<em>To dice: To slice; No more; </em>

<em>and by a sleep state to say we end The head-ache and the continual knocks that sql is heir to,</em>

<em>’tis a computation devoutly to be wish’d. </em>

<em>To query, to sql; To sql: perchance to dream: </em>

<em>ay, there’s the resultset;</em>

<em> For in that unstructured code what dreams may come When we have shuffled off this SQL foolishness,</em>

<em>Must give us pause: there’s the respect That makes calamity of so long running queries; For who would bear the cast and convert of datetimes, The processors of strings, the proud man’s CLR, The hangs of revised plans, the  3<sup>rd</sup> normal forms law’s delay, The insolence of office365 and the spurns That patient merit of the unworthy takes, When he himself might his query make With a bare vm? who would install sql server, To grep and awk  under a<a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup"> linux prompt</a>,</em>

<em> But that the dread of something after SQL, The undiscover’d country from whose bourn No dba returns, puzzles the will And makes us rather bear those ills we have Than try other data stores that we know not of? Thus conscience does make cowards of us all; And thus the native hue of screen resolution Is sicklied o’er with the pale cast of management studio, And the enterprise edition of great pith and moment With this regard many a dba turns old, And lose the name of action– SQL Relay you now! The fair SQL Server! in thy master database Be all my sins remember’d.</em>]]></content:encoded>
    </item>
    <item>
      <title>Qualification</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/qualification</link>
      <pubDate>Fri, 06 Jan 2017 16:10:19 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12505</guid>
      <description><![CDATA[Data Science and machine learning are very cool just now and It’s relatively easy to find lots of...]]></description>
      <content:encoded><![CDATA[<p>Data Science and machine learning are very cool just now and It’s relatively easy to find lots of resources to learn either from books to MOOCs (massively Open Online Courses). But how can you prove you are an expert?&nbsp; The Microsoft tradition and one that I have followed in the past is to get certified and I often get to try the exams in beta form to help bed those in.</p><p>However when it comes to the world of Machine Learning for examle&nbsp; there are several technologies even from Microsoft: </p><ul><li><a href="https://studio.azureml.net/?selectAccess=true&amp;o=1">Azure Machine Learning with support for Python &amp; R</a></li><li><a href="https://www.microsoft.com/en-gb/cloud-platform/r-server">R Server</a>&nbsp;</li><li><a href="https://www.microsoft.com/en-us/research/product/cognitive-toolkit/">CNTK</a> (Cognitive Tool Kit)</li><li><a href="https://www.microsoft.com/en-us/research/project/infernet/">Infer.net</a></li><li><a href="https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/visual-fsharp">F#</a></li></ul><p>Now imagine for a moment you wanted to be a good blogger – would a certification in WordPress, Word or the Open Live Writer this is written in be of help? Possibly, but only if you have grasped the principles of good blogging like understanding your audience (that’s a post for another day!).&nbsp; I would argue you need the theory and then get technically checked out on your tools of choice.&nbsp; </p><p>So I used spare time in the holiday season to mug up theory and techniques with the <a href="https://academy.microsoft.com/en-us/professional-program/data-science/">Microsoft Professional Program for Data Science</a> rather than watch movie re-runs. The theory in this program comes from some excellent lecturers at American Universities such as&nbsp; Columbia , MIT, Duke etc).&nbsp; From what I have seen so far (4 passed one in progress) they are all high quality – both well constructed and well presented. It is also practical, and yes it is based on Microsoft technologies, but those technologies are there as in any course, to underpin the theory rather than being the subject being studied.&nbsp; A good example is the use of Azure Machine Learning in the <a href="https://courses.edx.org/courses/course-v1:Microsoft+DAT203.2x+1T2017/info">DAT203x</a> module (which also the best I have seen on this topic) where AML is simply used as a fast way to work through examples rather than writing unnecessary code – so not relevant to the learning objective.&nbsp; </p><p>The complete program requires completion of 10 modules (there are electives like options to do either R or Python) and each one of which will take a few weeks to get through especially if you want to learn this stuff and not just pass the course.&nbsp; The final module is a Data Science Challenge Project is there to prove to yourself and Microsoft that you really know what you are doing. </p><p>The knowledge check questions throughout the modules I have seen&nbsp; (except the final project), are in my opinion, just there to ensure you have done the exercises and not fast forwarded through all the videos. They will not, in my opinion, stress test your knowledge like a Microsoft certification.&nbsp; So yes you could skim through the professional program and possibly fudge your way through the final project or you could do what I do -&nbsp; reverse engineer some of the examples, read the recommended additional material and make copious notes like this ..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2017/01/image146.png"><img width="1026" height="588" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/01/image_thumb103.png" border="0"></a></p><p>That you will get the intended value out of every module and properly ground you in the approach.&nbsp; After all if you don’t enjoy doing this stuff why would you study it?</p><p>This also means I will continue to do exams to compliment courses like this both to keep up with the new stuff<sup>1</sup> and to keep the old brain ticking over especially as you can do them at home via a web cam (details are <a href="https://www.microsoft.com/en-gb/learning/online-proctored-exams.aspx">here</a>).</p><p><sup>1</sup><font size="1"> by new stuff I don’t mean re-certifying which you can now do on the Microsoft Virtual Academy, I mean new exams on new technologies like Azure Machine Learning</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Think Data Science–Pitfalls</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/think-data-science-pitfalls</link>
      <pubDate>Fri, 12 Aug 2016 15:00:04 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12475</guid>
      <description><![CDATA[In my last post and generally I like to talk up how useful a data science approach is to...]]></description>
      <content:encoded><![CDATA[<p>In my last post and generally I like to talk up how useful a data science approach is to understanding your data but in this post I want to sound a note of caution as it can be easy to get carried away and generally if the results look to good to be true that’s because they usually are!</p><p><font color="#a5a5a5" size="1">Disclaimer: This post is one of a series about data science from someone who started out in BI and now wishes to get into that exciting field so if that’s you read on if not click away now</font></p><h5><font color="#646b86">Over Fitting</font></h5><p>If we go back to the example about delegates in my last <a href="https://blogs.technet.microsoft.com/andrew/2016/08/04/think-data-science-approach/">post</a>&nbsp; not turning up for community technical events then if the model we build can predict at a level of 99.99% accuracy then that’s probably because one of the features&nbsp; (other columns in the dataset) used to make the prediction is directly correlated to the label (the answer). In this scenario we might have a column for which size of t-shirt they were given at the event and if the column has null in it they didn’t get one.&nbsp; T-shirts are very popular at events so the only reason for a null in that column would be that they weren’t there and so this column matches the attendance very well but of course is useless because can’t itself be predicted before the event.&nbsp; This is the sort of thing that is referred to over fitting in data science</p><h5><font color="#646b86">Confusion Matrix</font></h5><p>Without the t-shirt column the accuracy of our model might drop to 94% i.e. 94 times out of a hundred we can say whether a delegate turned up or not against whether they actually did or not. That&nbsp; might seem a pretty good result but if we have an attendance rate of 80% i.e. 80 out of a hundred delegates turn up then if all we do is predict everyone will turn up will get us an accuracy of 80% anyway.&nbsp; So what is more interesting to data scientists is the confusion matrix, a set of analysis performed by comparing the models predictions against a set of data it hasn’t seen before where the out come is known and can be compared to the prediction:&nbsp; </p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/08/image290.png"><img width="642" height="174" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/08/image_thumb219.png" border="0"></a></p><p>I have taken this example from the Azure Machine Learning workshop Amy and I have developed and here we can see the true positives/true negatives and false positives/negatives. If this was an evaluation of event attendance and the positive label of 1 indicates that a delegate didn’t attend/ show up and a negative label of 0 means they did then we can infer the following from a test data set of 480,731 delegates across a variety of historical events:</p><ul><li><font size="2">true positives = the model correctly predicted the non-attendees = 67,419</font></li><li><font size="2">true negatives = the model correctly predicted those who did actually attend = 375,695</font></li><li><font size="2">false positives = those the model predicted would not attend but did = 6,409</font></li><li>false negatives = those the model predicted would attend but did not = 31,208</li></ul><p>The <a href="http://https://blogs.msdn.microsoft.com/andreasderuiter/2015/02/09/performance-measures-in-azure-ml-accuracy-precision-recall-and-f1-score/">definitions</a>&nbsp; for the other numbers are as follows:</p><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><font size="1">
</font><table width="600" border="1" cellspacing="1" cellpadding="2">
<tbody>
<tr>
<td width="200" valign="top"><p><font size="1">Accuracy</font></p></td><td width="200" valign="top"><font size="1">the true results (both negative &amp; Positive) / overall total </font></td><td width="200" valign="top"><font size="1">(67,419+375695)/480731 = 92.2%</font></td></tr><tr><td width="200" valign="top"><font size="1">Precision</font></td><td width="200" valign="top"><font size="1">the true positive result/ the positive results</font></td><td width="200" valign="top"><font size="1">67,419/(67419+6,409) = 91.3%</font></td></tr><tr><td width="200" valign="top"><font size="1">Recall</font></td><td width="200" valign="top"><font size="1">true positive results/ (true positives + false negatives)</font></td><td width="200" valign="top"><font size="1">67,419/(67,419+31,208) = 68.4%</font></td></tr><tr><td width="200" valign="top"></td><td width="200" valign="top"></td><td width="200" valign="top"></td></tr><tr><td width="200" valign="top"><font size="1">F1 score</font></td><td width="200" valign="top"><font size="1">2*(Recall * Precision)/(Recall + Precision)</font></td><td width="200" valign="top"><font size="1">2*(0.684*0.913)/(0.684 +0.913) = 0.781</font></td>
</tr>
</tbody>
</table>
<p>All this is based on a threshold of 0.5 meaning that the label is set to 1 when the scored probability is &gt; 0.5 and 0 otherwise. In other word if there is more than a 50% chance of a delegate turning up then score them as predicted to turn up. In Azure ML we can move the threshold higher or lower to affect these scores e.g. only score them as predicted to turn up if the scored probability is say to 0.8 (80%) then we get this for our confusion matrix:.</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/08/image371.png"><img width="642" height="157" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/08/image_thumb298.png" border="0"></a></p><p>so while the number sum of the true answers (positive &amp; negative)&nbsp; goes up from 433,348 to 443,114 and the false positive drops as well there are now another 15,229 false negative cases (where the model thought a delegate would not turn up but they did. </p><p>So how we use this result and move the threshold is just as important as the accuracy of the numbers.&nbsp; For example if we want to give every delegate a t-shirt (assume for a moment they are all one size) how many should we order?&nbsp; A simple but effective approach would be to add up the scored probabilities for each individual to estimate the number of no shows and subtract that from the number of registrations for the event.&nbsp; so imagine if we have four delegates have registered each with a score 0.25 (25%) of NOT attending from this model adding this up gives 1 which we subtract from the 4 registration and only order 3 shirts because across all four of them it is extremely likely (but not certain) that only three will attend.&nbsp; I say not certain because the&nbsp; prediction might not be very good for small events but as the registrations for an event get larger then the accuracy improves.&nbsp; So if I download the scores from the model I have been using and sum the scored probabilities across the 480,731 examples in the sample&nbsp; I get 98,816 as my predicted no shows which compares very well with the 98,617 actual no shows.&nbsp;&nbsp;&nbsp; </p><p>A good way of think about this is that statistics is analysis of the behaviour of large groups of thinks (called the total population) based on the behaviour of a sample of that population.&nbsp; We don’t know for sure that this is the case but we can work out the probabilities involved to make a bridge between what the sample behaviour is and apply that to the whole.&nbsp; </p><p>Finally if you want to follow along you’ll need nothing more than a modern browser and spreadsheet tool that can work with .csv files and can handle 400,000 rows of data and I’ll write this up in the next post.</p><p><font color="#c0504d">Note: I can’t share the actual data for the events model as the data and model aren’t mine.</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Think Data Science – Approach</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/think-data-science-approach</link>
      <pubDate>Thu, 04 Aug 2016 15:16:23 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12445</guid>
      <description><![CDATA[I go to a lot of computer events and I feel for the organisers when 80 have registered and only...]]></description>
      <content:encoded><![CDATA[<p>I go to a lot of computer events and I feel for the organisers when 80 have registered and only about 30 turn up.&nbsp; I am not sure why the no shows feel it’s OK not to spend a few seconds on Meetup or EventBrite to cancel, as a matter of common courtesy.&nbsp; Anyway rant over, but it occurred to me that I could take a quote from the Mark Watney in the Martian and “<em>Science the **** out of this</em>”.&nbsp; So could I build a model to predict the no shows?</p><p><font color="#666666">Disclaimer: This post is one of a series about data science from someone who started out in BI and now wishes to get into that exciting field so if that’s you read on if not click away now</font></p><p>Firstly how does data science apply to this problem?&nbsp; if we had access to some data about events where we have the attendance details <em>including who registered but didn’t show up</em>&nbsp; then we could possibly make inference about what might affect attendance and use these characteristics to make predictions about drop out rates at future events.&nbsp; </p><p>In the world of statistics and surveys we are using a sample (the historical data) to infer the behaviour of a wider population ( people who come to IT community events).&nbsp; The important thing here is that I have good data and in this case good might mean that there aren’t invisible (confounding) variables affecting attendance e.g. road accidents and transport strikes might mean some people who wanted to come found it too hard to travel and went home.&nbsp; Also some of my friends in the SQL community reckon that if the weather is good then drop outs will be higher so if I don’t take sunshine into account than that may also affect the accuracy of any model as well. However while modelling these is fine&nbsp; we would have trouble predicting travel disruptions and predicting sunshine is hard as well.</p><p>Assuming we have a viable model it’s then up to us as humans on how we use it:</p><ul><li>We could overbook the event by the amount of predicted dropouts.</li><li>While it would be hard to ban no shows from future events we could target potential no shows with e-mails to encourage them to come or at least let us know if they can’t make it.&nbsp; We can then see if this works by only doing this e-mail targeting for some events.</li></ul><p>So that’s the basic idea and to get started we need data but which data i.e. what factors might affect non attendance and is that data available?</p><p>Let’s look at the factors for the event itself:</p><ul><li>Time of day – is it an evening or day event</li><li>Day of the week – At Microsoft we reckon that you our audience won’t be as likely to come to events on Mondays or Fridays and then there are weekend events.</li><li>Location? Is that a factor or are there factors about the venue such as parking and being near a train station?</li><li>What technology is being covered?</li><li>Does the headline speaker matter. For example at AzureCraft we had ScottGu over and certainly this leads to more registrations but was the dropout rate lower?</li><li>and as I said earlier was it sunny!</li></ul><p>Then what about the delegate information?&nbsp; </p><ul><li>I don’t think someone’s name or address is important, however their proximity to the venue might be. So perhaps&nbsp; we could get still get some location insights&nbsp; but anonymise the address by working out the distance to the event or better yet the journey time to the event and plug that in.&nbsp; </li><li>Whether what marketeers call the vertical they work in, matters e.g. finance, public sector( local central , NHS etc.) , retail and so on might be interesting to look at.</li><li>What about the role of the delegate e.g. developer, dba , infrastructure specialist, architect etc.&nbsp; </li><li>Are they regular followers</li><li>Whether they attended or not</li></ul><p>To put this last statement into data science speak this is supervised learning - the model being built is based on example data where the answer is in the data we are using which in this case the attendance of a registered delegate.&nbsp; There are only two values in the answers “attended”&nbsp; or “did not attend” so&nbsp; this is known as a two class or binary classification problem.&nbsp; There are several completely different techniques for modelling this and choosing the right one is partly about understanding what success is and partly by knowing certain characteristics about the data.&nbsp; </p><p>Success in Machine learning might mean going for accuracy at the expense of time to compute or the other way around. some techniques/algorithms like neural networks take time to train, are resource intensive but are more generally more accurate. It’s also important to understand what data we are dealing with and there are three things to be aware of</p><h5><font color="#646b86">Features &amp; Labels</font></h5><p>You may have heard the term feature engineering and that is the business of having the right attributes/ columns/ variables to use to predict an outcome.&nbsp; For this example the features are the list above of things we know about the event and delegate. In supervised learning we then use these features to predict a label which&nbsp; in our case the column/variable with whether the delegate turned up or not.&nbsp; </p><h5><font color="#646b86">Data Types</font></h5><p>I have already mentioned that the label in this case is one of two categories&nbsp; (attended or did not attend) and so the label holds categorical data.&nbsp; There are other features described above that are also categorical like the role the delegate has, the location of the event and anything&nbsp; else that is a&nbsp; string.&nbsp; However numbers can also be categorical – the staff ID at Microsoft, my mobile phone number as these are just lookup codes to identify me or some object – In other words we can’t apply maths to them e.g. average min max etc.&nbsp;&nbsp; On the other hand&nbsp; quantitative data are numbers where we can do this like my age, the journey time for a delegate to get to an event.&nbsp; Finally there is also ordinal data like education level where BSc, MSc and PhD are levels where one is more advanced than the others.&nbsp; Sometimes we can make quantitative data ordinal by creating buckets and putting values in them like age ranges you often see in surveys (under 18, 18-25, 25-40 40+ etc.)</p><h5><font color="#646b86">Data Understanding &amp; Visualisation</font></h5><p>Then we need to understand how&nbsp; the data is distributed compared to the thing I am looking to predict and across the other features.&nbsp; Data Scientists often want to plot data to do this like this box plot showing how inferences can be made about the speed of light form the famous Michelson Morley experiment..</p><p><img align="left" style="float: left" alt="" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Michelsonmorley-boxplot.svg/432px-Michelsonmorley-boxplot.svg.png"></p><p><font color="#646b86"><br></font></p><p><em><font color="#646b86">Here the box shows the middle 2 quartiles of data split by the median the “T” and upside down T shows the minimum and maximum and the dots in column 1 &amp; 3 show excluded outliers from this analysis</font>&nbsp;</em></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p>Plots like this and building up layers of charts are one of the great strengths of R or Pandas in Python as well as the rich ecosystem of statistical algorithms they have.&nbsp; They inform the feature selection and engineering as well as evaluation of how well the model is performing.&nbsp; </p><h5><font color="#646b86">Data Wrangling</font></h5><p>The whole process of understanding the data and feature engineering is known as data wrangling which&nbsp; If like me you are from a BI background you may think that Excel and technologies like Integration Services in SQL Server are the tools for this but data wrangling goes beyond this as it’s as much about understanding the data as transforming it. So I have seen people using Azure Machine Learning just as a data wrangling tool as it puts a public web front end at scale over their Python &amp; R scripts and to be able to share their notebooks containing their work.&nbsp; My point is that not only do need to manipulate the data we need to use statistical techniques to analyse it like from simple plotting of logs to look for outliers to the common techniques like Chi Squared, Pearson, Spearman, Kendall Tau etc. depending on the problem space.</p><p>Hopefully that’s given you some ideas on how all this works in a simple scenario.&nbsp; However that simple scenario with different features could be used to look at patients not turning up for appointments with their GP, truancy in children and that holy grail of marketeers customer churn. If you want to know more then there is a <a href="https://www.edx.org/microsoft-data-science-curriculum">degree course</a> for this and currently my favourite part of that is <a href="https://www.edx.org/course/statistical-thinking-data-science-columbiax-ds101x-0">module 4 on statistics from Columbia University</a>. They are free to evaluate and $49 per course if you need a certificate. </p>]]></content:encoded>
    </item>
    <item>
      <title>So you want to be a Data Scientist</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/so-you-want-to-be-a-data-scientist</link>
      <pubDate>Tue, 26 Jul 2016 09:11:18 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12426</guid>
      <description><![CDATA[In the dark days of the last millennium data scientists were serious statisticians using exotic...]]></description>
      <content:encoded><![CDATA[<p>In the dark days of the last millennium data scientists were serious statisticians using exotic hardware, expensive software and were largely isolated from the rest of the organisations they worked for.&nbsp; Today the cloud and open source languages like R &amp; Python have made this technology available to anyone curious enough to be interested in it.&nbsp; </p><p>So what do you need to get started? – My Top Six would be:</p><h5><font color="#646b86">Curiosity</font></h5><p>Are you the sort of person that is always challenging why things are the way they are in your organisation instead of taking matters on trust?&nbsp; Are you keen on experimenting with new technologies? Are you interested in the art of the possible? If the answer is yes then data science might be for you if you are also..</p><h5><font color="#646b86">Evidence Based</font></h5><p>I got a great e-mail after a presentation I gave from a lady called Charisma from Ghana – “<em>In god we trust everyone else bring data</em>”. Data scientists need to be scientists by using their creativity and curiosity to come up with hypotheses and then prove them. </p><h5><font color="#646b86">Statistics</font>. </h5><p> Yes you do need to understand the basics of statistics, but with the amazing tooling out there and the great online resources for learning like EdX and Coursera you can acquire the principles and then quickly apply these to your problem domain.</p><h5><font color="#646b86">Data Skills</font></h5><p>Hopefully you are reading this because you are some sort of data professional e.g. from a BI or data background.&nbsp; You know about joins, you get data quality and worry about missing data, cartesian products, and how annoying working with dates can be.</p><h5><font color="#646b86">Business knowledge</font></h5><p>.&nbsp; Hopefully you understanding the domain you are working in and what you do is closely aligned to that.&nbsp; This is your sanity check that means that when you find a cause an effect from a piece of analysis it does actually make sense and is not merely a couple of random statistics that have the same curve e.g. Per capita cheese consumption is not really related to deaths by getting entangled in the bed sheets as per <a href="http://tylervigen.com/spurious-correlations">Spurious Correlations by Tyler Vigen</a>:</p><p><a href="http://tylervigen.com/spurious-correlations"><img width="1026" height="468" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/07/image754.png" border="0"></a></p><h5><font color="#646b86">Ethics</font></h5><p>Just because we can doesn’t mean we should.&nbsp; In the work I do I am trying to make a difference so my data science dojo is a hack with a charity trying to improve a given situation be that environmental issues, saving lives or at least improving the quality of it.&nbsp; I also mention this because computer don’t have ethics per se any more than a new born baby does they are imbued with behaviour patterns by other humans.&nbsp; My litmus test is would my reputation improve&nbsp; if my use of analytics and big data was made public.&nbsp; </p><h5><font color="#646b86">Is data science is for you?</font></h5><p>I mention all this because demand for data scientists is outstripping supply and while many people like my are working with academia to drive and promote the next generation of data scientists we have a huge hole today.&nbsp; Now I am not going to suggest you can just mug up on some of this stuff and put data scientist on your CV. Rather I am suggesting their are places in the data science world for people like me who have come from a data/BI background as many of our skills are transferrable.&nbsp; For example our knowledge of the business and data skills are still very valuable. </p><p>However we are likely to be light on statistics and even if we studied it to some extent we have forgotten a lot of it and what matter now is applying those statistical theories to our data.&nbsp; For example which algorithm should I use to select which attributes of a patient and their doctors appointment are most likely to influence their attendance at a doctors appointment?&nbsp; In Azure Machine Learning (MAML) if you use the filter based feature selection module to do this you are presented with seven options such as Chi Squared, Spearman, Pearson, Fisher, Kendall but which to use?&nbsp; The answer is a post in itself and the good thing about data science is that there lots of resources on line.&nbsp; The bad thing about the online content is that while much of it is written in English it is English-Stats not English-GB so can be very hard to decode as so much prior knowledge of stats is needed.&nbsp; On thing I use a lot is&nbsp; this <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-algorithm-choice/">article on which algorithm to use for what in MAML</a> and even if you are in R or Python or some other technology this is still useful.</p><p>So a question – Do you want to get into data science?</p><p>To test this hypothesis for yourself – I would encourage you to look at the <a href="https://courses.edx.org/courses/course-v1:Microsoft+DAT101x+5T2016/aaf7ae271a474746ae3ee2cb9960e36a/">Microsoft data science degree course on EdX</a>.&nbsp; This can be done for free to see if you like this stuff, but if you like what you are seeing then you can actually get a degree.&nbsp; To do that you have to pay for a verified certificate for each of the ten modules you must do and there are options at various stages..</p><p><a href="https://courses.edx.org/courses/course-v1:Microsoft+DAT101x+5T2016/aaf7ae271a474746ae3ee2cb9960e36a/"><img width="1024" height="388" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/07/image752.png" border="0"></a></p><p>The last module is an actual project where you apply what you have learnt, and on a side note my good friend <a href="https://blogs.technet.microsoft.com/amykatenicho/">Amy Nicholson</a> (<a href="https://twitter.com/AmyKateNicho">@amykatenicho</a>) has just made the module on <a href="https://www.edx.org/course/developing-intelligent-apps-microsoft-dat211x-0">Developing Intelligent Applications</a> so watch out for tough questions on this!</p><p>So let’s do some science, see if the course helps and feedback any comments you have as you learn.</p><p><font color="#a5a5a5">Note: none of these degree course is going to get deep on the stats I have ben talking about but there are courses out there for that too.&nbsp; My own journey has been greatly helped by </font><a href="http://www.statisticshell.com/"><font color="#a5a5a5">Prof Andy Field</font></a><font color="#a5a5a5"> and his book on </font><a href="https://www.amazon.co.uk/Discovering-Statistics-Using-Andy-Field/dp/1446200469/ref=as_sl_pd_tf_sw?&amp;linkCode=wsw&amp;tag=statihell-21"><font color="#a5a5a5">Learning statistics using R</font></a><font color="#a5a5a5">.&nbsp; He’s also all over </font><a href="https://www.youtube.com/user/ProfAndyField"><font color="#a5a5a5">YouTube</font></a><font color="#a5a5a5">..</font></p><p><a href="https://www.youtube.com/user/ProfAndyField"><font color="#a5a5a5"><img width="640" height="323" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/07/image753.png" border="0"></font></a></p><p><font color="#a5a5a5">You have been warned!</font></p>]]></content:encoded>
    </item>
    <item>
      <title>PowerShell for taming Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/powershell-for-taming-azure</link>
      <pubDate>Wed, 20 Apr 2016 11:22:15 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/?p=12385</guid>
      <description><![CDATA[Have you got your subscription under control particularly if you are on MSDN or a smaller budget and...]]></description>
      <content:encoded><![CDATA[<p>Have you got your subscription under control particularly if you are on MSDN or a smaller budget and it’s just you or a small team using it?&nbsp; If you aren’t sure&nbsp; then read on; else Coffee.</p><p>Here’s the problem we all forget to turn stuff off or kill it when we don’t need it which can be because it can be a hassle to recreate.&nbsp; So in my simple world I want to make sure that expensive resources like VMs and my Azure SQL Data Warehouse aren’t burning costs (as I have mentioned <a href="https://blogs.technet.microsoft.com/andrew/2015/10/26/azure-sql-data-warehouse-dont-do-this/">before</a>). The answer to this is hidden away in Azure - <a href="https://azure.microsoft.com/en-us/services/automation/">Azure Automation</a>. </p><p>It pretty much does what it says it does, but frankly this used to be a bit of a pain partly because of the disjoint between the kind of PowerShell around at the time which is based on Azure Service Management and what we have now with Azure Resource Management.&nbsp; There have also been changes to how subscriptions can be controlled and this comers into the mix too.</p><p>So what do you need to do manage these services with a firm hand?</p><p>First I am going to assume you have access to an Azure subscription.&nbsp; All you need to do is track down Azure Automation and set your account up.&nbsp; </p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image808.png"><img width="1024" height="551" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb640.png" border="0"></a></p><p>This is essentially a container for all of the assets needed to control resources in a subscription, so that they can run when we aren’t around to click on the portal.&nbsp; When we create one of these are asked for the usual setting for any Azure service and we also get the option to create a run as account.&nbsp; </p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image809.png"><img width="183" height="489" title="image" style="margin: 0px 16px 0px 0px;border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb641.png" border="0"></a></p><p>Once we have our account we can see that it is essentially a container for the resources we need to manage services:</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image814.png"><img width="1024" height="718" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb642.png" border="0"></a>&nbsp;</p><p>On the left blade we can see my runbooks which are the scripts themselves and then I have expanded the assets to see the other stuff I need to make my runbooks work :</p><p>Schedules to determine when to run jobs for example my nightly schedule runs every night at 10:30 and will do so for ever..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image815.png"><img width="244" height="88" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb643.png" border="0"></a></p><p>Modules are the PowerShell modules I can use just like I would have set up on any machine..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image816.png"><img width="192" height="244" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb644.png" border="0"></a></p><p>Connections which is that Run as account I created when I setup the account..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image817.png"><img width="244" height="91" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb645.png" border="0"></a>&nbsp;</p><p>Credentials to authenticate against what we are trying to manage and I have one of those to connect to my MSDN subscription </p><p>Certificates to enable trust between our script and what we are managing</p><p>Variables that can be consumed and updated in our scripts for example here I have a variable ResourceGroup of type string..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image818.png"><img width="244" height="91" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb646.png" border="0"></a></p><p>So let’s see write and publish a run book and put it into production.&nbsp; For this worked example I am going to do nothing more than pause my Azure SQL Data Warehouse every night as it has cost serious money in the past because I left it on.&nbsp; To create a Runbook click on the Runbooks icon.&nbsp; Here you can see what I have done already and if I click on the Browse Gallery icon there is a long list&nbsp; of&nbsp; examples from Microsoft and the wider community to help us get started..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image819.png"><img width="644" height="340" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb647.png" border="0"></a></p><p>If I filter on warehouse there is a script to pause and restart it based on the parameter it is passed.</p><p>To use that script i could setup credentials but I wanted to save time and use the built in run as account for this so I tweaked the sample script as follows..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image820.png"><img width="240" height="137" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb648.png" border="0"></a></p><p><br></p><p>It’s just a matter of clicking on it to import it , naming it and then editing, it all form the portal (by clicking on the edit button) ..</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image822.png"><img width="640" height="359" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb649.png" border="0"></a></p><p>however to use this script I am going to have to create a credential where I just want to use the run as account. Not a problem other example in the gallery do this so all I need to do is substitute this in place of line 3-13..</p><p><font color="#646b86" face="Lucida Console" size="1">
 $connectionName = "AzureRunAsConnection"<br>
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Logging in to Azure..."<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add-AzureRmAccount `<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -ServicePrincipal `<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -TenantId $servicePrincipalConnection.TenantId `<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -ApplicationId $servicePrincipalConnection.ApplicationId `<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint </font></p><p><font face="Lucida Console" size="1">Notice that in sharing this I haven’t compromised my subscription where in my old style PowerShell passwords and credentials were embedded all over the place which is not a good story for production<br>
The next cool thing is we can test this by clicking on the Test Pane in the editor blade in the portal, and if the script need parameters we’ll be prompted for those..</font></p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image823.png"><img width="640" height="313" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb650.png" border="0"></a></p><p>Now we have tested it can be published (another button on the editor. Once that’s done we can setup a schedule e.g. I have a nightly (10:30 every night) schedule that never expires.</p><p>If you have a job that needs parameter like this script to stop all VMs for the specified Resource Group and whether to shutdown the VMs then we can set these as part of this process.. </p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/04/image824.png"><img width="435" height="480" title="image" style="border: 0px currentcolor" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/04/image_thumb651.png" border="0"></a></p><p>The blades for Azure automation also show us how the overnight runs are doing as per the screenshot at the top of this post&nbsp; and hopefully yours will be nice and green too <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/2016/04/wlEmoticon-smile11.png">.</p><p>So Azure Automation makes managing service a little bit easier and is something us data professionals need to know.&nbsp; However for a deeper dive into this world you’ll want to track my good friend <a href="http://www.techdiction.com/">Marcus Robinson</a> who is really hot on this.</p>]]></content:encoded>
    </item>
    <item>
      <title>If you haven’t got a question then Machine Learning is not the answer</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/if-you-havent-got-a-question-then-machine-learning-is-not-the-answer</link>
      <pubDate>Fri, 26 Feb 2016 06:14:57 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/2016/02/26/if-you-havent-got-a-question-then-machine-learning-is-not-the-answer/</guid>
      <description><![CDATA[I am in the middle of preparing for some more events the next big one being a day of machine...]]></description>
      <content:encoded><![CDATA[<blockquote> <p>I am in the middle of preparing for some more events the next big one being a day of machine learning (ML) at <a href="http://sqlsatexeter.azurewebsites.net/?utm_content=buffer250fd&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer">SQL Saturday Exeter</a>.&nbsp; The organisers asked me to make a short video to explain what I’ll be covering and that got me to thinking about what my advice would be having worked with the tool for a good year.</p></blockquote> <p><strong><font color="#646b86">What’s the question</font></strong>?&nbsp; Unlike many aspects of BI and data mining we are not on a fishing expedition, and although ML can just be use to explore data with its built in tools or via your own Python / R scripts that is not what is was designed for.&nbsp; The typical use cases for ML - predictive maintenance, customer churn, sentiment analysis are all about answering very specific questions when will a part fail, which customers am I about to loose, was that tweet being nice about me or not?</p> <p><strong><font color="#646b86">Does the answer lead to action</font></strong>? At recent briefing on ethics in medical data one of the speaker remarked that a significant factor in patients not completing their treatment was their credit card rating , the lower it was the more likely they would drop out.&nbsp; The problem is that it’s not easy to see what to do about that (no suggestions please), whereas in more typical customer churn scenarios, we might setup some sort of offer to retain those at risk.&nbsp; </p> <p>For me this is why ML has not quite taken in many organisation as expected based on the massive interest in it – It wows everyone but then it becomes of a question of applying it in organisations. Having said that I think a massive area is process automation and checking e.g. in contracts and financial approvals to detect fraud and spot mistakes.</p> <p><strong><font color="#646b86">ML is not perfect</font></strong>.&nbsp; We are very used to humans making mistakes indeed I would argue unless you made a mistake today you haven’t learnt anything. Learning machines also make mistakes - they can’t perfectly recognise speech or images for example. However they are starting to equal or out perform us in some of these areas.&nbsp; My point here is to have a process in place to handle this. Say we are in the business of approving&nbsp; loan applications -&nbsp; If ML is not confident of the outcome it will have a mid-range confidence value (say 0.33 to 0.66), where a lower score will automatically be rejected and a higher one accepted.&nbsp; For the mid range values we might then refer it to a human to decide.&nbsp; Similarly if ML can’t decode the postcode on a letter then maybe a human can- but then again in image recognition ML has ben proved to be better at humans when it comes to recognising objects and faces.</p> <p><strong><font color="#646b86">ML needs to be retrained</font></strong>.&nbsp; An example is the way to explain this – an algorithm for basket recommendation maybe superb but when new products appear there are no patterns to follow and even if they are these may not be typical behaviour.&nbsp; So for production you’ll need a process to do this retraining and ideally this should be <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-retrain-models-programmatically/">programmatic</a> rather than interactive.&nbsp; This is not any harder than consuming an API as you would to make a prediction. However in this case it’s a batch call with your training set as the argument.</p> <p><strong><font color="#646b86">Algorithms</font> </strong>are about numbers not industries.&nbsp; The patient not following though on treatment, the student dropping out of a course are just like the customer churn long used in retail and the same algorithms will work equally well in these other areas as all ML is doing is comparing correlations of factors against what we are trying to predict.&nbsp; Similarly anomaly detection works for bank fraud and for predictive maintenance</p> <p><font color="#646b86"><strong>Not your normal neural network.</strong></font>&nbsp; Buried in the neural network module in ML is ability to do deep learning using a special scripting language net# (nothing to do with .Net really). It is more for the hardened data scientist and if you want to know more check this session at last year’s <a href="https://channel9.msdn.com/Events/Cortana-Analytics-Suite/CA-Suite-Workshop-10-11SEP15/Deep-Neural-Networks">Cortana Analytics Workshop</a>.</p> <p><strong><font color="#646b86">ChChChanges.</font></strong>&nbsp; ML is continually evolving and this is important for two reasons, one check back regularly to see what has been added, and two if you have feedback then share it to drive features you feel you need.&nbsp; A good example of this is the much deeper support for Python in ML.&nbsp; However I am more interested in seeing more algorithms e.g. time series analysis and more OpenCV modules to handle images, both of which will mean we should be writing less of our own code anyway.</p> <p><strong><font color="#646b86">Do Something</font></strong>.&nbsp; The only way to begin to see the potential of ML in your organisation is to try it. Yes you need a question, yes you need data, and yes you do need to be scientific in your approach to the problem.&nbsp; However you don’t need to be a full on data scientist, you just need their curiosity, added to you data wrangling skills and business knowledge.&nbsp; The <a href="https://gallery.cortanaanalytics.com/">Cortana Analytics Gallery</a> is awash with interesting business based scenarios and tutorials to help you, so don’t just sit there…</p>]]></content:encoded>
    </item>
    <item>
      <title>Azure SQL Data Warehouse Don’t do this..</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/azure-sql-data-warehouse-dont-do-this</link>
      <pubDate>Mon, 26 Oct 2015 00:17:08 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/2015/10/26/azure-sql-data-warehouse-dont-do-this/</guid>
      <description><![CDATA[I am always one of the first to try new stuff when it comes out and so it was great for Microsoft to...]]></description>
      <content:encoded><![CDATA[<p>I am always one of the first to try new stuff when it comes out and so it was great for Microsoft to give me job doing this some 99 months ago.&nbsp; One of the latest things I signed up for was the Azure SQL Data Warehouse (ADW), and then setup a demo ADW so I could test it against Power BI.&nbsp; The good news is that had an internal cross charged Azure subscription to run this in, the bad news was that last month this cost me $1,000+..</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_30EB3BF9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_30EB3BF9.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_thumb_04CE3F08.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_thumb_5F00_04CE3F08.png" width="244" height="143" /></a></p> <p>Fortunately, we are allowed to make mistakes at work the trick is not to make the same one twice!!</p> <p>In this case the mistake was that I made was to leave this running and at this point it’s important to understand that while an ADW server looks a bit like an ordinary Azure DB server it’s actually a very different thing (apart from the cost that is).&nbsp; In Azure DB Server you can quickly scale up and down a server but you can’t completely shut down the server and leave your database parked there for later.&nbsp; </p> <p>However not only can you pause ADW, you can do this safe in the knowledge that your data will still be there for later when you want to resume your work.&nbsp; I should also mention that of course ADW scales massively more than ADB.&nbsp; In the screenshot below I have two databases running on my DeepFatDW Azure database server</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_4021A4C6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_4021A4C6.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_thumb_3B3EF10A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_thumb_5F00_3B3EF10A.png" width="640" height="417" /></a></p> <p>where TechNetDW is a data warehouse and DeepFat is an “ordinary” database which cannot be paused. ( but can be scaled up and down to a certain extent).</p> <p>I can pause and restart this ADW and I could have done this in PowerShell, for example</p> <p><font color="#646b86" size="1" face="Lucida Console">Suspend-AzureSqlDatabase`</font></p> <p><font color="#646b86" size="1" face="Lucida Console">–ResourceGroupName &quot;ResourceGroup11&quot;`</font></p> <p><font color="#646b86" size="1" face="Lucida Console">–ServerName &quot;DeepFatDW&quot; `</font></p> <p><font color="#646b86" size="1" face="Lucida Console">–DatabaseName &quot;TechNetDW&quot;</font></p> <p>Plus I can also dial up/down the compute power against the database, without affecting the data itself, so I could have a truly massive DW with only minimal compute against it until I realise I need more power&nbsp; </p> <p><font color="#646b86" size="1" face="Lucida Console">Set-AzureSQLDatabase </font></p> <p><font color="#646b86" size="1" face="Lucida Console">-DatabaseName &quot;TechNetDW&quot;` </font></p> <p><font color="#646b86" size="1" face="Lucida Console">-ServerName &quot;DeepfatDW.database.windows.net&quot; `</font></p> <p><font color="#646b86" size="1" face="Lucida Console">-ServiceObjective &quot;DW100&quot;</font></p> <p>and I could go further and embed this in <a href="https://azure.microsoft.com/en-us/documentation/services/automation/">Azure Automation</a> to schedule a scale down or pause overnight.</p> <p>So ADW is a great example of how services should work in the cloud, where scale down to save costs is as important as scale up, while data is protected, and you are in control.&nbsp; </p>]]></content:encoded>
    </item>
    <item>
      <title>Data, no use at all without a catalog</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/data-no-use-at-all-without-a-catalog</link>
      <pubDate>Tue, 06 Oct 2015 02:33:28 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/2015/10/06/data-no-use-at-all-without-a-catalog/</guid>
      <description><![CDATA[About a decade a go I went on a Microsoft BI boot camp which was also&nbsp; attended by Microsoft...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/metadata_613BFE5E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/metadata_5F00_613BFE5E.png"><img title="metadata" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="metadata" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/metadata_thumb_2369A9A6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/metadata_5F00_thumb_5F00_2369A9A6.png" width="642" height="350" /></a></p> <p>About a decade a go I went on a Microsoft BI boot camp which was also&nbsp; attended by Microsoft staff specifically Matthew Stephen and Rob Gray who inspired me to work towards joining Microsoft myself.&nbsp; Two years later I got in and haven’t looked back and I still track Matt on LinkedIn, so I was very interested in <a href="https://www.linkedin.com/pulse/data-lakes-debunked-matthew-stephen?trk=hp-feed-article-title-publish">his article on Data Lakes</a>.&nbsp; I won’t repeat that here other than to summarise it briefly for those that don’t like to click on hyperlinks.</p> <p>Data lakes are large heterogeneous repositories of data the idea being that essentially you can quickly store anything without worrying about it’s storage.&nbsp; Contrast this with a carefully curated data warehouse which has been specifically designed to be a high quality consistent store of business critical information.&nbsp; Of course this means that Gb per Gb&nbsp; data /.nbvcx much more expensive to build and maintain but this is because every bit of data in them is directly useful and applicable to the business. </p> <p>On the other hand a data lake will contain vast amounts of less obviously useful data for example while the data warehouse might contain all the transactions from the online store, the data lake would store all of the logs from the site running the store.&nbsp; The former is immediately valuable in showing sales trends the later seems to be largely useless.&nbsp; However if storage is nearly free (and it largely is if data is stored in the cloud) we can afford to keep everything on the off chance it might be useful.&nbsp; But we couldn’t justify processing the log data into our warehouse as this would be expensive in terms of compute and the human effort to make this work.&nbsp; Not only that we aren’t sure what we need from this other kind of data or what it will be used for. Instead we just catalogue it and hang on to it until we realise we need it.</p> <p>Let’s take an example – the company on-line store.&nbsp; The actual sales transactions get written into the data warehouse, but we decide it might be useful to store the web logs from the site as well, so they get thrown into the data lake, typically in a folder/container with a file for each time slice/ web server and the process is just a simple file copy from the web server.&nbsp; A couple of weeks later there seems to be something odd happening with the site and the cyber security firm we engage ask to see our logs and so we can provide them access to our data lake (we archive off the logs form the actual site to keep the servers nice and lean).&nbsp; They use their tools to analyse this and advise on a mitigation strategy.&nbsp; A few months later analysis of the data warehouse shows that the number of new customers being acquired is dropping despite discounts and promotions being in place.&nbsp; The suspicion is that the culprit might be the new customer sign up experience and a design agency is called in to conduct click stream analysis over the stored web logs to confirm this.</p> <p>A couple of points come out of this. </p> <ul> <li>The Data Warehouse is still needed for the reporting &amp; analytics that we have always done.  </li><li>The use of the logs wasn’t known when the data was stored and this data might not have been used at all. so trying to second guess how to store it at the time of arrival would be at best difficult and could be pointless.  </li><li>What is important is to catalogue what is stored in the lake and its structure as well as how it relates to other data be that in the data lake or in the data warehouse.&nbsp; </li></ul> <p>So in my opinion the term data lake is not a great description of what it does (how about a data museum?) and without understanding what is in there it is not a lot of use. So a key companion to the Azure Data Lake is the new&nbsp; <a href="https://azure.microsoft.com/en-us/services/data-catalog/">Azure Data Catalog</a>.&nbsp; </p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_14C18E72.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_14C18E72.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_thumb_2CE7897E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_thumb_5F00_2CE7897E.png" width="640" height="349" /></a></p> <p>This new freemium service does is a bit like <a href="http://blogs.msdn.com/b/mds/">Master Data Services in SQL Server</a>, but because it’s on line on Azure&nbsp; it’s accessible and available by default. However it also leverages and requires&nbsp; <a href="https://azure.microsoft.com/en-us/services/active-directory/">Azure Active Directory</a>&nbsp;<sup><font size="1">1</font></sup> so that catalogs are protected while still enabling teams inside an organisation to collaborate.</p> <p>If this is used as intended then not only do the data professionals record what is going into the data lake AND the data warehouse, everyone shares their knowledge about how data is used and how to join the dots to do specific analytics.</p> <p>So I would suggest two things start having a look at the principles of master data management in general and think about how this might play out in your organisation by having a look at the Azure Data Catalog.</p> <p><font size="1"><sup>1.</sup> This means that if you have an MSDN subscription linked to a personal account you may not be able to sign up to try this service however you can setup Azure Active Directory inside your subscription and then make a domain account a member of your subscription (a topic for another post).</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Cortana - Remembering the Future</title>
      <link>https://docs.microsoft.com/archive/blogs/andrew/cortana-remembering-the-future</link>
      <pubDate>Wed, 02 Sep 2015 00:35:54 GMT</pubDate>
      <dc:creator><![CDATA[Andrew.Fryer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/andrew/2015/09/02/cortana-remembering-the-future/</guid>
      <description><![CDATA[If you have ever watched the Star Trek First Contact film the crew allude to the fact that the star...]]></description>
      <content:encoded><![CDATA[<p><img alt=" " src="http://cdn.fansided.com/wp-content/blogs.dir/281/files/2013/09/Cortana-Screenshot.png" />If you have ever watched the Star Trek First Contact film the crew allude to the fact that the star ship Enterprise is named after the first space shuttle, when actually it’s the other way around the first space shuttle was so named because over 2 million star trek fans lobbied NASA to call it Enterprise.</p> <p>A different kind confusion seems to surround another icon of science fiction Cortana. Originally a fictional AI&nbsp; that was embedded in the Halo franchise of XBox games, Cortana is the name and inspiration of your digital assistant on phones and in Windows 10.&nbsp; That sort of makes sense as she was a very smart advisor to the Master Chief in those games, and now she can help us with our daily lives, if we want her to. </p> <p>However the real point of confusion seems to be the announcement of the <a href="http://www.microsoft.com/en-us/server-cloud/cortana-analytics-suite/what-is-cortana-analytics.aspx/">Cortana Analytics Suite</a>, specifically what is it and how does that relate the assistant on Windows 10 devices and phones?</p> <p>From a services perspective Cortana Analytics Suite represents the collection of data tools to do analytics that exist in Microsoft’s cloud services, Azure and Office 365. So it includes Power BI , Machine Learning, Data Lake, Data Catalog and Data Factory, amongst others <em> as well as the digital assistant, Cortana</em>..</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_1E2D4FDD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_1E2D4FDD.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/34/metablogapi/image_thumb_744F6C58.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-34-metablogapi/image_5F00_thumb_5F00_744F6C58.png" width="640" height="397" /></a></p> <p>This makes it a superset of all of these capabilities much in the same way as Office 365 covers traditional tools like Excel and Word as well as newer ones like Sway.&nbsp; However today this is just a collective term in that you can’t <em>buy</em> Cortana per se, so is this just the marketing folks trying to create impact and build on what is a cool brand?</p> <p>Not really, as that set of services can be used by any developer to create intelligence in application that also mimic Cortana in that game.&nbsp; For example you could develop applications to monitor your health and your team’s health through wearables like the Microsoft Band, recommend courses of action based on behaviour to make your web sites appear more personal and relevant to predict what action to take before systems fail and if allowed to carry out that preventive maintenance,</p> <p>Is Cortana Analytics Suite relevant?&nbsp; I have already done a series of posts on <a href="/b/andrew/archive/2015/04/09/azure-data-services-what-are-they.aspx">these services</a> and how they can be wired up to create solutions around <a href="/b/andrew/archive/2015/07/01/azure-data-services-for-predictive-analytics.aspx">predictive analytics</a>, <a href="/b/andrew/archive/2015/07/12/azure-data-services-for-big-data.aspx">big data</a>, <a href="/b/andrew/archive/2015/07/16/azure-data-services-for-near-real-time-scenarios.aspx">near real time analysis</a> and <a href="/b/andrew/archive/2015/05/15/azure-data-services-for-business-intelligence.aspx">“traditional BI”</a> – I just didn’t know at the time this would all be joined up in this way. What this means for me is that I am betting my future on Cortana.</p>]]></content:encoded>
    </item>
  </channel>
</rss>