Browse our archives by topic…
Power BI

Microsoft Fabric: Announced
Microsoft Fabric extends the promise of Azure Synapse integration to all analytics workloads from the data engineer to the business knowledge worker. It brings together Power BI, Data Factory, and the Data Lake, on a new generation of the Synapse data infrastructure. Delivered as a unified SaaS offering, it aims to reduce cost and time to value, while enabling new "citizen data science" capabilities. Check out all the resources from the endjin team collated in this post.

Intro to Microsoft Fabric
Microsoft Fabric unifies data & analytics, building on Azure Synapse Analytics for improved data-level interoperability. Explore its offerings & pros/cons.

How to develop an accessible colour palette for Power BI
If the audience for your Power BI report is larger than 12 people, then statistically 1 of your audience suffers from Colour Vision Deficiency. In this post we will talk through how we experimented with colour to develop an accessible colour palette and why colour and contrast is important when it comes to data visualisation.

Big Data LDN: highlights and how to survive your first data conference
Here are some of the highlights form this year's Big Data LDN conference.

EVALUATEANDLOG in DAX
This blog post explores an exciting, hidden new feature in DAX - the EVALUATEANDLOG function. EVALUATEANDLOG brings debugging capability to Power BI.

How to enable data teams with the design assets required for impactful data storytelling in Power BI
In this post we will talk through how to expand on a data team's creative skillset, without access to specialist photo editing software such as Photoshop or Illustrator.

5 tips to pass the PL-300 exam: Microsoft Power BI Data Analyst
I recently passed the PL-300 - Power BI Data Analyst exam. Here are some tips to prepare for it that I found useful!

Performance Optimisation Tools for Power BI
Performance tuning is an important aspect of Power BI report development. This blog post highlights useful analyzer tools you can utilise to optimise the performance of your Power BI reports.

Insight Discovery (part 1) – why do data projects often fail?
Many data projects fail to deliver the impact they should for a simple reason – they focus on the data. This series of posts explains a different way of thinking that will set up your data & analytics projects for success. Using an iterative, action-oriented, insight discovery process, it demonstrates tools and techniques that will help you to identify, define and prioritize requirements in your own projects so that they deliver maximum value. It also explores the synergy with modern cloud analytics platforms like Azure Synapse, explaining how the process and the architecture actively support each other for fast, impactful delivery.

Context Transition in DAX
This blog post explores how the CALCULATE function in DAX performs context transition.

CALCULATE in DAX
This blog post explores one of the most powerful functions in DAX - CALCULATE.

RELATED and RELATEDTABLE in DAX
This blog post explores two common functions in DAX - RELATED and RELATEDTABLE.

Filtering unrelated tables in Power BI
Star Schemas are designed to be able to filter the fact table by any dimension. But in some cases, we might also want to filter a dimension table by another dimension. Here's a clean way of doing so.

How to dynamically switch between measures in Power BI visuals with Field Parameters
In this blog post explore using Field Parameters to dynamically switch between measures in visuals, enhancing report analysis capabilities.

Table Functions in DAX: DISTINCT
This blog post explores one of the most common table functions in DAX - DISTINCT.

Table Functions in DAX: FILTER and ALL
This blog post explores two of the most common table functions in DAX - FILTER and ALL.

Measures vs Calculated Columns in DAX and Power BI
Explore DAX & Power BI differences between measures & calculated columns, and learn when to use each in this informative blog post.

How to Create Custom Buttons in Power BI
Explore a step-by-step guide on designing custom buttons in Power BI, covering shape, form, icons, states, actions, and enhancing report design & UI.

Evaluation Contexts in DAX - Context Transition
In this third and final part of this series, we learn how CALCULATE performs Context Transition when used inside of a filter context.

Evaluation Contexts in DAX - Relationships
After learning about the two different types of evaluation contexts in our previous post, we now talk about table relationships and how these interact with the filter and row contexts to condition the output of our DAX code.

Testing Power BI Reports with the ExecuteQueries REST API
Explore DAX queries for scenario-based testing in Power BI reports to ensure data model validity, rule adherence, and security maintenance.

