Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Hands-On SQL Server 2019 Analysis Services
Hands-On SQL Server 2019 Analysis Services

Hands-On SQL Server 2019 Analysis Services: Design and query tabular and multi-dimensional models using Microsoft's SQL Server Analysis Services

Arrow left icon
Profile Icon Steven Hughes
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Full star icon 5 (6 Ratings)
Paperback Oct 2020 474 pages 1st Edition
eBook
€8.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
Arrow left icon
Profile Icon Steven Hughes
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Full star icon 5 (6 Ratings)
Paperback Oct 2020 474 pages 1st Edition
eBook
€8.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
eBook
€8.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Hands-On SQL Server 2019 Analysis Services

Chapter 1: Analysis Services in SQL Server 2019

As you prepare to build your analytic models in SQL Server, you need to understand the basics about SQL Server Analysis Services (SSAS) including the purpose of the overall platform, with a basic understanding of the product. We will be exploring the origin of SSAS and its evolution into what we use today.

Upon completion of this chapter, you should understand where SSAS fits into the overall data analytics ecosystem. In this chapter, we're going to answer the following key questions about Analysis Services: 

  • What is SQL Server Analysis Services anyway?
  • Why use SQL Server Analysis Services?
  • What's new in SQL Server Analysis Services 2019?
  • What are the tools used with SQL Server Analysis Services?
  • One last thing – our sample data

In preparation for the rest of the book, the final section of the chapter discusses the tools we use. We will provide links and instructions for the installation procedures to prepare for the various examples and development used throughout the book. We will also walk through the restoration of the SQL Server database used to support our Analysis Services examples in later chapters.

What is SQL Server Analysis Services anyway?

SSAS is distributed as part of the SQL Server stack of tools. This stack has included a variety of tools over the years:

  • SQL Server Management Studio
  • Data Transformation Services
  • SQL Server Integration Services
  • SQL Server Reporting Services
  • Data Quality Services
  • Master Data Services
  • Data Virtualization with PolyBase
  • Big Data Clusters

Some of these options have been part of SQL Server for years, such as Integration Services, but some are brand new to SQL Server 2019, such as Big Data Clusters. Analysis Services has been in the product line for a long time, having been added in 1998.

SQL Server Analysis Services is not SQL Server

This statement may seem odd, but it is important to understand the place that Analysis Services has in the SQL Server stack and related Microsoft Business Intelligence (MSBI) ecosystem. As the list earlier in the chapter calls out, Analysis Services and many other products have been included in the purchase of SQL Server but are not a relational database management system (RDBMS).

The only component of SQL Server that has no official title is the relational data engine. It is simply referred to as SQL Server. SQL Server directly refers to the capability to store data in tables and use Transact-SQL or TSQL to interact with the data. Relationships, indexes, views, and stored procedures can be used in this engine and are commonly used for transactional systems and data warehouse solutions.

Analysis Services is designed to optimize data for analysis and reporting. Relational systems specialize in managing large amounts of transactions with good performance. Analytic solutions such as Analysis Services are designed to aggregate and query large amounts of data efficiently. While design methodologies such as star schemas are designed to optimize relational systems for analytic workloads, these schemas still require significant optimization within relational systems to match the performance of analytic solutions.

Relational versus analytic workloads

Relational workloads are typically normalized in relational database systems. Normalization involves using a lot of related tables to keep the data changes to a minimum. They are optimized to load data. Analytic workloads are denormalized using large flat tables with minimal relationships. This keeps the work of reading the data to a minimum.

The key takeaway here is that SQL Server refers to the relational database engine. Analysis Services is a separate data storage solution that is optimized for analytic and reporting workloads.

SQL Server Analysis Services through the years

SSAS has a long and interesting history. Personally, I started working with Analysis Services with its first release in 1998. Microsoft did not reinvent the wheel; they acquired another company to accelerate their introduction into analytic server tools or Online Analytical Processing (OLAP) servers. They started the process in 1996 and acquired Panorama Software's development team to begin the development of their new OLAP server product called OLAP Services 7.0, which was shipped with SQL Server 7.0 in 1998.

OLAP Services was a multidimensional database solution. Microsoft rebranded this to Analysis Services with its SQL Server 2000 release. They made significant changes to the multidimensional server and supporting technology in the 2005, 2008, and 2012 releases. The multidimensional server was designed to work with large-scale data on spinning disks. As hardware continued to improve, optimizations for the platform changed and we saw the shift to more memory-optimized solutions.

Enter Power Pivot with SQL Server 2008 R2 and Excel 2010. This is a significant turning point in the Analysis Services story. The Vertipaq compression engine was introduced to the MSBI set of offerings. While technically a part of SSAS, Power Pivot was released to Excel first. This columnar-based in-memory solution laid the groundwork for tabular models in Analysis Services, which is now the preferred option for working with Analysis Services.

Check out the following timeline. It illustrates the key points in the history of Analysis Services and related technologies:

