top of page
Vojtěch Šíma | The Data Bender | Power BI & Fabric
Vojtěch Šíma | The Data Bender


Power BI Write-Back to Azure SQL Database using Fabric User Data Functions
Fabric Notebooks are too slow for real-time interactions, and Fabric SQL is expensive for simple write-back. This guide shows you how to bypass these architectural limitations. Learn to build a "Translytical" solution using User Data Functions (UDF) to write to Azure SQL Database instantly, securing everything with Private Endpoints and Key Vault.
Vojtěch Šíma
24 hours ago11 min read


Fix Slow Refreshes: Faster Way to Load SharePoint Files in Power BI
This technical guide benchmarks performance differences between SharePoint.Files and SharePoint.Contents within Power BI. It further details a custom Power Query M script implementation using the SharePoint REST API to minimize network requests and optimize bulk file retrieval for faster dataset refreshes.
Vojtěch Šíma
Dec 30, 20258 min read


How to Fix Slow SharePoint List Refresh in Power BI
Struggling with slow SharePoint List refreshes in Power BI? This guide dives deep into the limitations of the native connector (Implementation 2.0) and how to fix common errors like RenderListDataAsStream. But we don't stop there. I share a custom, copy-paste M script that utilizes the SharePoint REST API to fetch 5,000 items per page, handles complex column types dynamically, and reduces refresh times from minutes to mere seconds.
Vojtěch Šíma
Dec 24, 202514 min read


Programmatically Refresh & Sync SQL Analytics Endpoint Metadata in Microsoft Fabric
Using a Lakehouse in Microsoft Fabric automatically gives you a SQL Analytics Endpoint, but its metadata sync is not always instant. This post explains why SAE can lag behind your Delta tables and how to wake it up, refresh it manually, or call the Refresh SQL Endpoint Metadata API from a pipeline or notebook.
Vojtěch Šíma
Nov 17, 20254 min read


Why Power BI Says a Value Is a Duplicate When It’s Not
Power Query is case sensitive, while DAX and the model are case insensitive by default. That mismatch can cause weird relationship key issues. Best fix: Avoid text columns as relationship keys. If you have to use them, normalize them in Power Query with Text.Lower or Text.Upper, or de-dup with a case-insensitive comparer like: Table.Distinct(Source, {"letter"}, Comparer.OrdinalIgnoreCase).
Vojtěch Šíma
Nov 1, 20254 min read


Dataflows Gen1 and Gen2: Where is my data stored?
Dataflows storage without guessing. Gen1 writes CSV snapshots into a CDM folder in your ADLS Gen2, visible only after you link the workspace to your lake. With Enhanced Compute Engine, refresh also fills a SQL cache you can use for DirectQuery. Gen2 with no destination lands data in the semi-hidden DataflowsStagingLakehouse and surfaces it through DataflowsStagingWarehouse, stored as Delta tables backed by Parquet. Where the files live, how to reach them, and what to watch ou
Vojtěch Šíma
Oct 26, 20255 min read


DAX User Defined Functions (Preview)
A hands-on guide to DAX user defined functions. See how to declare UDFx with DEFINE and FUNCTION, wire up parameters and modes, and pick between val and expr. Learn where they shine in measures, calc groups, and visuals, what to avoid in calculated columns, how to format them in TMDL, and how to list them via DMVs and Model view.
Vojtěch Šíma
Sep 21, 20258 min read


Why Is Power Query List.Contains Slow? Faster Lookup Alternatives
List.Contains scans and stalls at scale. This post benchmarks lookup patterns on real tables and shows why buffering only helps a little, why joins are solid, and how a record map built with Record.FromList plus Record.FieldOrDefault delivers quick, clean lookups. Learn when to keep the merge and when to build the map.
Vojtěch Šíma
Aug 21, 202510 min read


How to Connect GraphQL APIs as a Data Source in Power BI
Explore how to connect Power BI to GraphQL APIs using M. This guide walks through GraphQL fundamentals like queries, variables, fragments, introspection, and pagination, then takes it further by auto-generating typed tables with dynamic schema mapping. All examples use public GraphQL APIs like Rick & Morty and Countries.
Vojtěch Šíma
Aug 3, 202520 min read


How Power Query (M) evaluates your queries, and why the performance gets weird
Comprehensive guide to Power Query M evaluation, covering lazy versus eager evaluation, immutable variables and streaming of tables, explicit buffering, query folding, function parameter evaluation and higher-order thunks, variable scope effects, and record-field laziness—illustrated with random-number, timestamp, and delayed-execution examples.
Vojtěch Šíma
Jul 12, 202515 min read


Stop Repeating CALCULATE: Iterate Over Categories in DAX
Still copying CALCULATE for every category? Time to break the habit. This post shows how DAX iterators like SUMX and AVERAGEX can replace that mess with cleaner, scalable logic using table expressions.
Vojtěch Šíma
Jun 30, 20257 min read


Native write-back in Power BI (Fabric preview)
Power BI just got an upgrade. With User Data Functions and Translytical Flow Tasks in Microsoft Fabric, you can now write comments or updates directly to your SQL tables — straight from a report. No extra tools, no clunky workarounds. This guide walks you through building your first real-time write-back feature step by step.
Vojtěch Šíma
Jun 13, 20257 min read


While Loop in M Language
While loop in M Language using List.Generate()
Vojtěch Šíma
May 13, 20257 min read


Refresh Semantic Models Every Minute – Now in Fabric (Preview)
Refresh Semantic Model every minute in Fabric
Vojtěch Šíma
May 5, 20253 min read


Make Your Power Query Dynamic with Parameters
Make your Power Query Dynamic with Parameters, examples like: synced date filter on queries, filter the same list of values, etc.
Vojtěch Šíma
Mar 23, 202510 min read


Top everyday DAX functions
tl;dr DAX has probably hundreds of functions, however, several of them stand out. You will probably use them in every project. Normally I would add them here, but below there's table of contents. Disclaimer: If you don't see your favorite function here, it doesn't mean it's bad, this article covers my top pick of really core ones. Criteria explanation I won’t dive into DAX (Data Analysis Expressions) concepts or detailed explanations in this article. Instead, I’ll go straight
Vojtěch Šíma
Feb 18, 202514 min read


Ultimate intro to Power Query M Language
tl;dr "M" is a language used in Power Query to transform, filter, and combine data. Power Query automatically generates M code based on your "clickable" actions, but you can also write it manually for more complex operations. M is primarily written by calling pre-built functions that modify data step by step, making it intuitive and easy to learn. Disclaimer: This article is aimed for beginners and will not go into depths of M. Goal of the artcile is to introduce you to "M",
Vojtěch Šíma
Feb 7, 202514 min read


Combine Files Quickly in Power Query
tl;dr Power Query provides a native file combiner, but it can feel complex and generates numerous queries. In this article, you'll learn two methods to create a simpler, more editable, and controllable file combiner with essentially just one-ish line of code. The guide is tailored for users who prefer a "click-based" approach. Native File Combiner You've likely encountered a feature in Power Query that allows you to combine files using a specific sample file as a reference. T
Vojtěch Šíma
Dec 22, 20248 min read


API Autentizace v Power Query
tl;dr když pracujete s API v Power Query, je důležité znát několik autentizačních metod: Anonymous, API Key, Bearer Token, Basic a OAuth...
Vojtěch Šíma
Nov 30, 20248 min read


Pagination in Power Query
tl;dr pagination is a form of dividing data into smaller chunks (pages). With this method we can achieve more efficient transfer of data....
Vojtěch Šíma
Nov 13, 202410 min read
bottom of page