How to Build a Branded Power BI Report Theme
Explore translating a company's brand into Power BI reports and extending their visual identity to include the Power BI platform.

Why you should care about the new Power BI ExecuteQueries API
The new Power BI ExecuteQueries REST API presents a number of new opportunities for Power BI developers in terms of tooling, process and integrations. This post highlights some of the key advantages of this new capability.

Generating custom themes in Power BI – A designer's perspective
Explore custom Power BI themes and learn tips for styling reports, pushing beyond your comfort zone for enhanced data visualization.

How to use Azure Synapse SQL Serverless to connect Data Lake and Power BI
TL;DR - Using Azure Synapse SQL Serverless, you can query Azure Data Lake and populate Power BI reports across multiple workspaces.

How to use Power BI deployment pipelines to enable DevOps for analytics
Power BI deployment pipelines is a (relatively) new feature of Power BI that is used to manage collaboration, change management and testing of reports. They can be used to enable DevOps for your analytics solutions, and support structured development and deployment of reports.

How to update credentials for an on-prem Power BI data source using PowerShell
Automating the updating of Power BI data source credentials is a common requirement in the application lifecycle management of a Power BI solution. However, on-premises data sources throw an extra spanner in the works: you must encrypt your credentials using the RSA-OAEP encryption algorithm before sending off the request to update the data source. There is currently no PowerShell module that encapsulates this logic into a set of handy cmdlets, so you must either implement the algorithm's logic yourself, or you can use the helper classes in the existing .NET SDK to do all the heavy lifting for you. This blog shows how to do the latter.