Figure 1.1 – Over 20 years of Microsoft Analysis Services history

Figure 1.1 – Over 20 years of Microsoft Analysis Services history

Microsoft has focused most of its attention on the tabular model technology in the most recent releases of Analysis Services. This technology is the heart of the Power BI products and is the only model type supported as a native Azure technology.

We will walk through the value of both types of models in Chapter 2, Choosing the SQL Server 2019 Analytic Model for Your BI Needs. Let's take a step back and look at why you would consider using Analysis Services to support your workloads today.

Why use SQL Server Analysis Services?

Now that you understand where Analysis Services fits into the SQL Server stack and the Microsoft BI ecosystem, why would you choose to use Analysis Services? Traditionally, Analysis Services was the best option to organize data for easy and performant analysis of data at scale. I have used Analysis Services to optimize data warehouses built on a variety of relational technologies including Microsoft SQL Server and Oracle. Analysis Services is source agnostic. If you can connect to the source, you have a use case for Analysis Services if you want more efficient analytics and reporting.

Optimized for reporting and analytics

This is the primary reason OLAP servers were introduced to the market. Earlier, we called out relational solutions and their optimization for efficient transaction handling. However, many of the optimizations for transaction handling conflict with reporting needs. One key example is the complexity of a relational solution.

The following diagram shows the complexity of relational design. The number of tables and joins required for reporting and analytics hinders the performance of report writers and queries:

Figure 1.2 – Relational diagram of the Wide World Importers sales schema

Figure 1.2 – Relational diagram of the Wide World Importers sales schema

As you can see in the preceding diagram, relational models make heavy use of foreign keys and related tables. Ralph Kimball introduced dimensional modeling and the star schema concepts to help optimize read techniques with relational systems. This resulted in simpler, flatter (denormalized) schemas such as the following diagram, which is the best design to support multidimensional model design:

Figure 1.3 – Star schema diagram for Wide World Importers sales facts

Figure 1.3 – Star schema diagram for Wide World Importers sales facts

While the star schema and dimensional models improved the ability of relational systems to extract reporting data, they were still bound to relational rules and languages. OLAP servers were introduced to further optimize the data for end user consumption. This resulted in even simpler, user-friendly options. The following example shows a pivot table in Excel that is directly connected to an Analysis Services model. This makes the data accessible and easy for users to analyze and create reports without deep technical skills:

Figure 1.4 – Excel pivot table connected to an Analysis Services model

Figure 1.4 – Excel pivot table connected to an Analysis Services model

Let's see the relation of Analysis Services with Excel.

Works great with Excel

This leads to one of the primary reasons that Analysis Services has become a beloved delivery platform for users and IT organizations. Once data is delivered in Analysis Services, it can be easily consumed by Excel. When a user connects to an Analysis Services model, they are able to interact with the data and build what they need from the underlying database without coming back to IT for additional support.

Organized with end users in mind

The other reason that has to be considered is that the data is organized to support the business, not database or code efficiencies. Well-designed OLAP solutions use business-friendly names for the data. OLAP solutions typically hide system fields as well making sure the data in the OLAP database is relevant.

Here is a list of key user-friendly features in OLAP databases:

  • Proper spelling and grammar, using spaces, capitalization, and punctuation.
  • Hidden system values such as primary keys, surrogate keys, and system names.
  • Relationships built in so the user does not have to determine how the data is related; it is related in the model itself.
  • Pre-existing common calculations such as totals or averages, which respond correctly to filtering or slicing.

The following table shows how reporting queries becomes simpler as the database engine and structure is more focused on an aggregated and report-friendly structure:

Figure 1.5 – How reporting queries becomes simpler

Figure 1.5 – How reporting queries becomes simpler

Each of these queries returns the same results:

Total Sales	Total Profit	Buying Group
73037043.78	31660852.75	      N/A
62654262.56	27125589.10	      Tailspin Toys
62352133.11	26942739.05	      Wingtip Toys

As you can see, making data more consumable for users is one of the key reasons to use Analysis Services. When considered in combination with OLAP-friendly tools such as Excel, Power BI, and Tableau, the use of OLAP servers is even more compelling.

What's new in SQL Server Analysis Services 2019?

The focus of this book is on using SSAS 2019. What has Microsoft added to the product in its most recent release? Because Analysis Services is effectively broken into two types of databases – multidimensional and tabular – we will talk about the changes to each separately.

Multidimensional models in 2019

This is the short list. Microsoft has not made significant changes to multidimensional capabilities in Analysis Services since the SQL Server 2012 release. Even that release focused on the new xVelocity In-Memory Analytics Engine (aka Vertipaq) that would support tabular models. Microsoft considers the multidimensional model in Analysis Services mature and is not adding major features at this point. The focus is on bug fixes and various performance enhancements to the engine. The key takeaway here is that multidimensional models still have a place but are not receiving any significant updates. The following is from Microsoft's documentation:

