Monday, November 7, 2016

My Takeaways For SQLSaturday 551: #SQLSatHolland

Finishing this post was on my list for quite some time now, but I gave my post last week about the Technical Preview for Power BI in SSRS priority because of the "hotness" of the topic. So without further ado, here's my SQLSatHolland write-up.

It's that time of year again: it was SQLSaturday in the Netherlands, a.k.a. SQLSatHolland!
It's always nice to meet up with SQLFamily, (Twitter) friends/old colleagues and new friends.

This year I also volunteered for the first time by being a timekeeper for the speakers and making sure the session evaluation forms were distributed before the sessions started and collecting them at the end of the session. It was a good and fun experience and I will try to keep giving back more to the community where I can.

I wrote down some notes of the following sessions:

If a machine can learn, why can't YOU learn Azure Machine Learning? by André Melancia (t)
This was an introduction into AML by André where he started out with some theory and explained what ML is not and the difference with AI. We learned how to create a free Azure subscription, set up a ML workspace and start using ML Studio, which is very much alike the Integration Services graphics of connecting processes through intermediate steps using arrows. He then walked us through the demo of creating our first model and experiment in ML.

Using PowerShell for SSIS by Joost van Rossum (b|t)
Joost used the first few minutes to explain what PowerShell (PS) is and goes right into the demo's after that. He even ignores the best practice of not typing in a demo, but all goes well fortunately :-) He showed us some neat Star Wars "song" of PS-beeps and also explains what you can actually use PS for: a.o. deploying IsPacs and environments, download packages from the catalog, search within multiple packages/projects and setting authorization.

Azure SQL Data Warehouse by James Rowland-Jones (t)
James starts with explaining what SQL DW is and is not. Analytics, aggregates and large data volumes are the key words when you want to use SQL DW. When NOT to use it: RBAR-processing, OLTP, incompatible formats like JSON and XML. You pay for the data you store and the compute you provision. You can choose between Hash and Round Robin (default) distribution, where you have to take into account that the distribution key is read only.

Continuous Integration and the Data Warehouse by John Tunicliff (b|t)
You can watch (a shorter version of) this session recorded at an earlier conference on YouTube. John talks about the problems why CI is still not a basic part of database development, the main point being the data in the database. TeamCity Build Server, PowerShell and psake is mentioned also for implementing CI, all with different use cases. Another key point to CI is a test framework, e.g. NUnit BI which is an open source framework to test BI solutions. A best practice when using SSDT for database design is not to upgrade projects, but to start over with a clean import and transfer over the pre- and post-deploy scripts.

Q&A BI with Joost van Rossum, Jan Pieter Posthuma (b|t) en Remko de Boer
These Q&A sessions were a try-out to see if we liked them and they could be a succes. Our BI session was mostly questions to the speakers but sometimes turned out to be a discussion between several attendees and speakers. It was really an open hour, and I really enjoyed it. Questions ranged from performance of Azure, Power BI, the new MS Certification paths (which I wrote about here) and the Master Data Services session from Remko, which was a very good session I heared from several people.

Introducing the SQL Server 2016 Query Store by Enrico van de Laar (b|t)
I didn't actually attend this session, but rumors say it was an exciting one so I have to share it with you. Let's start with some pictures, they say more…

It all started when he was about to begin with his session:

He even did some Windows updates that morning "to be sure". Well, that clearly didn't help…


What I heard from a lot of people (and also from Enrico himself), is that the session still was great and he turned it into a Q&A. He even turned to the whiteboard to get the picture across! Well done for the professional approach and for thinking in solutions when this happened.


If you want to know more about one of the sessions listed above or are just interested in any of the other sessions of SQLSatHolland, the session materials can be found at the SQL Saturday website, although at the time of writing not all materials have been added to the site.
I hope to also see you next year at SQLSatHolland!

Friday, October 28, 2016

