Home › DAX of Power Query

Waar hoort je logica: in Power Query, in DAX of in de bron?

Zo ver naar links als kan. Wat altijd waar is hoort in de bron of in de laadstap, zodat het op een plek staat en iedereen hetzelfde ziet. Wat afhangt van wat de gebruiker aanklikt hoort in een measure. Berekende kolommen zitten daartussenin en zijn meestal een teken dat iets een stap eerder had gemoeten.

De vier lagen, en wat er thuishoort

LaagHoort daarWaarom
BronsysteemRegels die voor iedereen geldenElk systeem dat de bron leest, ziet hetzelfde
GegevenslaagOpschonen, samenvoegen, historieEen plek om te herstellen als er iets misgaat
Power QueryVorm geven, kolommen die altijd waar zijnWordt eenmalig bij het verversen gedaan
DAX-measureAlles wat afhangt van de selectieWordt berekend op het moment van kijken

De vuistregel

Stel jezelf een vraag: verandert deze uitkomst als iemand een andere periode of afdeling aanklikt? Is het antwoord nee, dan hoort het naar links, richting de bron. Is het antwoord ja, dan hoort het in een measure.

Die ene vraag lost het overgrote deel van de twijfelgevallen op, en voorkomt de situatie waarin dezelfde berekening op drie plekken staat en op twee ervan verouderd is.

Waarom berekende kolommen zo vaak een symptoom zijn

Een berekende kolom wordt bij het verversen uitgerekend en opgeslagen. Hij kost dus geheugen in het model, ook als niemand hem gebruikt. Vaak staat hij er omdat het in Power Query net iets te veel moeite was, of omdat de bron niet aangepast mocht worden.

Dat is niet altijd fout, maar het is wel het eerste waar wij naar kijken als een model te groot of te traag is. Meer daarover in waarom laadt mijn Power BI-rapport zo traag.

Query folding, in een alinea

Power Query probeert je bewerkingen te vertalen naar een opdracht die de bron zelf kan uitvoeren. Filteren, groeperen en kolommen weglaten gebeuren dan in de database, en er komt alleen nog het resultaat over de lijn.

Gebruik je ergens halverwege een stap die niet vertaald kan worden, dan valt dat weg en haalt Power BI alsnog alles op. De verversing wordt daar in een klap een veelvoud van. Zet stappen die niet kunnen folden dus zo laat mogelijk in de rij.

Wat dit met overdraagbaarheid te maken heeft

Logica die in een rapportbestand zit, verhuist niet mee naar het volgende rapport. Definities die in de gegevenslaag staan wel. Dat is de reden dat wij Power BI puur als visualisatielaag gebruiken en de betekenis eronder vastleggen. Zie hoe voorkom je afhankelijkheid van een Power BI-bouwer.

He delivered a high-quality Power BI template and added value with strong visual storytelling and a custom function for column-level checks.
Dr. Florian FahrenbachProduct Owner Data en Analytics

Een half uur is genoeg om te weten of het past

Geen presentatie en geen offerte aan het eind. We lopen je bronnen langs, je definities en je grootste ergernis.

Plan een half uur

Veelgestelde vragen

Hoort logica in Power Query, in DAX of in de bron?

Zo ver naar links als kan. Wat altijd waar is hoort in de bron of in de laadstap, zodat het maar op een plek staat. Wat afhangt van wat de gebruiker aanklikt, hoort in een measure. Berekende kolommen zitten daartussenin en zijn meestal een teken dat iets een stap eerder had gemoeten.

Wanneer is een berekende kolom wel de juiste keuze?

Als je erop wilt filteren of groeperen en de waarde niet afhangt van de selectie. Een categorie-indeling bijvoorbeeld. Gaat het om een uitkomst die verandert zodra de gebruiker een periode of afdeling kiest, dan hoort het in een measure.

Waarom zou je logica niet gewoon in het rapport zetten?

Omdat het rapport dan niet meer overdraagbaar is. Zit de definitie van marge in een measure die alleen in dat ene bestand bestaat, dan bestaat marge alleen daar. Een tweede rapport krijgt een net iets andere definitie en de discussie begint opnieuw.

Wat betekent query folding en waarom is het belangrijk?

Power Query kan bewerkingen doorschuiven naar de bron, zodat de database het werk doet en er minder data over de lijn gaat. Zodra je een stap gebruikt die niet doorgeschoven kan worden, stopt dat en haalt Power BI alles op om het zelf te doen. Dat is vaak de echte reden dat een verversing lang duurt.

Kunnen jullie bestaande logica overzetten?

Ja. Wij brengen eerst in kaart waar welke berekening staat, en verplaatsen die daarna stap voor stap naar de juiste laag. De uitkomsten worden onderweg vergeleken met de oude situatie, zodat je kunt zien dat er niets verandert behalve de plek.

Waar dit op steunt