Multidimensional mode and Power Pivot for SharePoint mode are staples for many Analysis Services deployments. In the Analysis Services product lifecycle, these modes are mature. There are no new features for either of these modes in this release. However, bug fixes and performance improvements are included.

Source

https://docs.microsoft.com/en-us/analysis-services/what-s-new-in-sql-server-analysis-services#sql-server-2017-analysis-services

Tabular models in 2019

While multidimensional models are considered mature, Microsoft is continuing to make significant investments in tabular model technology. Since its release in 2012 until now, major changes have happened with tabular models.

Compatibility levels

When working with tabular models, you need to understand compatibility levels. Microsoft introduced compatibility levels to allow new versions of Analysis Services to be backward compatible while enabling significant changes to supported features. When creating a tabular model, it is recommended to use the most current compatibility level. However, if you have an existing model and want to upgrade to the latest SQL Server version, you can set your compatibility level to what you are currently running until you have a chance to update the level and test it with the new features. The compatibility level is set when creating a new project in Visual Studio.

SQL Server 2019 supports the 1500 (SQL Server 2019), 1400 (SQL Server 2017), and 1200 (SQL Server 2016) compatibility levels. The features released with SQL Server 2019 are included in compatibility level 1500.

Here are some of the key updates included with SQL Server 2019 Analysis Services (compatibility level 1500):

  • Query interleaving
  • Calculation groups in tabular models
  • Governance setting for Power BI cache refreshes
  • Online attach
  • Many-to-many relationship support

Let's look at each of these changes in terms of what they are and why they matter.

Query interleaving

Query interleaving allows you to set how queries are handled based on query length and performance. Tabular model queries are handled in a first-in, first-out model (FIFO) by default. This means that a long-running query could make shorter queries run for longer if they follow that query in the queue. By enabling this feature, shorter queries can be executed during a long query run. This feature is only available for import models, not Direct Query. However, if you have a high-concurrency tabular model solution (lots of users or complex queries), this feature could improve performance for your users and reduce CPU pressure on the server.

Calculation groups

Calculation groups are used to group related calculations, which users often work with at the same time. This is really helpful with large complex models with many different calculations for the users to navigate. Microsoft calls out that Time intelligence will benefit from this significantly. For example, you can create a calculation group that has Current, Month-to-Date (MTD), Quarter-to-Date (QTD), and Year-to-Date (YTD) and call it xTD. When the user views the deployed model, they will see a calculation group as a single column they can add to their visual, which displays all four of these calculations as applied to a base measure such as Revenue. This feature has been added to improve usability in complex models.

Governance settings for Power BI cache refresh

The Power BI service caches data for dashboards and reports to improve performance and user experience when using live connections with tabular models. However, in some cases, this can cause a significant amount of queries with the possibility of overloading a server. This setting will override background refresh policies set on the client, preventing performance issues on the server.

Online attach

Currently, updates to tabular models require the model to be taken offline while deploying changes to the model. This results in downtime for the model. This feature allows model designers to deploy model changes live. This is similar to the shadow copy feature with multidimensional models, which supports the same online deployment.

The process currently is supported using XML for Analysis (XMLA) (more about that later). However, for tabular models, you will need to account for double the model's memory footprint during the online attach operation. The effective result is that during the attach process, both the new model and the old model will be in memory during the process. Once the process has completed, the old model will be removed. During the operation, users can continue to query the model and will start using the new model once it is loaded.

Many-to-many relationship support

Many-to-many relationship support has always been an issue with tabular models. This change allows relationships to be created between two tables where the relationship may not be unique. For example, if you have a fact table that is aggregated to the month, you will now be able to use the month value from a date table that has daily granularity. This allows cleaner, simpler models that are easier to use. Next, we will look at the tools that are used with SSAS.

What are the tools used with SQL Server Analysis Services?

Because SSAS is part of the SQL Server stack, many tools can be used to support both products. Microsoft has made a significant push to consolidate tooling over the years. As a result, we have two key tools used for building and interacting with models – SQL Server Management Studio (SSMS) and Visual Studio. In the following sections, I will discuss what role each plays and where to get the tools to match the work we are doing in the rest of the book. We will also walk through the installation of both Analysis Services modes.

SQL Server 2019 Developer edition

Let's start with installing SQL Server 2019 and both Analysis Services modes. We will be using the Developer edition of the SQL Server products. Because we will be using data stored in SQL Server to support our models, you will be installing three instances of SQL Server – one relational, one multidimensional, and one tabular. The relational and multidimensional instances will be installed during the same installation. The Developer Edition is the functional equivalent of the Enterprise Edition.

You can find the latest version of SQL Server 2019 Developer edition by searching for SQL Server 2019 Developer in your preferred search engine. The current location for all SQL Server downloads is https://www.microsoft.com/en-us/sql-server/sql-server-downloads. You should download the Developer edition as shown in the following screenshot. It is a free developer option for you to use while learning SSAS:

Figure 1.6 – Downloading the Developer edition

Figure 1.6 – Downloading the Developer edition