In Action: Technical Preview of Power BI Reports in SSRS

Yesterday the SSRS team made the announcement that we can now consume Power BI reports inside Reporting Services. You can upload your Power BI files (.pbix) to the Report Manager, or deploy them to the Report Server from Power BI Desktop if you like.
To start off, I really like the features and the things you can do, however I also found some issues I will be talking about later.

How to get started

The SSRS team did a pretty good job describing How to get started with the Technical Preview, so I won't repeat that here, just read their blog.
A few caveats:
  • Your virtual machine name in Azure needs to be all lowercase letters, in Chrome the error message displays correctly, but in IE the error message you receive is not very helpful, according to Koen.
  • I used West Europe as my Azure Region, so I had to login to the RDP as WESTEUROPE\nvvroenhoven
After having gone through the setup of your Azure VM you'll have to wait 10-20 minutes for your VM to be provisioned and you're good to go.

What does it look like?

After logging in to your VM you can open the report manager via the SSRS Preview shortcut on the desktop and you end up with an overview of the available KPI's, Mobile reports and Power BI Desktop Reports available on the server:


Open a Power BI Desktop report

Clicking on one of the PBI Desktop Reports gives you the Power BI report (which was created with 1 page) in the report manager interface:



Edit a Power BI Report

You can edit the reports in Power BI Desktop by clicking on the 3 dots in the upper right corner of the report tile in the web portal and clicking "Edit in PowerBI Desktop". By the way, I believe there's a space missing between Power and BI :-).


When you open the report in PBI Desktop you also get a pop-up saying they're busy opening your report, the links in that pop-up are still on the ToDo list I guess because they are pointing to https://go.microsoft.com/TODO :-)


SSAS Live connection

As stated in an earlier announcement by the SSRS team: "This preview supports Power BI reports that connect "live" to Analysis Services models – both Tabular and Multidimensional (cubes). We plan to extend support to additional data sources in a future preview." You can see this by looking at the Data Source settings and in the lower right corner of the report in PBI Desktop. As a consequence of connecting live to SSAS you are not able to edit the data model or adjust any queries.


Saving a PBI Desktop file to SSRS

When you save the file you have the option of saving it to disk or directly to SSRS.


When you choose the option of SSRS make sure to type in http://localhost/reports instead of https for this VM.


If you've already saved it once to SSRS and click save (or CTRL+S) afterwards in PBI Desktop, it keeps this setting and saves it automatically to SSRS.


Manage a Power BI Report

You can also manage the report item with the following properties:


Manage Data sources

For now, only live connections to SSAS are supported, but that will certainly change in the future. You can also use credentials to connect to the SSAS instance, but for now I'll use the default settings. 


At my first attempt to test the connection I got an error message, the next attempts did work correctly, no idea why that happened.


Manage Security

You can also customize the security for a specific report, before doing so you get a confirmation dialog box to confirm your settings differing from the parent folder:



After I clicked Customize security, but didn't alter anything, I started to run into some issues I'll describe here.

Issues with the Technical Preview (released October 27th)

Test connection

I encountered this error when I tried to test the connection to the SSAS Tabular cube. The second attempt did work correctly. I made no changes to the settings, I only clicked around a bit.


Customize security

After clicking the button "Customize security" I tried opening the report (I renamed the report to Sample Sales Report 2) again but the Power BI logo kept displaying.


Opening the report in PBI Desktop also didn't work and resulted in the following error:


Also when I open the .pbix-file from explorer and try to save it to SSRS I get the following error:


Any of the other reports (where I didn't alter the security settings) opens and saves perfectly fine. So in my opinion these errors all relate to the same issue with the security settings.

After undoing the security changes, so clicking on "Use same security as parent folder" everything was working fine again.


Conclusion

All in all some great new features have been added! I bumped into some minor issues that I'm sure will be resolved in later versions.

Friday, October 14, 2016

Suggested reading: MDX Date Picker, MS Certification Paths, Dynamics 365

I found some posts, news and came across some issues you might be interested in.







I'm creating some reports for a client and am working with SSAS Tabular. I therefore have to deal with MDX based parameters and I wanted to have my date parameter to resemble a Date Picker as you normally would have when using SQL Server as a source:



Microsoft has changed their MCSA and MCSE exams by aligning to industry-recognized areas of competence. There's no need anymore to recertify every (three) year, but you can re-earn you certification each year. Due to the fact that the technology changes faster than a few years ago, (SQL Server had changes in the way updates were rolled out earlier this year, Azure changes almost every week) they decided to switch to a more aligned model for certification.

Certification paths

The Data Management & Analytics Path is most appropriate for me and in detail looks like this:

What this means is you will have to earn one of the MCSA's listed here and then take one elective exam to earn the MCSE. You can then re-earn the MCSE each year by taking a new elective exam and in this way adding knowledge every year.
The Microsoft Learning team is already developing a solution where some exams will be eligible for a retake every (calendar) year with rapidly changing technologies, for example Azure.
You can find more information here:


Since I made the switch to Pulse I started working with Dynamics AX, Microsoft's ERP system. This Tuesday Microsoft had a First Look event at the AXUG Summit 2016 on (the new) Dynamics 365 for Operations, which is the new name for Dynamics AX. Dynamics NAV is also renamed and is now called Dynamics 365 for Financials.

I came across a very good blog by Fredrik Sætre (b | @AxFredrik) which summarizes the First Look event very well. He speaks about the Common Data Model that will be replacing the Entity Story introduced earlier in AX 2012 R2 and will be the core of Dynamics 365, for AX, NAV and CRM.


Tuesday, September 20, 2016

Remote Session Was Disconnected Because Client Access License Stored on this Computer Has Been Modified

The last day I was working at a client and tried to login via a remote desktop session. Although this was working earlier, I now suddenly got this error:


The remote session was disconnected because the remote desktop client access license stored on this computer has been modified

My colleague could still log in so the connection to the desktop was not an issue. After searching a little bit I stumbled upon this article.

The steps you have to follow are:
  • Edit the registry (if you have no clue how, please stop reading and ask someone from IT to do it for you)
  • Just to be sure, backup the registry or create a restore point
  • Delete the key located at:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
 
Now the next time the client connects to the server, it will obtain another license.

Monday, August 15, 2016

Windows 10 Black Lock Screen

For the solution, scroll down, for the story, read on.
After returning from holiday last week I had some Windows Updates to install and afterwards my lock screen was changed. Whenever I locked my computer it would show up like below.


Black Lock screen without background
 And when I then want to log in and entered the sign-in screen, the Windows spotlight background appears, as I expected in the previous screen.

Sign-in screen with background

After some searching I couldn't find this specific issue so I started looking at the Lock screen options myself.
You can open the Lock screen options by typing "lock" after pushing the start button and clicking Lock screen settings, or opening the Action Center by clicking on the notification icon and clicking All settings > Personalization > Lock screen.

Action center
Either way you should end up in this screen:

Lock screen settings
I found out that the slider on the bottom, the one that reads "Show lock screen background picture on the sign-in screen", is the culprit. Apparently this also makes the background go away at the lock screen, they could've mentioned that IMO…

TL;DR
By switching the button in the Lock screen settings to Off, the background will appear again in the lock screen.


HTH

Friday, July 8, 2016

My Reading Goal Journey

I created a page over here to keep track of all the books I read.

Before I start off this post I have to mention Adam Saxton (b | t), also known as Guy in a Cube, because this post, and the idea of setting a goal for reading was inspired by his post and video a few weeks back. If you don't know who Adam is, check out his blog on guyinacube.com or one of his video's on his Youtube channel.
In his post, Adam talks about his reading journey, and that he wants to get some regular reading done.
As I have followed business leaders and entrepreneurs, a common theme has come up. They all read regularly, and a lot!
Fast(er) reading
As Adam states in his post that he's a slow reader, I'm also not one of the fastest readers myself. I did start out with some (fast) reading techniques on lifehacking.nl earlier this year which already helped me in reading a little bit faster. The site is in Dutch, but you can probably find similar sources in English or translate it.
I'm currently at the stage of reading at 90 bpm and 2-3 stops per line. At that speed I can notice I stop the subvocalization (inner speech), which is a big part of slowing readers down. Sometimes it's hard to keep following the rules of speed reading, I'm having a hard time with regression (looking back in the text). So this reading goal is a good place to keep practicing those things and progressing even further.

My goal
For my goal to be SMART, I'm going to start out small and set my goal to 25 pages a day for 100 days, that will take me to October 11th, because I already started last Monday.




My Reading Journey
As time passes, I will keep you posted on how my journey progresses and update this post with new books I complete.

Updated on February 3rd, 2017
I created a new page called My Reading Journey where I'm keeping track of my progress.

Thursday, June 30, 2016

SSIS: The Buffer Manager Failed a Memory Allocation Call

I recently made the switch to Pulse (you can read about it here), so I am working with lots of new clients lately. One of those clients was having issues with refreshing their data warehouse and SSAS cubes. The process usually takes around 30 minutes to complete, but the last week it would easily take between 5 and 12 hours. Not really the way you want it to go, right?

Problem
One of the packages in SSIS was taking ages to process so I used sp_WhoIsActive by Adam Machanic (b | t) and came to the conclusion the process had a wait type of PREEMPTIVE_OS_WAITFORSINGLEOBJECT, which can be found in sys.dm_os_wait_stats.

Jonathan Kehayias (b | t) mentions on MSDN:
MSDN

For a thorough understanding of (Non-)Preemptive waits in SQL Server, Pinal Dave (b | t) has written an excellent blog post here. A little excerpt:
PREEMPTIVE: Simply put, this wait means non-cooperative. While SQL Server is executing a task, the OS interrupts it. This leads to SQL Server to involuntarily give up the execution for other higher priority tasks. This is not good for SQL Server as it is a particular external process which makes SQL Server to yield. This kind of wait can reduce the performance drastically and needs to be investigated properly.
You see the word drastically there? That's kinda what happened :)

Continuing with my investigation, I executed the source query from the package manually in SSMS and it took around 20 seconds. Executing the package in SSDT succeeded but resulted in the following two informational messages:
The buffer manager has allocated # bytes even though the memory pressure has been detected and repeated attempts to swap buffers have failed.
The buffer manager failed a memory allocation call for 65536 bytes, but was unable to swap out any buffers to relieve memory pressure. # buffers were considered and # were locked. Either not enough memory is available to the pipeline because not enough are installed, other processes were using it, or too many buffers are locked.
As the second message states there is not enough memory available, Well there should be, because I remembered there recently had been a memory increase from 16 to 32 GB on the server. But about that RAM, it is shared across the server... and between different applications... That started me thinking about the max server memory for SQL Server and the memory left for the rest of the server (OS, SSRS and SSIS!), because they're all running on the same server.

Solution
The maximum server memory can be set by editing the Server Properties (in SSMS):

or by using plain T-SQL. The beneath example sets the maximum memory to 4 GB:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
When the memory increased to 32 GB recently, the max server memory was also set from 13 to 26 GB, so the memory available to processes other then SQL Server didn't increase much. I changed the memory limit back to 20 GB to release an extra 6 GB to the rest of the apps running on the server. This way the (DTExec-)process for SSIS had enough memory to perform the tasks in-memory and the nightly process was running as normal again.

HTH

Featured Post

Power Apps or Translytical Task Flows?

I think I have gotten this question at least five or six times in the last few months, and with Translytical Task Flows reaching GA in the M...