How do I know if my data solutions are accurate?
Data insights are useless, and even dangerous (as we've seen recently at Public Health England) if they can't be trusted. So, the need to validate business rules and security boundaries within a data solution is critical. This post argues that if you're doing anything serious with data, then you should be taking this seriously.

Quick tip – Removing totals from a matrix in Power BI
Here is a quick tip on how to remove column summarisation from a matrix in Power BI!

Quick tip – Updating the sort order of a column in Power BI (avoiding circular references)
Here's a quick tip on how to alter the sort order of a column in Power BI!

How to dynamically choose the correct font colour based on a background colour in Power BI tables.
Boost Power BI report readability with dynamic font colors for diverse backgrounds, ensuring clear text display and enhanced accessibility.

Power BI Embedded: Convention-based dynamic Row-level Security
Power BI Embedded is a great tool for ISVs offering a BI product for their customers. Generally, the reports exposed to the customers are personalized to some extent - one can use the Power BI JavaScript library to interact with the reports and tweak the visuals based on the logged-in user. Another way reports differ from user to user is the underlying data that user is allowed to see. This is controlled using Row-level Security. A standard method to implement Row-level security is to pass the user's email address to the data model, and have rules filter the data model appropriately based on the data that user is permitted to see. However, sometimes it can be useful to filter the data model based on more than just a user's email address. This blog indicates how to modify an Embed Request (made by Power BI Embedded) to provide additional context on what data the embedding application would like to be returned for a user to view on a report.

How can I improve my data model in Power BI?
Configuring model properties in Power BI allows you to create a model which is far more discoverable and is able to better support the visualisations you need. There are several different model properties which can be configured, some of these focus on discoverability whilst others allow you to alter the ways in which data is sorted/displayed/summarised in the reports.

Why Power BI developers should care about the new read/write XMLA endpoint
Whilst "read/write XMLA endpoint" might seem like a technical mouthful, its addition to Power BI is a significant milestone in the strategy of bringing Power BI and Analysis Services closer together. As well as closing the gap between IT-managed workloads and self-service BI, it presents a number of new opportunities for Power BI developers in terms of tooling, process and integrations. This post highlights some of the key advantages of this new capability and what they mean for the Power BI developer.

Learning DAX and Power BI – CALCULATE
This is the final blog in a series about DAX and Power BI. This post focuses on the CALCULATE function, which is a unique function in DAX. The CALCULATE function has the ability to alter filter contexts, and therefore can be used to enable extremely powerful and complex processing. This post covers some of the most common scenarios for using CALCULATE, and some of the gotchas in the way in which these different features interact!

Testing Power BI Reports using SpecFlow and .NET
Ensure Power BI report quality by connecting to tabular models, executing scenario-based specs, and validating data, business rules, and security.

Data modelling with Power BI - Loading and shaping data
In order to effectively work with our data in Power BI we need to structure the model as best to support the representations we need. This process is called data modelling. Data modelling includes loading, shaping, cleansing and enhancing the data.This post runs through some of the important steps used in data modelling, and gives an example of loading and shaping data using Power BI.

Learning DAX and Power BI – Related Tables and Relationships
This is the sixth blog in a series about DAX and Power BI. This post focuses on relationships and related tables. These relationships allow us to build up intricate and powerful models using a combination of sources and tables. The use of relationships in DAX powers many of the features around slicing and page filtering of reports.

Testing Power BI Dataflows using SpecFlow and the Common Data Model
Validating Power BI Dataflows is essential for reliable insights. Endjin employs automated quality gates in the development process, ensuring confidence in complex Power BI solutions.

Learning DAX and Power BI – Table Functions
This is the fifth blog in a series on DAX and Power BI. This post focuses on table functions. In DAX, table functions return a table which can then be used for future processing. This can be useful if, for example, you want to perform an operation over a filtered dataset. Table functions, like most functions in DAX, operate under the filter context in which they are applied.

Learning DAX and Power BI - Aggregators
This is the fourth blog in a series about DAX and Power BI. We have so far covered filter and row contexts, and the difference between calculated columns and measures. This post focuses on aggregators. We cover the limitations of the classic aggregators, and demonstrate the power of the iterative versions. We also highlight some of the less intuitive features around how these functions interact with both filter and row contexts.

Power BI Dataflow refresh polling
If you're a frequent user of the Power BI REST API and Power BI Dataflows, you may have come across the problem that there's seemingly no programmatic way to get the refresh history of a Dataflow. The ability to know the status of a refresh operation is useful when you're performing automated operations, and you need to know that something has succeeded or failed before deciding what to do next. For example, a desired feature in the Power BI Service is to be able to refresh a dataflow, and automatically refresh a dataset that depends on that dataflow. Without a refresh history endpoint, this is made more complicated than necessary. This blog outlines a way to programmtically retrieve a Dataflow's refresh history in order to poll a refresh operation's status, useful for any fully automated scenario.

Azure Analysis Services: How to update the expression for a calculated column from .NET
Learn how to update Azure Analysis Services model schemas in custom .NET apps using AMO SDK. Develop rich end-user features for run-time, user-driven \"what if\" analysis.

Learning DAX and Power BI – Calculated Columns and Measures
This is the third blog in a series about learning DAX and Power BI. The first two blogs focused on filter and row contexts. We are now moving on to talk about calculated columns and measures. These are the main features used to support the display of complex visuals. They allow you to combine columns, aggregate values, reformat data, and much more. The difference between these features can get a bit confusing so we've attempted to make that clearer using some concrete examples!

Learning DAX and Power BI – Row Contexts
Here is the second blog in a series around learning DAX and Power BI. This post focuses on row contexts, which are used when iterating over the rows of a table when, for example, evaluating a calculated column. Row contexts along with filter contexts underpin the basis of the DAX language. Once you understand this underlying theory it is purely a case of learning the syntax for the different operations which are built on top of it.

Azure Analysis Services - How to process an asynchronous model refresh from .NET
Incorporate Azure Analysis Services in custom apps, going beyond read-only queries. This post explains using REST API in .NET apps for async model refreshes, ensuring efficient updates.

Azure Analysis Services: How to execute a DAX query from .NET
Explore endless possibilities with dynamic DAX queries in C# for Azure Analysis Services integration in custom apps using the provided code samples.

British Science Week - inspiring the next generation of data scientists
The theme of this year's British Science Week (6 - 15 March 2020) is "Our Diverse Planet". We'll be getting involved by speaking to school children about the work we've been doing with Oxfordshire-based OceanMind (part of the Microsoft AI for Good programme) to help them combat illegal fishing, hopefully inspiring some of the next generation of data scientists!

Azure Analysis Services - How to query all the measures in a model from .NET
Integrate Azure Analysis Services beyond data querying, using model metadata for dynamic UIs and APIs. This post details .NET querying methods for deeper app integration.

Azure Analysis Services: How to open a connection from .NET
Learn to integrate Azure Analysis Services in apps by establishing server connections. Follow this guide with code samples for essential scenarios.

Azure Analysis Services - integration options using .NET, REST APIs and PowerShell
Explore Azure Analysis Services in custom apps using SDKs, PowerShell cmdlets & REST APIs. Learn to choose the right framework in this guide.

Azure Analysis Services: 8 reasons why you might want to integrate into a custom application
We've done a lot of work at endjin with Azure Analysis Services over the last couple of years - but none of it has been what you'd call "traditional BI". We've pulled, twisted and bent it in all sorts of directions, using it's raw analytical processing power to underpin bespoke analysis products and processes. This post explains some of the common (and not-so-common) reasons why you might want to do similar things, and how Azure Analysis Services might be the key to unlocking your data insights.

AI for Good Hackathon
Towards the end of last year, Microsoft invited endjin along to a hackathon session they hosted at the IET in London as part of their AI for Good initiative. I've been thinking about the event and the broader work Microsoft is doing here a lot lately, because it gets to the heart of what I love about working in this industry: computers can magnify our power to do to good.

Building a secure data solution using Azure Data Lake Store (Gen2)
In this blog we discuss building a secure data solution using Azure Data Lake. Data Lake has many features which enable fine grained security and data separation. It is also built on Azure Storage which enables us to take advantage of all of those features and means that ADLS is still a cost effective storage option!This post runs through some of the great features of ADLS and runs through an example of how we build our solutions using this technology!

Endjin is a Snowflake Partner
Snowflake is a cloud native data warehouse platform, that enabled data engineering, data science, data lakes, data sharing and data warehousing. Endjin are very excited to announce our partnership.

The Power BI Weekly newsletter has published its fifth edition!
Subscribe to Power BI Weekly, our new free weekly newsletter for all things Power BI!

Exploring Azure Data Factory - Mapping Data Flows
Mapping Data Flows are a relatively new feature of ADF. They allow you to visually build up complex data transformation sequences. This can aid in the streamlining of data manipulation and ETL processes, without the need to write any code! This post gives a brief introduction to the technology, and what this could enable!

Announcing Power BI Weekly!
Power BI has become more successful than anyone anticipated. We've decided to spin out the Power BI category from the Azure Weekly Newsletter into it's own publication - Power BI Weekly.

Using CALENDAR vs CALENDARAUTO to generate 'Date' table for year-on-year comparisons
Are you performing time-intelligence calculations in your Power BI report? Are you using either the CALENDAR or CALENDARAUTO DAX function to create your date table? Care needs to be taken when choosing the generation method for your date table when performing time-based comparisons. This is where it becomes important to understand the implications of generating a date table using the CALENDAR function and CALENDARAUTO function in Power BI. This blog will outline the considerations you need to make whilst designing the measures in your report.

How we set up daily Azure spending alerts and saved $10k
Read how we set up Azure spending alerts and saved over $10k

Creating a PowerBI report with DirectQuery and multiple SQL Database sources using Elastic Query
Sometimes you want to build a Power BI dashboard that pulls in data from two different data sources. In this blog post Alice Waddicor demonstrates how you can use DirectQuery and multiple databased via ElasticQuery.

How to use Power BI Embedded with AspNetCore
This post shows how to add a Power BI Embedded report to an ASP.NET Core application.

AWS vs Azure vs Google Cloud Platform - Analytics & Big Data

Embracing Disruption - Financial Services and the Microsoft Cloud
We have produced an insightful booklet called "Embracing Disruption - Financial Services and the Microsoft Cloud" which examines the challenges and opportunities for the Financial Service Industry in the UK, through the lens of Microsoft Azure, Security, Privacy & Data Sovereignty, Data Ingestion, Transformation & Enrichment, Big Compute, Big Data, Insights & Visualisation, Infrastructure, Ops & Support, and the API Economy.

Visualise your Azure Table Storage data with Power BI
You can easily visualise data stored in Azure Table Storage in Power BI. This guide shows you how.