We do have the ability to install two of the instances simultaneously. Next, we will install the database engine and multidimensional mode as described. Once those are complete, we will install another instance to support the tabular mode.

Installing SQL Server 2019 database engine and SQL Server 2019 Analysis Services multidimensional mode

For the most part, we will follow a normal installation process for the database engine and Analysis Services in multidimensional mode. I will use the following set of screenshots to highlight decision points through the process:

  1. After you launch the installation for the first time, you will need to select the Custom installation type. Basic does not include the option to install Analysis Services:
    Figure 1.7 – Choose Custom from the initial installation dialog

    Figure 1.7 – Choose Custom from the initial installation dialog

    Production installations

    The instructions provided here are intended for development and experimental installs. Please refer to the latest best practices from Microsoft regarding production workload installations.

  2. You will need to select the Installation tab on the left, then select New SQL Server stand-alone installation or add features to an existing installation option:
    Figure 1.8 – Choose the New SQL Server stand-alone installation

    Figure 1.8 – Choose the New SQL Server stand-alone installation

  3. You will start the installation process. You can select the default options until you get to the Product Key screen. On this screen, you should select the Developer edition for your free key. This will allow you to use all the features available in SQL Server Enterprise edition:
    Figure 1.9 – Select Developer edition for free product key

    Figure 1.9 – Select Developer edition for free product key

  4. The next stopping point is Feature Selection, as shown in the following screenshot. I encourage you to review all the options available to you with SQL Server 2019. There are a lot of non-database features included in SQL Server, such as support for machine learning and data virtualization (Polybase). If this is the first time you have installed SQL Server in some time, you should note that SQL Server Reporting Services (SSRS) and SQL Server Management Studio (SSMS) are not included here. Both of these products should be downloaded separately. We will walk through Management Studio for our purposes shortly.

    We will need Database Engine Services and Analysis Services for our installation. That will allow us to create instances of SQL Server and SSAS during our installation:

    Figure 1.10 – Choose Database Engine Services and Analysis Services

    Figure 1.10 – Choose Database Engine Services and Analysis Services

  5. The next section of interest is Instance Configuration. If you have been around SQL Server for a while, you have likely installed the Default instance many times. I am recommending you use the Named instance option. We will have two instances of Analysis Services when we are done. Using the Named instance option will help you keep these clearly separate:
    Figure 1.11 – Select Named instance and provide a unique name for your instance

    Figure 1.11 – Select Named instance and provide a unique name for your instance

    Two names or three names

    The current installation path we are following will result in two instance names. The first instance name will be used for both Database Engine Services and Analysis Services – Multidimensional Mode. We will go through the install process again to install Analysis Services – Tabular Mode with a different instance name. If you want to identify all of your instances separately, go back a step and unselect Analysis Services. This will allow you to create Database Engine Services with a unique instance name. You will need to follow the steps in the tabular mode installation instructions to add an instance for multidimensional mode as well. Refer to the setup instructions in the following sections for the Multidimensional Mode installation. This is your choice and will not affect examples used in the remainder of the book.

    Remember that the name you choose here will be used by both the Database Engine Services instance and the Analysis Services Multidimensional Mode instance.

    I am choosing to keep the default settings for Server Configuration. In a production installation, you should use service accounts configured for this purpose. Service accounts are created by your security team and are typically the more secure option for production environments. You may choose to do this for your developer install here if you choose to:

    Figure 1.12 – Set custom accounts here if preferred

    Figure 1.12 – Set custom accounts here if preferred

  6. The next section covers Database Engine Configuration. I almost always set up mixed mode when doing development or testing work. This allows me to have an System Administrator user as well as to set up local database users if needed. I would not recommend this for most production scenarios. Using an Active Directory account is more secure for production servers. In our scenario, I would also recommend adding your current Windows user account to the SQL Server Administrators group:
    Figure 1.13 – Set up your authentication and admins

    Figure 1.13 – Set up your authentication and admins

  7. Now click on the Data Directories tab. This is a preference for you as well. You are welcome to keep the default options here. I typically create a data directory off of a drive – in this case, C – to hold data files. If you have multiple drives, you should select the fastest drive for your SQL Server data. Take note of your backup directory as you will need to use that later in the chapter:
    Figure 1.14 – Choose the location for your data directories

    Figure 1.14 – Choose the location for your data directories

    I will not be customizing the rest of the install. Feel free to browse the other tabs to review additional options you can set during installation.

  8. The next screen is Analysis Services Configuration. It is similar to the previous two screens we worked with. However, you will notice that Analysis Services does not have a mixed mode option. It only supports Windows or Active Directory security.

    We will be installing Multidimensional and Data Mining Mode in this instance. While I don't have a screenshot of the data directories, I would recommend you choose your fastest available hard disk for this instance as well:

Figure 1.15 – Select multidimensional mode and add your user as an admin

Figure 1.15 – Select multidimensional mode and add your user as an admin

