Power BI

Principles

Keep Data as "Raw" as Possible (Depth)

Limit (to zero if possible) the number of filters applied to the data source before it is available to a report. This will mean more rows are returned (deep) but will provide more insights into reporting.

Keep Data as Slim as Possible (Width)

Where possible, reduce the number of columns. This will speed up the data collection. If required, create multiple tables and join them via 1:1.

Keep Data as Up-to-date as Required

Not all data needs to be updated every day. Having split the data into datasets, we can schedule the refresh of different data at different times.

Keep Data Separate and Join at the Last Responsible Moment

By using DAX to create a "copy" of the data set table, we can create new joins within the reports meaning that data retrieval is quicker.

Keep Report-specific Logic in Reports

Filters, calculated columns, measures, summary tables, etc., should be created only within the report. This allows for changes to be made quickly and easily and increases the ability to debug a report. If common logic is required, it should be refactored into a data suite (not a data set).

You may need to recreate the measures in the report, so naming the measures should take into account that measures names are distinct even when pulled in from other data suites.

Keep Data in the Best Container for the Data Usage

Source of truth data should not be tampered with.

See also: https://docs.microsoft.com/en-us/power-query/best-practices

Last updated

Was this helpful?