You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Consistent Naming Conventions**| Use clear and descriptive names for reports, pages, visuals, measures, and datasets. | Instead of generic names like `Report1`, prefer descriptive names such as `SalesPerformanceReport`. |
56
-
|**Modular Report Design**| Organize your reports by separating key performance indicators (KPIs), detailed analysis, and context. | Design separate pages for overviews, analytics details, and contextual information as your audience drills down. |
|**Consistent Naming Conventions**| Use clear and descriptive names for reports, pages, visuals, measures, and datasets. | Instead of generic names like `Report1`, prefer descriptive names such as `SalesPerformanceReport`. |
56
+
|**Modular Report Design**| Organize your reports by separating key performance indicators (KPIs), detailed analysis, and context. | Design separate pages for overviews, analytics details, and contextual information as your audience drills down. |
57
57
|**Visual Consistency**| Apply a uniform theme and layout using Power BI themes to maintain brand consistency and readability. | Follow [Tips for designing a great Power BI dashboard](https://learn.microsoft.com/en-us/power-bi/create-reports/service-dashboards-design-tips) for layout and visual emphasis best practices. |
58
-
|**Annotations and Tooltips**| Document complex visual logic and calculations via in-report annotations and dynamic tooltips. | Include tooltips that explain data sources or DAX logic to enhance report understandability. |
58
+
|**Annotations and Tooltips**| Document complex visual logic and calculations via in-report annotations and dynamic tooltips. | Include tooltips that explain data sources or DAX logic to enhance report understandability. |
59
59
60
60
### Example Report Layout
61
61
@@ -76,20 +76,20 @@ From [Understand star schema and the importance for Power BI](https://learn.micr
76
76
77
77
> Enhance report flexibility by using parameters and dynamic expressions.
|**Power Query Parameters**| Use parameters to dynamically adjust data sources and filter conditions during data ingestion. | Define date range parameters in Power Query to allow reports to automatically update based on user configurations. |
|**Power Query Parameters**| Use parameters to dynamically adjust data sources and filter conditions during data ingestion. | Define date range parameters in Power Query to allow reports to automatically update based on user configurations. |
82
82
|**Dynamic DAX Expressions**| Create DAX measures that change in response to slicer selections or other user inputs. | Implement dynamic calculations using variables in DAX so that measures (like Year-over-Year growth) adjust automatically per user selection. |
83
-
|**Dynamic Drill-throughs**| Build drill-through URLs and links dynamically for a seamless navigation experience. | Concatenate strings and field values in DAX to direct users to detailed reports or external dashboards. |
83
+
|**Dynamic Drill-throughs**| Build drill-through URLs and links dynamically for a seamless navigation experience. | Concatenate strings and field values in DAX to direct users to detailed reports or external dashboards. |
84
84
85
85
## Incremental Data Refresh
86
86
87
87
> Optimize your data refresh process by updating only the data that has changed.
|**Enable Incremental Refresh**| Set up incremental refresh policies to refresh only new or modified data, reducing load time and resource usage. | Use the [Data refresh in Power BI](https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-data) guidelines to configure incremental refresh for large datasets. |
92
-
|**Data Partitioning**| Partition your data by logical segments (e.g., date ranges) to target refresh operations more efficiently. | Partition sales or transaction data by month or quarter so that only the most recent partitions are refreshed during scheduled updates. |
92
+
|**Data Partitioning**| Partition your data by logical segments (e.g., date ranges) to target refresh operations more efficiently. | Partition sales or transaction data by month or quarter so that only the most recent partitions are refreshed during scheduled updates. |
93
93
94
94
> Click to read [Incremental Refresh for Reporting - Overview](./Workloads-Specific/PowerBi/IncrementalRefresh.md)
95
95
@@ -104,10 +104,10 @@ From [Understand star schema and the importance for Power BI](https://learn.micr
104
104
105
105
> Build robust data models and optimize DAX calculations to ensure high performance and maintainability.
|**Star Schema Implementation**| Structure your data using a star schema to improve clarity and query performance.| Separate fact tables (e.g., Sales) from dimension tables (e.g., Date, Customer) as recommended by [Power BI guidance documentation](https://learn.microsoft.com/en-us/power-bi/guidance/). |
110
-
|**Efficient DAX Coding**| Utilize variables and avoid deeply nested functions to streamline DAX calculations.| Replace nested CALCULATE functions with variables: <br/><code>VAR TotalSales = SUM('Sales'[Amount]) RETURN TotalSales</code> to simplify logic and improve performance. |
|**Star Schema Implementation**| Structure your data using a star schema to improve clarity and query performance.| Separate fact tables (e.g., Sales) from dimension tables (e.g., Date, Customer) as recommended by [Power BI guidance documentation](https://learn.microsoft.com/en-us/power-bi/guidance/). |
110
+
|**Efficient DAX Coding**| Utilize variables and avoid deeply nested functions to streamline DAX calculations.| Replace nested CALCULATE functions with variables: <br/><code>VAR TotalSales = SUM('Sales'[Amount]) RETURN TotalSales</code> to simplify logic and improve performance. |
111
111
|**Reduce Cardinality When Possible**| Pre-aggregate data where applicable to reduce the detail in fact tables and improve efficiency. | Aggregate detailed transaction logs to daily totals if high granularity is not necessary, as covered in the [Optimization guide for Power BI](https://learn.microsoft.com/en-us/power-bi/guidance/power-bi-optimization). |
112
112
113
113
## Security and Governance
@@ -116,21 +116,21 @@ From [Understand star schema and the importance for Power BI](https://learn.micr
|**Define RLS in Power BI Desktop**| Use Power BI Desktop to create roles and restrict data at the row level. | Implement RLS by defining roles such as `SalesManager` and applying DAX filters (e.g., `[Region] = USERPRINCIPALNAME()`) as described in [Row-level security (RLS) guidance in Power BI Desktop](https://learn.microsoft.com/en-us/power-bi/guidance/rls-guidance). |
122
-
|**Test RLS Thoroughly**| Validate security settings using the “View as Role” feature before publishing your reports. | Verify RLS filters by simulating different user roles to ensure users can only view allowed data. |
123
-
|**Optimize RLS Implementation**| Apply RLS filters preferably on dimension tables so that filtering propagates efficiently through relationships. | Structure RLS so that filters on the Customer or Region tables automatically restrict the related fact table data.|
|**Define RLS in Power BI Desktop**| Use Power BI Desktop to create roles and restrict data at the row level. | Implement RLS by defining roles such as `SalesManager` and applying DAX filters (e.g., `[Region] = USERPRINCIPALNAME()`) as described in [Row-level security (RLS) guidance in Power BI Desktop](https://learn.microsoft.com/en-us/power-bi/guidance/rls-guidance). |
122
+
|**Test RLS Thoroughly**| Validate security settings using the “View as Role” feature before publishing your reports. | Verify RLS filters by simulating different user roles to ensure users can only view allowed data. |
123
+
|**Optimize RLS Implementation**| Apply RLS filters preferably on dimension tables so that filtering propagates efficiently through relationships. | Structure RLS so that filters on the Customer or Region tables automatically restrict the related fact table data. |
124
124
125
125
## Source Control and Collaboration
126
126
127
127
> Leverage version control systems and collaborative workspaces for efficient report deployment and teamwork.
|**Git-based Version Control**| Use Git repositories (via Azure DevOps or GitHub) to manage and version your Power BI Desktop projects. | Follow the [Azure DevOps build pipeline integration with Power BI Desktop projects](https://learn.microsoft.com/en-us/power-bi/developer/projects/projects-build-pipelines) guidance for setting up continuous integration. |
132
132
|**Collaborative Workspaces**| Configure shared workspaces within the Power BI service for team collaboration and controlled deployment. | Integrate your workspace with Git as described in [Power BI Desktop projects Azure DevOps integration](https://learn.microsoft.com/en-us/power-bi/developer/projects/projects-azdo) to manage team contributions. |
133
-
| **Change Documentation** | Maintain a detailed changelog or README file to document major updates and decision rationales. | Use Git commit messages and an in-repository README to capture changes and ensure transparency across development cycles.
133
+
|**Change Documentation**| Maintain a detailed changelog or README file to document major updates and decision rationales. | Use Git commit messages and an in-repository README to capture changes and ensure transparency across development cycles.|
0 commit comments