You have completed the configuration settings at this point. The next few dialogs will show you what you have chosen to install, and you will be able to see your installation progress. You will see the following dialog when you have successfully completed your installations:

Figure 1.16 – Congratulations! You have successfully installed SQL Server 2019

Figure 1.16 – Congratulations! You have successfully installed SQL Server 2019

Let's now look at the installation of SSAS using tabular mode.

Installing SQL Server 2019 Analysis Services tabular mode

Now, we will install another instance of Analysis Services using the tabular mode as follows:

  1. Typically, the Installation dialog box is still open at this point (assuming you did not close it). If it is not open, you will want to run the installation media for SQL Server 2019 again.

    You will choose the new SQL Server stand-alone installation option as we did in the previous section:

    Figure 1.17 – Choose to do a new SQL Server installation

    Figure 1.17 – Choose to do a new SQL Server installation

  2. You can use the default settings until you get to the Installation Type dialog. Do not choose to add features. You must perform a new installation. The reason for this is that you cannot add another Analysis Services instance to your current instance:
    Figure 1.18 – Choose Perform a new installation of SQL Server 2019

    Figure 1.18 – Choose Perform a new installation of SQL Server 2019

  3. As you move through the next few dialogs, you will choose the development free option once again. When you get to the feature selection, you should only select the Analysis Services option. We are only planning to install an additional Analysis Services Tabular Mode instance:
    Figure 1.19 – Only choose Analysis Services here

    Figure 1.19 – Only choose Analysis Services here

  4. Once again, I will recommend a named instance for this installation as well. As you can see, we do not have a default instance, so that is still an option here. Your existing instance name is shown in the table for your reference:
    Figure 1.20 – Create a new named instance

    Figure 1.20 – Create a new named instance

  5. The next step is Analysis Services Configuration. In this case, you will select the Tabular Mode option. As with the other installation, you can specify your Data Directories and set your current user as an administrator for this instance:
    Figure 1.21 – Choose Tabular Mode and add your user as an admin

    Figure 1.21 – Choose Tabular Mode and add your user as an admin

  6. Complete the installation process and you should see the following Complete dialog with only Analysis Services in the Feature list. Congratulations, you have successfully installed the three instances of SQL Server 2019 to be used throughout the book:
Figure 1.22 – Congratulations! You have successfully installed your Analysis Services – Tabular Mode

Figure 1.22 – Congratulations! You have successfully installed your Analysis Services – Tabular Mode

Now that we have successfully installed Analysis Services for tabular models, let's see how to manage installations.

Managing installations

Once installed, you will find that SQL Server tends to be very resource hungry. My recommendation is that you turn the services off when you are not using them. The following scripts are PowerShell and will allow you to turn them on and off as needed. In order to use these scripts, you will need to put the instance name in the locations where [[INSTANCE NAME]] is in the code. Replace all that text with your instance name. If that does not work, you will need to find the service name in the services list in Windows.

There are two scripts here – the first will disable the service and turn it off. This will prevent it from restarting if you reboot your PC. The second script will turn on the services. I saved these files as SQLServerOn.ps1 and SQLServerOff.ps1. I execute them by opening a PowerShell window as an administrator. At the prompt, you type the following:

$ "<<YOUR PATH HERE>>\SQLServerOff.ps1" 

You will need to replace <<YOUR PATH HERE>> with the location you stored the file at. Now to the scripts themselves. This script will disable the services and power down the service:

Set-Service 'MSSQL$[[INSTANCENAME]]' -StartupType Disabled
Stop-Service -Name 'MSSQL$[[INSTANCENAME]]' -Force
Set-Service 'MSOLAP$[[INSTANCENAME]]' -StartupType Disabled
Stop-Service -Name 'MSOLAP$[[INSTANCENAME]]' -Force
Set-Service 'MSOLAP$[[INSTANCENAME]]' -StartupType Disabled
Stop-Service -Name 'MSOLAP$[[INSTANCENAME]]' -Force

I saved this script as SQLServerOff.ps1. Once this is run, these services will not restart on reboot. The next script will re-enable the services. I chose to enable with a manual StartupType in order to prevent a restart in the event of a reboot. You can choose Automatic if you prefer:

Set-Service 'MSSQL$[[INSTANCENAME]]' -StartupType Manual
Start-Service -Name 'MSSQL$[[INSTANCENAME]]' 
Set-Service 'MSOLAP$[[INSTANCENAME]]' -StartupType Manual
Start-Service -Name 'MSOLAP$[[INSTANCENAME]]' 
Set-Service 'MSOLAP$[[INSTANCENAME]]' -StartupType Manual
Start-Service -Name 'MSOLAP$[[INSTANCENAME]]'

This script is saved as SQLServerOn.ps1. Remember to execute this with a PowerShell command window open in administrator mode.

Enabling PowerShell execution

By default, PowerShell execution is secured. If you have not enabled PowerShell execution on your PC, you will be unable to run a script you have created. To enable PowerShell to run locally created scripts on your PC, you will need to open a PowerShell window and run the following script:

Set-ExecutionPolicy RemoteSigned

Next, we will get familiar with SSMS.

SQL Server Management Studio (SSMS)

A few versions back, Microsoft removed SSMS from the SQL Server media. This allowed them to make changes to the tool independent of the version of SQL Server released. This made it significantly easier for users to get Management Studio, eliminating the need to run the SQL Server installation process. At the time of writing, the latest version of Management Studio is 18. You should install the latest version to make sure you have all the capabilities we will go through in the book.

Installing SQL Server Management Studio

The installation link for SSMS can be found on the same page as SQL Server 2019 Developer edition. It is usually located near the bottom of the page with all the supporting tools, as follows:

Figure 1.23 – Choose SQL Server Management Studio

Figure 1.23 – Choose SQL Server Management Studio

When you select the SSMS link, you will be redirected to the Microsoft Docs page with instructions and details about the current version of Management Studio. Download and install SSMS. This is a simple install with no options that impact the work we will do in the book. As noted in the following install dialog, this book will be using RELEASE 18.4:

Figure 1.24 – Installation screen for SQL Server Management Studio – release 18.4

Figure 1.24 – Installation screen for SQL Server Management Studio – release 18.4

Next, let's learn more about Visual Studio.

Visual Studio with SQL Server Data Tools (SSDT)

Visual Studio and SQL Server have had many different working combinations over the years. While I included SSDT in this section's heading, Visual Studio 2019 is set up differently. Prior to the current version of Visual Studio, SSDT was a separate installation that you installed after selecting your Visual Studio version. As a reminder, we will be using Visual Studio 2019 for the examples and illustrations in this book:

Figure 1.25 – Choose Download SQL Server Data Tools for this section

Previous versions of Visual Studio

SSDT is still a valid install with Visual Studio version 2017. However, SQL Server 2019 components including the latest Compatibility Level are not supported. You may need to keep Visual Studio 2017 and related tools to support the current project. Visual Studio 2017 and Visual 2019 can be installed side by side.

Installing and configuring Visual Studio with support for Analysis Services 2019

The first decision you will need to make is what edition of Visual Studio you want to use. If you have a Visual Studio subscription, a corporate license, or a personal license, you likely have options to install Visual Studio 2019 Professional or Visual Studio 2019 Enterprise. If you are starting out and this is truly a learning experience for you and you don't want or need to purchase a license for Visual Studio, the best option is likely the Community Edition.

For the purposes of this book, I will be using the Community Edition of Visual Studio 2019. You can find this edition for download at https://visualstudio.microsoft.com/downloads/. Let's get it installed and configured.

As part of the installation, you will need to select one or more workloads. While you are welcome to choose other workloads for the installation, for our purposes, you need to select Data storage and processing in the Visual Studio installation dialog.

Once the installation is complete, launch Visual Studio. Under the Get started options, choose Continue without code. The next step is to install the extensions to create Analysis Services projects.

Adding Visual Studio Extensions for Analysis Services 2019

Now that you have Visual Studio 2019 open, you need to install the extensions used to support Analysis Services development:

  1. First, let's open the Manage Extensions dialog. You can open this by selecting the Extensions option in Visual Studio and selecting Manage Extensions:
    Figure 1.26 – Open Manage Extensions in Visual Studio 2019

    Figure 1.26 – Open Manage Extensions in Visual Studio 2019

  2. Once you select Manage Extensions, the following dialog will open. You will need to open the following menu sequence: Online > Visual Studio Marketplace > Tools > Data. This will filter the list of options to data-specific extensions. Choose Microsoft Analysis Services Projects and then click Download. This will start the process to download and install the extension:
    Figure 1.27 – Choose the Microsoft Analysis Services Projects download

    Figure 1.27 – Choose the Microsoft Analysis Services Projects download

  3. Once the install is complete (it may require you to close Visual Studio), you should be able to create a new project and see the Analysis Services project types in the options:
Figure 1.28 – Congratulations! You can create Analysis Services projects

Figure 1.28 – Congratulations! You can create Analysis Services projects

You will need to restart Visual Studio to complete the installation process. Once you have restarted Visual Studio, you are ready to create Analysis Services models and deploy them to Analysis Services 2019.

One last thing – our sample data

This is the final preparation piece before we build the Analysis Services models. We will be using the latest Microsoft sample database from Wide World Importers. The Wide World Importers data warehouse sample is a star schema database. While a number of cool features have been added and can be explored in the data warehouse, our focus is on source data for our Analysis Services models.

You can find the World Wide Importers sample databases on GitHub: https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0. For our purposes, you only need the WideWorldImportersDW-Full.bak file. If you are interested in the features for the transactional database, which is the actual source for the data warehouse, you can also download WideWorldImporters-Full.bak. If you get both samples, you will need 10 GB of storage for the databases and a minimum of 1.5 GB of RAM to support them.

The sample databases use the latest features of SQL Server 2019

