DP-900 Microsoft Azure Data Fundamentals exam Study Guide

Describe core data concepts (15-20%)

Describe types of core data workloads

Azure CLI – Interactive Mode

If you are using the Azure Portal to do some tasks it may be time to take a look at using the Azure CLI (Command Line Interface) as this can be a good way to learn to start automating some tasks. Handily the Azure CLI has an interactive mode.

You can use Azure CLI in interactive mode by running the az interactive command. This mode places you in an interactive shell with auto-completion, command descriptions, and examples

Read the blog post and then checkout my video tutorial at the bottom of the article.

You can read more on the Azure CLI interactive mode docs.

Screen shot of the AZ CLI

If like me you like to automate tasks (for numerous reasons) then the Azure CLI can be harassed to script out repetitive tasks into lets say a deployment script.

Imagine the scenario where I need to work with Virtual Machines and I want to learn the Azure CLI commands for listing the VM’s I have and then go ahead and create a brand new VM. Lets take a look at how to do that below: –

Create a Resource Group using the Azure CLI
az group create –name myDemoRG –location westeurope

Create a Resource Group using AZ CLI interactive mode
az >> group create –name myDemoRG –location westeurope

The difference here is something called scoping and you can learn about scoping. It’s the same command we type but we don’t need the az at the start as we are currently scoped at the top level.

If you have read about scoping in the above link lets now take a look at working with virtual machines.

Create a Virtual Machine using the Azure CLI
az vm create –resource-group myDemoRG –name myDemoVM –image win2019datacenter –admin-username gsuttie

Create a Virtual Machine using AZ CLI interactive mode
az vm>> create –name myDemoVM –resource-group myDemoRG –image win2019datacenter –admin-username gsuttie

The difference here is something called scoping and you can learn about scoping. It’s the same command but this time in the Azure CLI interactive mode we are scoped to working with Virtual Machines, this is accomplished by typing %%vm and means we can create, list, delete VM’s whilst scoped to using Virtual Machines.

If your not familiar with using the Azure CLI then take a look at trying out the Interactive mode which will give you defaults and examples.

Lear more :-

Azure Greg – YouTube Channel

Today I am announcing my official Azure Greg YouTube channel – this is where I will be recording demo videos and showing tips and tricks I pick up as I go – feel free to subscribe and get notified of the content as I release it.

I have a few videos up already which include the following: –

  • Rehearse your talk with PowerPoint Coach – Here I show off how to use a feature in PowerPoint called Research with coach, this helps you when rehearsing your talks. The AI feature listens to you as you present and gives you feedback during and a report at the end with tips on how to improve.
  • PowerToys – how to install and start using it for Windows.
  • Learn about Hugo – How to get up to speed once Hugo is installed, you can use this to create your first ever blog using Hugo.
  • How to install and customize the Windows Terminal – In this video, I take you through how to install and then customize the Windows Terminal.
  • Azure Resource Graph – In this video, I demo Azure Resource Graph and talk about an example JSON file you can use for any subscription which will give you an excellent inventory of your Azure resources.

If there is something you would really like to have me cover in a short video please do let me know. I will conduct twitter polls from time to time to ask what people would like to see.

Thank you to the current subscribers – there is a lot more content on the way.

Introducing Skylines Summer Sessions

Today we kick off what we have called Skylines Summer Sessions.

Over the Summer months, Skylines Academy, myself and Richard Hooper will be interviewing guests from around the world on Azure related subjects, we get to ask them some fun questions and guests will also be giving us a demo on their subject which will be available on YouTube Live for you to ask questions 🙂

You can catch our first episode with Thomas Maurer who is talking to us and giving a demo on Azure Arc today!

Join us at 6pm GMT +1https://www.youtube.com/watch?v=n164SSoC388&feature=youtu.be

Tune in, ask your questions, and learn about Azure every Tuesday throughout Summer. You can find out more over at the site.


