Showing posts with label Query folding. Show all posts
Showing posts with label Query folding. Show all posts

Tuesday, March 29, 2022

Conferences and Speaking

It's a busy time, but there is also lots of fun stuff happening! Besides my move to Powerdobs earlier this year, there are also several interesting conferences that caught my attention! Let me tell you about them.

SQLBits

For starters, at the beginning of this month there was SQLBits, were I (virtually) presented a session called Power Platform Better Together: Create a Scoring App with a Live Dashboard.
In this session I showed how to use Power BI, Power Automate and Power Apps to create an interactive application. While I loved to be there in-person, I made the decision earlier this year to present virtual due to all the uncertainty back then. Although I do regret it after seeing all the excitement on social media, I still have some travel plans to other conferences this year.

If you don't know SQLBits, it's probably the greatest Data conference in Europe, spanning a whopping 5 days, including the free community event Saturday.

Here's a few stats from the conference this year:

Thank you for attending SQLBits 2022, see you next year! It shows 3 arcade-like pictures of puppets (like Mario and Sonic).

  • Over 450 hours of training delivered
  • 232 speakers, over 25% of whom identify as diverse in our industry
  • 67 helpers
  • Over 1600 attendees Tue-Fri, with almost 2/3 in-person
  • Plus another 900 registrations for the free Saturday
  • Attendees from 38 countries
  • Over £8K raised for Ukraine, in support of two Ukrainian speakers and a Ukrainian helper
Session recordings are still being worked on and will become available for registered attendees. But, in case you missed out, slides are already available at their website.

Power BI Global Summit

I bet the Power BI Summit is known you all, it is the biggest Power BI conference in the world. A multi-day event with speakers from the Microsoft Power BI team’s product group, community experts and MVPs from all around the world. This time I had the honor of hosting a Table Talk around the topic of Power BI Service Administration and beyond at the Global Power BI Summit, with my friends Tom Martens ( B | @tommartens68), Ε tΔ›pΓ‘n ReΕ‘l ( B | @tpnRel1) and Benni De Jagere ( B | @BenniDeJagere). We actually did it twice that day, in the morning and the evening, to accommodate all time zones across the world.
There was a lot of interaction, people asking questions in chat but also coming on camera for a live chat. We even got some people answering questions from time to time, which is great for the engagement. And that way I also learned some new things!

MVP Summit

Although every conference has its perks, I am pretty sure this is the one I'm most excited about!
As a Microsoft Most Valuable Professional, you are eligible to attend the MVP Global Summit once a year, The event features a large catalog of in-depth technical discussions and feedback sessions, directly with the Microsoft product teams and engineers.
The MVP Award is a global program of recognized technology experts and community leaders who actively support technical communities through unique, innovative, and consistent knowledge sharing. These community leaders actively contribute to support the developer and IT Pro communities worldwide, helping them learn, build, and use our products.

My expectations are high! There will be a lot of demonstrations of functions and features that are not yet publicly available. Of course there are strict Non-disclosure agreements on all sessions on the MVP Summit, but that won't spoil the fun.

Due to the fact that the world is still not 100% back to normal, this year the Summit is still virtual, so the organizers are trying to accommodate all time zones. Most sessions are roughly from 4 PM until 5 AM here in Europe, so that's going to be a tough three days ahead... 😴


Power BI Gebruikersdag

Last but not least, this week also marks the start of the famous annual Dutch Power BI User Day: Power BI Gebruikersdag. It’s a great community event with lot's of local attendees and speakers.

You can have a look at a recap of one of the earlier conferences:


The association behind this user day has had a major overhaul, with 4 new board members, so I'm excited to see what they have been up to!

I'm also delighted to be presenting 2 sessions there:

  • A (big) look into Query Folding on Deep Dive Friday! I've done Query Folding before, but this is a 2-hour long session going into (all) the depths! πŸ˜€
  • Write-back with Power Apps in Power BI on Saturday, which is a new session, showing off how to use Power Apps inside Power BI to edit data in the backend.

Check the full schedule for all the sessions!


Closing

My very last point then, because in June I'll also be attending and speaking at DataGrillen, the only conference (I know of) that has Data, Bratwurst and Beer. πŸ˜€ But more about that later.

For everyone attending one of the conferences above, please come and say hi, ask a question, tell a story or just grab a drink and hang out! πŸ’›


Friday, September 24, 2021

Back In Business: Power BI Next Step

So, I did a presentation last Friday on Query Folding in Power BI.
It was at the Power BI Next Step conference.
You might think it was another online, like the 2.463.345th, webinar via Teams. But...

WE WERE IN COPENHAGEN!! 😁


Meeting people again, having a chat and drink with other speakers, attendees and #pbifamily friends I haven't seen other then online... It was A-MA-ZING to be back at it! 

Because a few months ago there was still some uncertainty about all the rules, Marc, his girlfriend and me decided to take a road trip and go by car, which was pretty doable and actually quite fun.


I also went for a little run just after the conference!

We also had a lovely speaker dinner in the oldest restaurant in Copenhagen: Det Lille Apotek:


And on Saturday we finished it off with a little boat trip:

 

Slides and more...

The conference will send out all the slides, but if you can't wait for mine, you can find them at my GitHub page, or directly download the slides as PDF here.

During the conference, several people asked if the information from my session was also available on my blog somewhere, which actually is not (yet πŸ˜€).

So with renewed energy from the conference, I'm announcing my next topic here:

A blog series on Query Folding!

Keep an eye out for the first part in the next weeks!

Monday, November 11, 2019

Power Query and The Curious Case of Keep Top Rows

The Power Query Editor in Power BI has many transformations that can be set from the UI. Keep Top Rows is one of them. I'd like to take you on my journey through this curious case I ran into a couple of weeks back when preparing for my session on Query Folding in Power BI.