This is a warning for if you choose to install both databases on your server. Both use in-memory features, which could cause performance issues on your computer. These features are meant to highlight some of the latest features but can be resource-intensive. If this is a concern, you should not restore the transactional database at this time.

Once you have the backup file downloaded, I would recommend you move the file to the Backup folder located where you selected during the install process. This folder will be easily discoverable from SSMS during the restore process. This is not required, but I find it a good practice in most cases.

Restoring the data warehouse backup

Let's restore the database now:

  1. Open up SQL Server Management Studio.
  2. Connect to your SQL Server 2019 database instance.
  3. Right-click on the Databases folder and select Restore Database…:
    Figure 1.29 – Select Restore Database…

    Figure 1.29 – Select Restore Database…

  4. In the Restore Database… dialog, choose Device.
  5. Then use the ellipses button to open a dialog box that will allow you to choose the WideWorldImportersDW-Full.bak file. Click Add to find your backup file.
  6. Once selected, your dialog should be filled in similar to the following:
    Figure 1.30 – Your dialog box should look like this

    Figure 1.30 – Your dialog box should look like this

  7. Next, select OK. This will take some time, but you should see the restored database in Management Studio when the process is complete.

    You can also use a script to restore the backup as shown here. You will need to replace {YOUR PATH HERE} with the location of your files:

    USE [master]
    RESTORE DATABASE [WideWorldImportersDW] 
    FROM  DISK = N'{YOUR PATH HERE}\MSSQL\Backup\WideWorldImportersDW-Full.bak' 
    WITH  FILE = 1,  
    MOVE N'WWI_Primary' TO N'{YOUR PATH HERE}\MSSQL\DATA\WideWorldImportersDW.mdf',  
    MOVE N'WWI_UserData' TO N'{YOUR PATH HERE}\MSSQL\DATA\WideWorldImportersDW_UserData.ndf',  
    MOVE N'WWI_Log' TO N'{YOUR PATH HERE}\MSSQL\DATA\WideWorldImportersDW.ldf',  
    MOVE N'WWIDW_InMemory_Data_1' TO N'{YOUR PATH HERE}\MSSQL\DATA\WideWorldImportersDW_InMemory_Data_1',  
    DOWNLOAD,  
    STATS = 5
    GO

Whichever option you choose to use, this will result in a restored database for us to use in later chapters.

Summary

At this point, we are ready to start working with Analysis Services in SQL Server 2019. You have successfully installed the tools we will be using and uploaded the sample data. Along the way, you were able to learn some of Analysis Services' history and how the introduction of Tabular Mode and the VertiPaq engine disrupted the multidimensional database world.

In the next chapter, we will evaluate the right times to choose one mode over the other. As you noticed during the installation, they are not the same product and they come with their own strengths and weaknesses. Once we look at the reasons to choose one option over the other, we will begin the process of creating models in both, starting with multidimensional and moving to tabular. We will look at some common reporting tools to interact with these models and wrap up with some advanced techniques. Remember, if you follow the exercises in the book, you will create models in both modes in Analysis Services and understand which fits your business needs better.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Explore tips and tricks to design, develop, and optimize end-to-end data analytics solutions using Microsoft's technologies
  • Learn tabular modeling and multi-dimensional cube design development using real-world examples
  • Implement Analysis Services to help you make productive business decisions

Description

SQL Server Analysis Services (SSAS) continues to be a leading enterprise-scale toolset, enabling customers to deliver data and analytics across large datasets with great performance. This book will help you understand MS SQL Server 2019’s new features and improvements, especially when it comes to SSAS. First, you’ll cover a quick overview of SQL Server 2019, learn how to choose the right analytical model to use, and understand their key differences. You’ll then explore how to create a multi-dimensional model with SSAS and expand on that model with MDX. Next, you’ll create and deploy a tabular model using Microsoft Visual Studio and Management Studio. You'll learn when and how to use both tabular and multi-dimensional model types, how to deploy and configure your servers to support them, and design principles that are relevant to each model. The book comes packed with tips and tricks to build measures, optimize your design, and interact with models using Excel and Power BI. All this will help you visualize data to gain useful insights and make better decisions. Finally, you’ll discover practices and tools for securing and maintaining your models once they are deployed. By the end of this MS SQL Server book, you’ll be able to choose the right model and build and deploy it to support the analytical needs of your business.

Who is this book for?

This Microsoft SQL Server book is for BI professionals and data analysts who are looking for a practical guide to creating and maintaining tabular and multi-dimensional models using SQL Server 2019 Analysis Services. A basic working knowledge of BI solutions such as Power BI and database querying is required.