If you haven’t heard of or used PowerToys then this blog post is for you.

Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. Inspired by the Windows 95 era PowerToys project, this reboot provides power users with ways to squeeze more efficiency out of the Windows 10 shell and customize it for individual workflows.

To get up to speed with PowerToys then check out my YouTube video below.

You can find the source code for PowerToys here: – https://github.com/microsoft/PowerToys

I hope you find PowerToys useful.

Azure Tips n Tricks

I have had a fair bit of time recently and spent most of my time learning the content I wanted to learn, nice to have that time right?

I have been going through the Azure Tips n Tricks website and videos created by Michael Crump, you can follow Michael on Twitter and please also check out his twitch stream which is a lot of fun.

There are currently around 260+ blog posts and videos which cover a number of Azure tips and tricks and I reckon everyone will learn something by checking them out, I have learned a tonne of new things already.

Here are a list of some of my favorites so far: –

Plenty more to go through, but I do recommend everyone has a look at them as you will absolutely learn something new.

Azure DevOps Best Practice Template Project

I wanna show you how you can take an existing Azure DevOps project and use this as a template for any new project within Azure DevOps. So let’s say you create a brand new project within Azure DevOps and set up a default Wiki and add a dashboard etc. (think of your ideal DevOps project setup).

Ok, now that you have this in place you can actually export the entire project – why might you want to do that I hear you ask?

This is so we can effectively clone this best practice project and use, again and again, heck you can even source control the template if you so wish.

So how do you export your best practice website template with you lovely custom process flow, wiki, etc in place? – this is where the following link comes in handy.


From this above link check the part that says Building a new custom template and you’ll see a link that is basically this:-


Log in and then look for the link top right that says Build your own template

Now select the Organization you want to use and select the project you wish to use as the best practice template project.

Ignore the error about query items, seems to be a bug, Click Generate Artifacts and you should now have a zip file containing several JSON files.

So now we have the project template JSON files exported how do we create a new project based on this zip file? – well, unfortunately, you need to use the AzureDevopsDemoGenerator tool again.

Log back into the AzureDevopsGenerator and click on the ‘choose template‘ button as seen below:-

and then click Private and then choose your zip file which is the file you exported.

Now fill in the last screen like the screen below and boom!

You now have a new Azure DevOps project which is based on your best practice project like so.

Please give this a try and let me know your thoughts on how useful this is for ya – enjoy!


What have I been up to since I was furloughed?

So April 2020 has been an interesting month for me personally, the project I was doing at work got paused due to the customer not being able to support remote working, work had nothing in the pipeline for me to do so I got furloughed, wow talk about being kicked in the nuts, but rather than complain, let’s use this opportunity to learn.

Thank you to everyone who has reached out to me, they know who they are and it’s hugely appreciated.

If you know me then you know that I am always learning, always setting myself goals for the months ahead and so I decided to not write blog posts or produce content for the time I’m furloughed and spend it learning. If I had to write down everything I wanted to learn and read about it would turn into a book itself.

So that being said I wanted to learn containers and GitHub Actions as the first 2 port of calls and fit in some extra community work in between that.

I have probably done more community work this month than in the past 3 or 4 combined and it been amazing – being able to work from home and just get on a call with folk wanting to learn something or getting on a call to help someone figure out an issue has been very sweet. Being able to moderate Michael Crump’s Twitch stream has been super cool, twitch is something I think has a very bright future.

Working from home (albeit not actually working) is amazing, its so much more productive than working in an office or out on-site at a customer.