Transformations in Power Query

Problem

I was preparing my demo's for my session at dataMinds Connect on Query Folding in Power BI (slides). If you're not familiar with query folding: transformations in Power Query are transformed into the native (data source) language and executed at the source for better performance. For a more thorough overview have a look at the post How Query Folding Works from Matt Allington (B | @ExceleratorBI).

If we look at SQL Server, some transformations can be folded (like Sorting, a simple Group By and Keep Top Rows), others cannot (merging two columns from the UI, using the Buffer() M-function and Keep Top Rows). See what I did there? :) Keep Top Rows on its own is a foldable transformation, it is (obviously) transformed into the TOP operator in SQL.
However, when using Keep Top Rows in combination with some other transformations it (looks like it) is not folding anymore. Your best chance is to use the View Native Query option in Power Query SQL Server Profiler to check if the query is folding or not. More on that later :)
A bit of contemplationI do think the real use case of the Keep Top Rows transformation might be mostly in development environments, where you can limit the number of rows to import for example. I still think the findings were rather odd and worth sharing. So, let's have a look at how it works.

Setup

I used import mode for the Fact.Movement table from the WideWorldImportersDW database. I then added the Keep Top (100) Rows transformation in the Power Query Editor.
Keep Top Rows


As you can see it folds to SQL and all is good for now.

View Native Query with TOP 100






























Adding transformations


Let's add a transformation on the Quantity column and apply an absolute value to it.
Add Absolute value of Quantity

So now the option to View Native Query is gone. Let's see if Power Query is speaking the truth (spoiler: No) πŸ˜€
I started SQL Server Profiler and captured the queries running against the database after I Close and Apply my changes. As you can see, now both the TOP operator and ABS function are folded.
SQL Server Profiler: TOP 100 and ABS

Now let's try something different and add a filter on the Date Key. Something strange has happened, because I already filtered the first 100 rows, so only 2 dates remained after that. But when I click on the Calculated Absolute Value query step I suddenly have a lot more dates that shouldn't be there in my opinion.
Filter on Date Key


Let's add a field from the Customer dimension this time and see what happens.
Expand Customer Dimension

The query for Fact.Movement is still the same, so the TOP operator and ABS function are still folding. And this is what is sent to the database for the Customer dimension:
SQL Server Profiler: Customer Dimension with WHERE clause

The Curious Case

Now watch closely to the where clause: so it actually already filters out the Customer Key based on the steps performed earlier in the Query Editor. But this Customer dimension is a separate query that returns 1 row, which will be joined to the other query inside Power Query.
Back to that WHERE clause: that Customer Key = 0 is valid for my (broken) Calculated Absolute Value query step, not for the Kept First 100 Rows as you see in the picture above. So I actually get the wrong a different result back into Power Query than I would expect.
I see you're thinking: "But you didn't add an explicit order, right?" So the top 100 is a little arbitrary. That's true, so let's add that order by.
Add Sorted Rows

This is a slightly better result in my opinion. Because now the Power Query steps are in sync with each other. The issue with View Native Query still remains the same by the way. It stops working at the Calculated Absolute Value query step, but the query send to the database is the following, so including the ABS function:

View Native Query after Sort

Recap

I showed several variations in the Power Query Editor of using Keep Top Rows and showed that adding subsequent steps brakes the View Native Query option in the editor, although query folding sometimes does take place. And adding an order to your query before applying a TOP operator is always a good idea, not only in SQL.

The steps I used might not all be best practices when creating a data model in Power BI. In case of the join to the customer dimension for example, it might be better to model it as a separate dimension, because STAR SCHEMA ALL THE THINGS. But I used those steps to highlight the problem.

I already mentioned this 
bug feature to Patrick and Adam (members of the Power BI CAT team) from Guy in a Cube (B | @GuyInACube) when I was at the Precon at Data Saturday Holland. Patrick LeBlanc (B | @patrickdba) also hadn't seen this before and hopeully will take it up with one of his team members. I thought I'd make a write up for him to easily reproduce it.

Monday, October 21, 2019

Speaking at dataMinds Connect in Belgium

I already posted a short update on LinkedIn, but I now finally also had the time to update my blog.


Query Folding in Power BI at dataMinds Connect

I had the honor of doing a session at the Newcomer track at dataMinds Connect. This was a special track for people like me that have (almost) no conference speaking experience. The conference assigned buddies to these newcomers. For that, I'd like to thank Koen Verbeeck (B | @Ko_Ver) for helping me enormously with feedback to and try-outs of my presentation.
My submission to this conference was actually the first I did earlier this year, after that I also submitted to the other places like SQL Saturday Prague. But this was actually my first technical session with lot's of demo's.

Slides on Github

The slides were already shared with the conference organizers, but are also available via my Speaking page. I recently made some changes to the way I share them because I moved all my talks and slides to my Github. I still have some things and links to add there, but the basics are there.

I also did some calculations on the feedback I received and I was pretty happy with the average of 3.9!

Feedback scores


Half marathon Eindhoven

Like I mentioned in my session at dataMinds Connect I also participated in the half marathon in Eindhoven on Sunday October 12.
As it was relatively warm with 24 degrees Celcius, I had to shelve my plans of running a PR fairly quickly after 5K. A lot of people also were struck by the warmth and humidity that day


Power Platform World Tour in Dublin

The next stop is the Power Platform World Tour in Dublin where I'm presenting my Tips & Tricks of our Power BI implementation! I'm also doing one of the "Show & Tell" sessions at the Power Platform World Tour Meetup on the evening of October 30, organised by Ben Watt (B | @benrebooted).
I can also offer a $100 discount to all members who are part of their local Power Platform User Group community with the following code: 2019PPWT100DUB


NvV

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...