What you will learn

  • Determine the best analytical model using SSAS
  • Cover the core aspects involved in MDX, including writing your first query
  • Implement calculated tables and calculation groups (new in version 2019) in DAX
  • Create and deploy tabular and multi-dimensional models on SQL 2019
  • Connect and create data visualizations using Excel and Power BI
  • Implement row-level and other data security methods with tabular and multi-dimensional models
  • Explore essential concepts and techniques to scale, manage, and optimize your SSAS solutions

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 22, 2020
Length: 474 pages
Edition : 1st
Language : English
ISBN-13 : 9781800204768
Vendor :
Microsoft
Category :
Languages :
Concepts :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Oct 22, 2020
Length: 474 pages
Edition : 1st
Language : English
ISBN-13 : 9781800204768
Vendor :
Microsoft
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 115.97
Hands-On SQL Server 2019 Analysis Services
€41.99
ETL with Azure Cookbook
€36.99
SQL Server 2019 Administrator's Guide
€36.99
Total 115.97 Stars icon
Banner background image

Table of Contents

18 Chapters
Section 1: Choosing Your Model Chevron down icon Chevron up icon
Chapter 1: Analysis Services in SQL Server 2019 Chevron down icon Chevron up icon
Chapter 2: Choosing the SQL Server 2019 Analytic Model for Your BI Needs Chevron down icon Chevron up icon
Section 2: Building and Deploying a Multidimensional Model Chevron down icon Chevron up icon
Chapter 3: Preparing Your Data for Multidimensional Models Chevron down icon Chevron up icon
Chapter 4: Building a Multidimensional Cube in SSAS 2019 Chevron down icon Chevron up icon
Chapter 5: Adding Measures and Calculations with MDX Chevron down icon Chevron up icon
Section 3: Building and Deploying Tabular Models Chevron down icon Chevron up icon
Chapter 6: Preparing Your Data for Tabular Models Chevron down icon Chevron up icon
Chapter 7: Building a Tabular Model in SSAS 2019 Chevron down icon Chevron up icon
Chapter 8: Adding Measures and Calculations with DAX Chevron down icon Chevron up icon
Section 4: Exposing Insights while Visualizing Data from Your Models Chevron down icon Chevron up icon
Chapter 9: Exploring and Visualizing Your Data with Excel Chevron down icon Chevron up icon
Chapter 10: Creating Interactive Reports and Enhancing Your Models in Power BI Chevron down icon Chevron up icon
Section 5: Security, Administration, and Managing Your Models Chevron down icon Chevron up icon
Chapter 11: Securing Your SSAS Models Chevron down icon Chevron up icon
Chapter 12: Common Administration and Maintenance Tasks Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(6 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Andres Williams Herrera Jun 25, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Muy actualizado, didáctico , cubre todo el contenido relacionado con las nuevas características de la implementación de modelos tabulares en SSAS y además trae muy buenos ejemplos
Amazon Verified review Amazon
David Greenberg Dec 16, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I really like this book. It is very informative and covers the topics in great detail. As a professional working with Analysis Services since 2005, I like the authors' discussion of how the product has changed over time and the strengths and weaknesses of each version (tabular vs multidimensional). They also discuss the changes for the 2019 edition of SSAS and the change over from SQL Server Data Tools to Visual Studio 2019 with Extensions for BI development. Highly recommended!
Amazon Verified review Amazon
mayanktripathi4u Dec 16, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Disclaimer: The Publisher asked me to review the book and sent me a review copy. I promise to be completely honest about my feedback."Hands-On SQL Server 2019 Analysis Services" the book itself explains the whole story. What I liked about the book is that it clearly explains the Analysis Services, and also includes why one has to use this service along with the use-cases.This book is worth reading as after reading this a newbie will have cleared his basic concepts, and the beginner or anyone having a 1-2 years of experience will get to know how to choose a good Analytic Model. Author has also taken care of small concepts & tips and has explained them clearly, as they are the building blocks.One will get acquainted with the Security of data while using the Analytic Services, implementing the data security in the model be it multi-dimensional model or a tabular model and can manage the model (or administration).Another good thing in the book is that the author has also included Power BI and Reporting related concepts, which is hands-on. With this we can start creating interactive reports and one can also enhance the models using Power BI.What I felt missing from the book was the concept of SuperDAX for multidimensional models.
Amazon Verified review Amazon
Ravikumar Venkatesan Feb 16, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book is very well written with lot of examples and samples. The book provides very detailed steps starting from installation and using Microsoft tool to build analytical models. It explained very well difference between analytical processing and transaction processing. The book is user friendly and can help beginner to understand and learn starting from concept Dimension, facts, measure etc. It could have touched topics on integrating with third party tools like Tableau and also could have included topic on using Analytical services over cloud with Azure.
Amazon Verified review Amazon
Naga Pakalapati Feb 08, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Highly recommended if you work on Analysis services and need expert views on various aspects if it.Author brings a depth of knowledge to talk about important features in great detail from choosing the right model for your requirement, pros and cons, differences between various versions and compatibility, preparing data for dimensional modeling, using DB views to create models, loading, processing, security, creating measure/kpi, connecting to front end tools and what not.What you don’t find in the book: In depth details of each and every property of AS or using DAX. This book is not meant or written for this purpose.Disclaimer: Received a review copy. My views are solely in the content of the book and is unbiased in any way.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.