The following is a list of just a few of the things I’ve accomplished this month, it doesn’t cover the hours, the calls, the number of times I had to change the schedule fo the gav event – would I change what I did if I had the month over – nope!.

  • Global Azure Virtual 2020 – One of the organisers, website creation, speaker sign-ups, chasing people for content, updating the schedule. Also a moderator on the 3 day which was the Live Stream (9 hours).
  • Moderator and participant in Michael Trumps Twitch Streams covering Azure app config, Live Share, GitHub Actions, WSL, and other more general fun topics.
  • Spoke at the Belgium User Group – on Supercharging your Azure Learning as part of the Belgium Community Week
  • Spoke at the Boston User Group – on Supercharging your Azure Learning.
  • Time spent doing Pluralsight this month learning GitHub Actions.
  • Completed Cloudskills course on – Docker Jumpstart.
  • Microsoft Learn learning – 3 modules complete.
  • Microsoft Products Groups (10 PGI’s)
  • Mentoring several people with starting blogs, learning Hugo, exam study guides, and people looking for advice on how to become an MVP.
  • Created a DP-300 Administering Relational Databases on Microsoft Azurestudy guide: – https://gregorsuttie.com/2020/04/19/azure-dp-300-study-guide/
  • Spoke 1-1 with more a number of community people which a probably the best part of being off.

In May I plan to brush up on my SQL and PowerBI skills and looking forward to that, it’s been a few months since I touched either.

Still amazes me just how many great people I have spoken to this past month and it’s been a blast.

COVID-19 – overcoming business challenges with Microsoft Azure

I was recently asked to contribute to Nigel Frank’s Azure industry whitepaper, which collates Covid-19 related advice for businesses and professionals. My insight has been featured alongside that of a number of my fellow Microsoft Azure MVP’s.

The whitepaper covers five particular challenges many are struggling with at this moment: cost saving, data security, remote working, growing at scale, and business continuity. Hopefully, my own and my peers’ advice will go some way to helping those looking for answers at this unprecedented time.

Please do have a read and share with anyone who would benefit from it: https://www.nigelfrank.com/overcoming-business-challenges-with-azure/

Stay safe!

Azure DP-300 Study Guide

The following I will be using to study for the DP-300 exam, now I am no SQL Server expert, far from it, some of these links might not be the best fit for that particular area, use them at your peril! 🙂

If your looking for extra study material or amazing SQL Server Workshops then check this out https://microsoft.github.io/sqlworkshops/

Hopefully this is of some use to people – if you find more accurate links let me know and I’ll update.

Plan and Implement Data Platform Resources (15-20%)

Deploy resources by using manual methods
• deploy database offerings on selected platforms
• configure customized deployment templates
• apply patches and updates for hybrid and IaaS deployment

Recommend an appropriate database offering based on specific requirements

• evaluate requirements for the deployment
• evaluate the functional benefits/impact of possible database offerings
• evaluate the scalability of the possible database offering
• evaluate the HA/DR of the possible database offering
• evaluate the security aspects of the possible database offering

Configure resources for scale and performance

• configure Azure SQL database/elastic pools for scale and performance
• configure Azure SQL managed instances for scale and performance
• configure SQL Server in Azure VMs for scale and performance
• calculate resource requirements
• evaluate database partitioning techniques, such as database sharding

Evaluate a strategy for moving to Azure

• evaluate requirements for the migration
• evaluate offline or online migration strategies
• evaluate requirements for the upgrade
• evaluate offline or online upgrade strategies

Implement a migration or upgrade strategy for moving to Azure

• implement an online migration strategy
• implement an offline migration strategy
• implement an online upgrade strategy
• implement an offline upgrade strategy

Implement a Secure Environment (15-20%)

Configure database authentication by using platform and database tools

• configure Azure AD authentication
• create users from Azure AD identities
• configure security principals

Configure database authorization by using platform and database tools

• configure database and object-level permissions using graphical tools
• apply principle of least privilege for all securables

Implement security for data at rest

• implement Transparent Data Encryption (TDE)
• implement object-level encryption
• implement Dynamic Data Masking
• implement Azure Key Vault and disk encryption for Azure VMs

Implement security for data in transit

• configure SQL DB and database-level firewall rules
• implement Always Encrypted
• configure Azure Data Gateway

Implement compliance controls for sensitive data

• apply a data classification strategy
• configure server and database audits
• implement data change tracking
• perform vulnerability assessment

