Bringing source control to BI world! Heidi Hasting Bringing source control to BI world! Hello Everyone…
Thanks to All Sponsors Gold Sponsors Silver Sponsor Bronze Sponsor
Heidi Hasting Business Intelligence Professional over 7 years experience in Microsoft products. Formerly software developer. ALM/DLM enthusiast and Azure DevOps fan. Co-founder and Organiser of Adelaide Power BI User Group. Regular attendee at tech events (Azure Bootcamps, DevOps days, SQL Saturdays, Difinity and PASS Summit) Bit about me – what’s not on the slide Change hair colour frequently – makes it easy to find me at conferences, I go my natural colour brown to blend in For holidays I go to techie events Microsoft superfan
Why are you here? Do you ever have trouble finding the latest version of a report? Do you want to see the changes to a database/cube/report over time? Do you need to identify where a field is used across your BI Environment? Do you have issues with parallel development? Do you work in a Business Intelligence environment with no source control? If you answered yes to any of these questions then this session is for you! If you have questions throughout the presentation please feel free to ask them. Or if you don’t feel comfortable raising them in front of the group I’ll be around for the rest of today please do come see me. Ask the audience questions – Does anyone have databases? If a measure is changed do you know the who/what/when/why Do you have a backup Doesn’t require sysadmin to see things….
Agenda Why source control is important. The different Visual Studio project types (database, analysis services, integration services and reporting services) How to bring an existing business intelligence environment into Source Control How to make a change How source control helps collaboration. Tell em what your gonna tell em
Assumptions Source Control and access to it SQL Server Management Studio (SSMS) Visual Studio and/or SQL Server Data Tools Business Intelligence Database Engine SSIS = SQL Server Integration Services SSAS = SQL Server Analysis Services (multidimensional/tabular) SSRS = SQL Server Reporting Services Some experience working with traditional business intelligence solutions using Microsoft SQL Server So before we get started I want to just mention a few assumptions I’ve made You’ve heard of Source Control
Source Control – What & Why Source control is management of changes to files, websites… Sometimes called Version Control, Revision Control Keeps history for you, so you can see the changes to a database/cube/report over time Helps with the Who/What/When/Why Backup/Disaster Recovery parallel development Many more… https://tinyurl.com/yagva37m Laymans terms – think file systems, track changes on documents but for files, keeps history for you, allows you to revert changes, see changes over time, backup. Example of when it can help you out, db changes made, application breaks, hello source control tell me what changed… Or maybe you don’t have enough access to see all the details…
Source Control – Who Developer Database Administrator (DBA) Business Intelligence Developer Report Developer Data Scientist Data Analyst EVERYONE!!!!
Source Control – When Proactively Retrospectively Starting a new solution Database, ETL, Cube, Reports Scripts Retrospectively Solution already deployed Potentially managed on server environment. Proactively or Retrospectively Proactively when you are working on any artefact/CI put it into source control, if it ends up being deployed to an environment great. If it doesn’t you still have it for reference. Retrospectively – You have an existing environment and you just want to give yourself a backup, or get started part way through the process.
Scenario DB+SSIS+SSAS(Multi)+SSRS Lets start with a scenario, I am a business intelligence developer with a server environment containing SSDB, SSAS, SSIS, SSRS solutions
DB Here is my SSDB solution the WideWorldImporters DW
SSIS SSIS solution a DailyETLMain package in project deployment mode as part of the Daily ETL project
SSAS SSAS Multidimensional cube WideWorldImportersMultidimensionalCube
SSRS SSRS demo
Visual Studio
Visual Studio SSDT and SSDT-BI Now lets talk about what/how Visual Studio comes into play. Visual Studio or for some SQL Server Data Tools has a number of project types that support business intelligence solutions. Note: Power BI not so much. Over the years the installation components have changed, for this scenario I have installed SSDT and SSDT BI So If we load Visual Studio and do New > Project… then the next slide is what we would see for BI SSDT and SSDT-BI
So you can see here we have Analysis Services Multidimensional and Tabular, Integration Services (there is actually two but only one displayed there), Reporting Services and Database Project. So now that you’ve seen the project types lets setup projects for my environment
Demo: Bring Existing BI Environment into Visual Studio Projects
Solution is now in Source Control!!
Recap Why source control is important. The different Visual Studio project types (database, analysis services, integration services and reporting services) How to bring an existing business intelligence environment into Source Control How to facilitate Parallel Development
Where to from here Changes all locally in the visual studio projects nothing deployed to the environment We can deploy to the environment when ready We can revert the changes in source control… There is also the concept of branches in source control….
Questions
Further Information Wide World Importers samples - https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/wide-world-importers SQL Server Data Tools - https://www.visualstudio.com/vs/features/ssdt/ VSTS - https://www.visualstudio.com/team-services/ Database Projects: https://msdn.microsoft.com/en-us/library/hh272702(v=vs.103).aspx What is source control? https://www.codenewbie.org/blogs/what-is-source-control Troy Hunt’s “The 10 commandments of good source control management” - https://www.troyhunt.com/10-commandments-of-good-source-control/
Further Information VSTS GIT Branching Strategies https://docs.microsoft.com/en-us/vsts/git/concepts/git-branching-guidance?view=vsts ALM Rangers Guidance (checkout Branching and Merging Guide) https://blogs.msdn.microsoft.com/visualstudioalmrangers/2015/04/21/library-of-videos-and-publications-aka-msvsarpublications/ https://github.com/ALM-Rangers/Guidance
Thank for attending SQLSaturday Perth!!
Heidi Hasting - Contacts Twitter: @HeidiHasting
Screenshots in case of demo issues
Database Engine
Note: mention the folder structure options…
Design View
T-SQL View
Now lets add the SSIS project
SSIS
Add SSAS
Now lets add the SSRS project
Adding to Source Control - VSTS There are many source control solutions out there (Github, TFS, VSTS, Subversion, etc) but for this demo I will use VSTS. Here I have a VSTS Team Project called SQL Saturday South Island 2018 and as you can see its empty
Visual Studio While there are many options to add files to source control such as PowerShell, GIT Bash, GIT GUI, via Web and other tooling. I will be using Visual Studio In Visual Studio Load the Team Explorer pane Under Hosted Service Providers Select Connect… Connect to the VSTS server Connect to the SQL Saturday South Island 2018
We’re all connected and good to go
Select Add Solution to Source Control Select Add Solution to Source Control.. And Visual Studio knows that we want it to be added to the VSTS team project we were connected to
Solution and Project files are modified to include reference to source control.
As this is GIT the commit is local first, then we need to push to remote repository
Note the URL is from an earlier slide
Time to make a change Added Display Name, notice the little tick next to Customer as there has been a change to the file
Right click the file and select Commit
Let’s see the changes over time Added Display Name, notice the little tick next to Customer as there has been a change to the file
Local History Added Display Name, notice the little tick next to Customer as there has been a change to the file
Remote History - VSTS For remote repository history use VSTS
Compare Select the two versions to compare, right click and select Compare…
Added Display Name, notice the little tick next to Customer as there has been a change to the file