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


Power BI Write-back do Azure SQL: Nativní řešení pomocí Fabric User Data Functions
Fabric Notebooky jsou pro real-time interakce příliš pomalé a Fabric SQL zase zbytečně drahé. Tento návod ti ukáže, jak tato architektonická omezení obejít. Postav si "Translytické" řešení pomocí User Data Functions (UDF) pro okamžitý zápis do Azure SQL Database, kompletně zabezpečené přes Private Endpoints a Key Vault.
Vojtěch Šíma
Jan 1210 min read


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
Jan 1211 min read


Rychlejší způsob načítání souborů ze SharePointu v Power BI
Tento technický průvodce porovnává výkon konektorů SharePoint.Files a SharePoint.Contents v prostředí Power BI. Detailně popisuje implementaci vlastního Power Query M skriptu s využitím SharePoint REST API pro minimalizaci síťových požadavků a optimalizaci hromadného načítání souborů pro rychlejší refresh datasetu.
Vojtěch Šíma
Dec 30, 20257 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


Jak zrychlit pomalý SharePoint List Refresh v Power BI
Trápí tě pomalý refresh SharePoint seznamů v Power BI? Tento průvodce rozebírá limity nativního konektoru (Implementace 2.0) a ukazuje, jak opravit časté chyby jako RenderListDataAsStream. Tím ale nekončíme. Sdílím vlastní M skript, který využívá SharePoint REST API pro stahování 5 000 položek na stránku, dynamicky řeší složité typy sloupců a zkracuje dobu načítání z minut na pouhé sekundy.
Vojtěch Šíma
Dec 24, 202513 min read


Automatická synchronizace SQL Analytics Endpointu v Microsoft Fabric
Když v Microsoft Fabric používáš Lakehouse, automaticky k němu dostaneš i SQL Analytics Endpoint pro čtení delta tabulek přes - SQL. Ten ale může mít zpoždění za Lakehousem, takže nová data nejsou hned vidět v Power BI. V článku ukazuju, proč se to děje a jak SAE donutit k synchronizaci ručně i automaticky přes REST API.
Vojtěch Šíma
Nov 17, 20254 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


Proč Power BI hlásí duplicitní hodnotu, i když není
Power Query rozlišuje velikost písmen. DAX a model ve výchozím stavu ne. Tenhle mismatch umí rozhodit relationship klíče. Nejlepší postup: nepoužívat textové sloupce jako relationship key. Když musíš, sjednoť text v Power Query pomocí Text.Lower nebo Text.Upper, případně deduplikuj s case-insensitive comparerem: Table.Distinct(Source, {"letter"}, Comparer.OrdinalIgnoreCase).
Vojtěch Šíma
Nov 1, 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: Kam se data ukládají?
Gen1 zapisuje CSV snapshoty do složky CDM v tvém ADLS Gen2 a uvidíš je až po propojení workspace s lakem. S Enhanced Compute Engine refresh navíc naplní SQL cache, kterou můžeš použít pro DirectQuery. Gen2 bez destination ukládá data do poloskryté DataflowsStagingLakehouse a vystaví je přes DataflowsStagingWarehouse, uložené jako Delta tabulky nad
Vojtěch Šíma
Oct 26, 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 (předběžný náhled)
Praktický průvodce UDFx v DAXu. Naučíš se deklarovat UDFx pomocí DEFINE a FUNCTION, napojit parametry a režimy a vybrat si mezi val a expr. Uvidíš, kde září v measures, calc groups a vizuálech, čemu se vyhnout v počítaných sloupcích, jak je formátovat v TMDL a jak je vypsat přes DMV a Zobrazení modelu.
Vojtěch Šíma
Sep 21, 20256 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


Proč je List.Contains v Power Query pomalý? Rychlejší Lookup Alternativy
Srovnání metod pro lookup v Power Query: List.Contains vs Table.Join vs Record.FieldOrDefault. Benchmarky na 1M řádků ukazují, že skenování listu je pomalé a rychlost závisí na pozici, zatímco mapování přes record vytvořený pomocí Record.FromList drží čas prakticky konstantní. Do testů bylo zahrnuto i rozbalování se zadanými typy přes Record.FieldOrDefault.
Vojtěch Šíma
Aug 24, 20259 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


Jak připojit GraphQL API do Power BI jako datový zdroj
Prozkoumej, jak připojit Power BI k GraphQL API pomocí M. Tahle příručka tě provede základy GraphQL jako jsou dotazy, proměnné, fragmenty, introspekce a stránkování, a pak to posune dál automatickým generováním typovaných tabulek s dynamickým mapováním schématu. Všechny příklady používají veřejná GraphQL API jako Rick & Morty a Countries.
Vojtěch Šíma
Aug 4, 202519 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


Jak Power Query (M) vyhodnocuje dotazy a proč je výkon někdy nekonzistentní
Kompletní průvodce vyhodnocováním v Power Query M: pokrývá rozdíl mezi lazy a eager evaluací, neměnitelné proměnné a streamování tabulek, explicitní buffering, query folding, eager vyhodnocování parametrů funkcí a použití higher-order thunks, vliv scope proměnných a lenost polí uvnitř záznamů. Vše ilustrováno na příkladech s náhodnými čísly, timestampy a zpožděným vyhodnocením.
Vojtěch Šíma
Jul 16, 202513 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
bottom of page