Monitor and Optimize Operational Resources (15-20%)

Monitor activity and performance

• prepare an operational performance baseline
• determine sources for performance metrics
• interpret performance metrics
• assess database performance by using Azure SQL Database Intelligent
• configure and monitor activity and performance at the infrastructure, server, service, and database levels

Implement performance-related maintenance tasks

• implement index maintenance tasks
• implement statistics maintenance tasks
• configure database auto-tuning
• automate database maintenance tasks
– Azure SQL agent jobs, Azure automation, SQL server agent jobs
• manage storage capacity

Identify performance-related issues

• configure Query Store to collect performance data
• identify sessions that cause blocking
• assess growth/fragmentation of databases and logs
• assess performance-related database configuration parameters
– including AutoClose, AutoShrink, AutoGrowth

Configure resources for optimal performance

• configure storage and infrastructure resources
– optimize IOPS, throughput, and latency
– optimize tempdb performance
– optimize data and log files for performance
• configure server and service account settings for performance
• configure Resource Governor for performance

Configure a user database for optimal performance
• implement database-scoped configuration
• configure compute resources for scaling
• configure Intelligent Query Processing (IQP)

Optimize Query Performance (5-10%)

Review query plans
• determine the appropriate type of execution plan
– live Query Statistics, Actual Execution Plan, Estimated Execution Plan, Showplan
• identify problem areas in execution plans
• extract query plans from the Query Store

Evaluate performance improvements
• determine the appropriate Dynamic Management Views (DMVs) to gather query performance information
• identify performance issues using DMVs
• identify and implement index changes for queries
• recommend query construct modifications based on resource usage
• assess the use of hints for query performance

Review database table and index design
• identify data quality issues with duplication of data
• identify normal form of database
• assess index design for performance
• validate data types defined for columns
• recommend table and index storage including filegroups
• evaluate table partitioning strategy
• evaluate the use of compression for tables and indexes

Perform Automation of Tasks (10-15%)

Create scheduled tasks
• manage schedules for regular maintenance jobs
• configure multi-server automation
• configure notifications for task success/failure/non-completion

Evaluate and implement an alert and notification strategy
• create event notifications based on metrics

• create event notifications for Azure resources

• create alerts for server configuration changes
• create tasks that respond to event notifications

Manage and automate tasks in Azure
• perform automated deployment methods for resources
• automate Backups
• automate performance tuning and patching
• implement policies by using automated evaluation modes

Plan and Implement a High Availability and Disaster Recovery (HADR)
Environment (15-20%)

Recommend an HADR strategy for a data platform solution
• recommend HADR strategy based on RPO/RTO requirements
• evaluate HADR for hybrid deployments
• evaluate Azure-specific HADR solutions
• identify resources for HADR solutions

Test an HADR strategy by using platform, OS and database tools
• test HA by using failover
• test DR by using failover or restore

Perform backup and restore a database by using database tools
• perform a database backup with options
• perform a database restore with options
• perform a database restore to a point in time
• configure long-term backup retention

Configure DR by using platform and database tools
• configure replication
• configure Azure Site Recovery for a database offering

Configure HA using platform, OS and database tools
• create an Availability Group
• integrate a database into an Availability Group
• configure quorum options for a Windows Server Failover Cluster
• configure an Availability Group listener

Perform Administration by Using T-SQL (10-15%)

Examine system health
• evaluate database health using DMVs
• evaluate server health using DMVs
• perform database consistency checks by using DBCC

Monitor database configuration by using T-SQL
• assess proper database autogrowth configuration
• report on database free space
• review database configuration options

Perform backup and restore a database by using T-SQL
• prepare databases for AlwaysOn Availability Groups
• perform transaction log backup
• perform restore of user databases
• perform database backups with options

Manage authentication by using T-SQL
• manage certificates
• manage security principals

Manage authorization by using T-SQL
• configure permissions for users to access database objects
• configure permissions by using custom roles

Good luck with the Exam!