-
Presenting Analytics in a Day Workshop on August 20th
August 11, 2020 / No Comments »
In partnership with Microsoft, I'm delivering a complimentary, one-day, Analytics in a Day virtual workshop on August 20th, 9 AM – 5 PM Eastern Time. Targeting BI developers, architects and technology decision makers interested in achieving a single version of truth with organizational BI, this workshop is designed to guide and accelerate your journey towards a modern data warehouse to power your business with Azure Synapse, Azure Data Factory, Azure Data Lake, and Power BI. The first half of the day from 9 am – 1 pm will help you better understand how to: Create an analytics solution that goes from data ingestion to insights using Azure Synapse Analytics and Power BI Empower self-service analytics Enable a truly data-driven culture in your business Part of the workshop will be dedicated to hands-on training to help you get started on your cloud analytics journey. The second half of the day from...
-
Discipline at the Core, Flexibility at the Edge
August 6, 2020 / No Comments »
I'm preparing to teach the brand new Analytics in a Day course by Microsoft. This course emphasizes the business value and technical fundamentals for implementing a modern cloud DW using Azure Synapse, ADF, Data Lake, and Power BI. The second half of the class is focused on Power BI and its role for creating organizational semantic models and self-service models from Synapse. I liked the best practices that Microsoft shares based on how they've adopted BI over years and challenges they faced with self-service BI, including: Inconsistent data definitions, hierarchies, metrics, KPIs Analysts spending 75% of their time collection and compiling data 78% of reports being creating in "offline environments" Over 350 centralized finance tools and systems Approximately $30M annual spend on "shadow applications" Indeed, many vendors tout only self-service BI which can quickly lead to chaos. By contrast, I have found that most successful data-driven organizations have both organizational...
-
Atlanta MS BI and Power BI Group Meeting on August 3rd
July 30, 2020 / No Comments »
Our group celebrates its 10 anniversary! Please join us online for the next Atlanta MS BI and Power BI Group meeting on Monday, August 3rd, at 6:30 PM. Chris Hamill from the Power BI CAT team will share techniques on creating performant reports without sacrificing design. For more details, visit our group page and don't forget to RSVP (fill in the RSVP survey if you're planning to attend). Presentation: Power BI Report Design Techniques for Performance Date: August 3rd, 2020 Time 6:30 – 8:30 PM ET Place: Join Microsoft Teams Meeting Learn more about Teams | Meeting options Overview: As you have likely observed, a performant model with optimized DAX can suffer greatly if the front-end design is too heavy. Front end report developers are often challenged with balancing performance and the richness of user requirements. Chris Hamill from Power BI CAT team will share techniques on creating performant reports without sacrificing...
-
Why You Need a Trusted Advisor
July 24, 2020 / No Comments »
I've providing advisory services to a Fortune 500 organization for a few months now. As all large organizations, they adopted Power BI Premium. However, they have provisioned only one Power BI Premium P1 node which has been showing signs for overutilization. In the process, I discovered they have purchased 40 Power BI Premium cores with 32 cores left unutilized! In other words, they used 1/5 of what they've been paying Microsoft as Power BI Premium fees. How did they arrive at this unfortunate situation? A year or so ago, they used the Power BI Premium Calculator to estimate the licensing cost on their own. They plugged in 10,000 users and got a recommendation for 5 P1 nodes (or 40 cores). And that's what they bought, assuming that they will get a cluster of five P1 nodes that would load balance the reports across nodes. When they set up Power BI...
-
Conquering Time Zones
July 16, 2020 / No Comments »
A client has Power BI models connected to Dynamics Online. Dynamics stores all dates in UTC instead of keeping the time offset, such as 7/14/2020 1:21:29 AM +00:00. Naturally, the users want to see dates localized to the US Eastern Time zone. Easy, right? Use the Power Query ToLocal time transformation (in the Transform ribbon, expand Time, and then click To Local) to offset with the desired number of hours. But there are a few issues with this approach: It will work fine in Power BI Desktop (assuming you are on the Eastern Time zone because Power BI will pick your computer settings), but it won't work when you publish the dataset to powerbi.com. The reason for this is that Microsoft sets the time zone of Azure servers to UTC irrespective of the geo location of the Power BI data center. So, when Power BI Service refreshes the dataset, it...
-
Designing Responsive Power BI Reports (Part 2)
July 6, 2020 / No Comments »
In my previous post about responsive reports, I said that changes to the report design can dramatically reduce the report load time. But you will undoubtedly reach a point where you cannot optimize the report any further. After all, having a page with a single visual might be fast, but I doubt it would deliver much business value. What else can be done to speed up the reports and ideally achieve a page load time of a few seconds? Our next stop for that project is to revisit the solution architecture. The client initially opted for a hybrid architecture where the reports use live connection to on-prem SSAS Tabular models. However, a significant time was spent in Power BI showing "loading data" before rendering the report. What took so long? In this case, Power BI was hosted in the Azure West region, the Tabular server in the company data center...
-
Propagating DAX BLANK() Over Relationships
July 3, 2020 / No Comments »
Happy 4th of July with a DAX puzzle! Consider the following three tables. Notice that InvoiceDetails has a data integrity issue where the third row doesn't have InvoiceNo (InvoiceNo is blank). What would a measure with COUNTROWS(Invoice) return for Teo? BLANK(), right? And that's correct because Teo has no invoices. Now, what would COUNTROWS(InvoiceDetails) return for Teo? BLANK() again given that Teo has no line items? Nope, it returns 1. In other words, it will return the count of all line items whose InvoiceNo is blank. How come? COUNTROWS(Invoice) returns blank for all customers with no matching rows in Invoice because these customers are mapped to the blank row in Invoice, which is excluded from COUNTROWS by default. But if you change COUNTROWS(Invoice) to COUNTROWS(VALUES(Invoice)), then 1 will be returned for these customers. Then, the filter flows to InvoiceDetals through the blank row and counts all rows with blank InvoiceNo....
-
Atlanta MS BI and Power BI Group Meeting on July 6th
July 2, 2020 / No Comments »
MS BI fans, please join us online for the next Atlanta MS BI and Power BI Group meeting on Monday, July 6th, at 6:30 PM. David Eldersveld, a Microsoft MVP, will demonstrate cool visualization techniques using DAX. For more details, visit our group page and don't forget to RSVP (fill in the RSVP survey if you're planning to attend). Presentation: DAX Visualization Techniques for the Power BI Table/Matrix Date: July 6th, 2020 Time 6:30 – 8:30 PM ET Place: Join Microsoft Teams Meeting Learn more about Teams | Meeting options Computer audio is recommended Overview: Did you know that DAX is more than a modeling language and can also be used for data visualization? From sparklines to bullet charts, Unicode text to SVG, icons to maps; learn different techniques to build visuals within visuals using DAX. In this session, David Eldersveld guides you through techniques that go beyond basic conditional formatting to...
-
A False Sense of Data Security
June 30, 2020 / No Comments »
UPDATE 11/26/2020: After the latest update to tenant settings, I'm glad that the new "Export to ..." settings don't affect external connections anymore. There is now a new setting "Allow live connections" to control external connectivity. Read "Updated Export Settings" to learn more. The Power BI "Export data" setting is horrible. I wish Microsoft never came up with it and no other Microsoft tool has it. Apparently, the premise here is to prevent users from exporting data behind the report so it does not end up in wrong hands. But all it accomplishes is a false sense of data security and does more damage than good. Like users can't take screenshots and share them wherever they please. Or print and mail reports. Unless of course, you disable printing reports too, but where is that path of not trusting your users going? Why don't you just disallow them from viewing reports...
-
A Gateway to Hell
June 25, 2020 / No Comments »
"Life is suffering and suffering is unavoidable". Buddha must have dealt with data gateways. Two "gotchas" that surfaced recently after countless hours of troubleshooting: A bug in the data gateway AD lookup cache – In my "Gateway AD Lookups" post, I described a very useful gateway feature to look up the on-prem user identity from a cloud identity so that you don't have to create explicit mappings. The gateway maintains an internal dictionary cache so that it doesn't have to look up Windows Active Directory for every query. This cache can't be disabled. The issue is that If you have an older gateway build, e.g. December 2019, there is a bug (and a security vulnerability) with concurrent access to cache which may cause the gateway to map the interactive user to a wrong AD user under heavy load. The issue was fixed in a later build, but the fix introduced...

We offer onsite and online Business Intelligence classes! Contact us about in-person training for groups of five or more students.


