<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Power BI &#8211; DataMartIn</title>
	<atom:link href="https://datamartin.ca/category/power-bi/feed/" rel="self" type="application/rss+xml" />
	<link>https://datamartin.ca</link>
	<description>We Know Data</description>
	<lastBuildDate>Wed, 11 Dec 2024 23:06:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>
	<item>
		<title>Best Practices to Handle Multiple Fact Tables in Power BI</title>
		<link>https://datamartin.ca/2022/12/29/best-practices-to-handle-multiple-fact-tables-in-power-bi/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Dec 2022 15:42:39 +0000</pubDate>
				<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=465</guid>

					<description><![CDATA[Scenario 1: Multiple fact tables thar are not related to each other Solution: Relate every dimension with their respective fact tables. Identify the shared dimensions. Relate them with every fact. Sometimes this model is called constellation schema, where each fact table individually is a perfect star schema design because each one is related with a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Scenario 1: Multiple fact tables thar are not related to each other</strong></p>
<p><strong>Solution: Relate every dimension with their respective fact tables.</strong></p>
<ul>
<li>Identify the shared dimensions.</li>
<li>Relate them with every fact.</li>
</ul>
<p><img decoding="async" class="wp-image-466 aligncenter" src="/wp-content/uploads/2022/09/starschema-300x184.jpg" alt="" width="672" height="412" srcset="https://datamartin.ca/wp-content/uploads/2022/09/starschema-300x184.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/starschema-768x471.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/starschema.jpg 984w" sizes="(max-width: 672px) 100vw, 672px" /></p>
<p>Sometimes this model is called constellation schema, where each fact table individually is a perfect star schema design because each one is related with a dimension.</p>
<p><strong>Advantages</strong></p>
<ul>
<li>Star schemas are easy to read, understand and use.</li>
<li>Best performance.</li>
<li>You can filter both fact tables using the shared dimensions.</li>
</ul>
<p><strong>Disadvantages:</strong></p>
<ul>
<li>As the fact tables are not related to each other if you try to add columns from both tables in the same visual that do not have a shared dimension you will get the following error:</li>
</ul>
<p><img decoding="async" class="wp-image-467 aligncenter" src="/wp-content/uploads/2022/09/relationships-300x111.jpg" alt="" width="425" height="157" srcset="https://datamartin.ca/wp-content/uploads/2022/09/relationships-300x111.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/relationships-768x284.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/relationships.jpg 776w" sizes="(max-width: 425px) 100vw, 425px" /></p>
<p><strong>Bad Practices:</strong></p>
<ul>
<li><strong>Duplicate dimensions in the model</strong>:
<ul>
<li>You will increase the size of your model which could impact the refresh time.</li>
<li>You can’t use the same dimension to filter the data of both tables.</li>
</ul>
</li>
<li><strong>Consolidate the fact tables: </strong>Join fact tables through a union (append in Power Query) will create a huge table that can take a long time to refresh, in addition to a lot of blank values in the unmatched columns.</li>
</ul>
<p><strong> </strong><strong>Scenario 2: Multiple fact tables related to each other with different granularities</strong></p>
<p>Remember that the granularity represents the level of detail in each row of your fact table. In the header/detail models you must be careful to use the correct granularity in your calculations and try to maintain a good performance considering that they are not a perfect star schema.</p>
<p>An example of header/detail models is when you have an order (header) and order details. The order table has an order number, date, a customer, and much more useful information at the order level.  The detail table contains the product, the price, the quantity, and detailed information related to the individual order line.</p>
<p><strong>Solution 1: Flatten the header table into the detail table:</strong> With this solution you will get a denormalized model, where you locate the data from the header table to the detail table increasing the granularity.</p>
<p><strong>Advantages:</strong></p>
<ul>
<li>You will get a perfect star schema that offers all its advantages.</li>
<li>The values will get the correct granularity.</li>
<li>The model will be easier to use because it can be summed and sliced by any dimension.</li>
</ul>
<p><strong>Disadvantages:</strong></p>
<ul>
<li>Increase the data model size.</li>
<li>Categorical values repeated in the denormalized model.</li>
</ul>
<p><strong>Solution 2: Relate the header and detail table</strong></p>
<p>Be careful with this solution because you could get incorrect results due to the granularity differences between both tables. You can use it in the following scenario:</p>
<ul>
<li><u>You need to use columns from the different fact tables in a same visual table.</u></li>
<li>The header detail table had a big number of column and flattening it into the detail table would create a huge table.</li>
<li>You need to make <u>few calculations over the header.</u></li>
<li>The reports just needed to be sliced using common dimensions.</li>
</ul>
<p>Considering these points, apply the following solution:</p>
<ul>
<li>Identify the shared dimensions.</li>
<li>Relate them with every fact to get a star schema model for every fact.</li>
<li>Relate the header and detail table through an inactive relationship:</li>
</ul>
<p><img decoding="async" class="wp-image-468 aligncenter" src="/wp-content/uploads/2022/09/inactiverelationship-300x182.jpg" alt="" width="542" height="329" srcset="https://datamartin.ca/wp-content/uploads/2022/09/inactiverelationship-300x182.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/inactiverelationship.jpg 683w" sizes="(max-width: 542px) 100vw, 542px" /></p>
<ul>
<li>Use a Many to one Cardinality and a “Both” cross filter direction:</li>
</ul>
<p><img decoding="async" class="wp-image-469 aligncenter" src="/wp-content/uploads/2022/09/both-cross-filter-direction-300x75.jpg" alt="" width="640" height="160" srcset="https://datamartin.ca/wp-content/uploads/2022/09/both-cross-filter-direction-300x75.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/both-cross-filter-direction-1024x256.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/both-cross-filter-direction-768x192.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/both-cross-filter-direction.jpg 1263w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Finally, to summarize or bring the columns from the header table, use the USERELATIONSHIP DAX formula:</li>
</ul>
<p>&nbsp;</p>
<p>Contract Amount =<br />
CALCULATE (<br />
SUM ( &#8216;Fact Header'[Contract Amount] ),<br />
USERELATIONSHIP ( &#8216;Fact Detail'[WIP PK], &#8216;Fact Header'[PK] )<br />
)</p>
<p>In this solution, linking the header and the detail table breaks the rules of the star schema because both tables act as a dimension and a fact table at the same time.</p>
<p>It’s a dimension when you need to slice the detail and it’s a fact table when you summarize values at the header granularity.</p>
<p>So, you will get a snowflake when the header table acts as dimension, although you should avoid it, sometimes as in this specific scenario could be a good solution to representing the data.</p>
<p><strong>Advantages:</strong></p>
<ul>
<li>Avoid increase the size the data model having fact tables separated.</li>
<li>You can use the star schemas to create reports that don’t need to include in a same visual, columns from different fact tables</li>
</ul>
<p><strong>Disadvantages:</strong></p>
<ul>
<li>This solution only works if you slice the data using the common dimensions, because otherwise you will get incorrect results due to the granularity differences between both tables.</li>
<li>Possible performance degradation.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What are the DMVs and how you can use them?</title>
		<link>https://datamartin.ca/2022/09/30/what-are-the-dmvs-and-how-you-can-use-them/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Fri, 30 Sep 2022 16:27:12 +0000</pubDate>
				<category><![CDATA[Analysis Services]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[Tabular Models]]></category>
		<category><![CDATA[DMV]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=517</guid>

					<description><![CDATA[The DMVs are queries that allow you to retrieve valuable metadata information about your data model, server operations, and server health. What are the DMVs The DMVs queries are an interface to schema rowsets based on SQL and use a SELECT statement and the $System schema with an XML/A schema rowset, however, they do not support the full syntax of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The DMVs are queries that allow you to retrieve valuable metadata information about your data model, server operations, and server health.</p>
<p><strong>What are the DMVs</strong></p>
<p>The DMVs queries are an interface to schema rowsets based on SQL and use a SELECT statement and the $System schema with an XML/A schema rowset, however, they do not support the full syntax of a SELECT statement as: JOIN, GROUP BY, LIKE, CAST, and CONVERT.</p>
<p>Apply to: SQL Server Analysis Services, Azure Analysis Services, Power BI Desktop and Power BI Premium</p>
<p>Example of a DMV query:</p>
<p>SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY</p>
<p>WHERE OBJECT_TYPE = &#8216;MEASURE&#8217;</p>
<p>ORDER BY TABLE ASC</p>
<p>For more information visit the official documentation: <a href="https://docs.microsoft.com/en-us/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=asallproducts-allversions">https://docs.microsoft.com/en-us/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=asallproducts-allversions</a></p>
<h3><strong>What are they for?</strong></h3>
<ul>
<li>The DMVs provide information about the active sessions and connections, objects that consume the most CPU or memory at a specific point in time, such as:</li>
</ul>
<table style="border-collapse: collapse;width: 100%" border="1">
<tbody>
<tr>
<td style="width: 24.6792%;text-align: center" width="228"><strong>DMV</strong></td>
<td style="width: 75.2221%;text-align: center" width="396"><strong>Description</strong></td>
</tr>
<tr>
<td style="width: 24.6792%" width="228">$system.discover_commands</td>
<td style="width: 75.2221%" width="396">Provides resource usage and activity information about the currently executing or last executed commands in the opened connections on the server.</td>
</tr>
<tr>
<td style="width: 24.6792%" width="228">$system.discover_sessions</td>
<td style="width: 75.2221%" width="396">This query reports on active sessions, including session user and duration.</td>
</tr>
<tr>
<td style="width: 24.6792%" width="228">$system.discover_connections</td>
<td style="width: 75.2221%" width="396">List the currently opened connections on the server.</td>
</tr>
<tr>
<td style="width: 24.6792%" width="228">$system.discover_memoryusage</td>
<td style="width: 75.2221%" width="396">Lists all memory consumption by object. Most information here: <a href="https://www.kasperonbi.com/new-ssas-memory-usage-report-using-power-bi/">https://www.kasperonbi.com/new-ssas-memory-usage-report-using-power-bi/</a></td>
</tr>
</tbody>
</table>
<ul>
<li>To document your Power BI or SSAS data model, the main queries DMVs available for model documentation are:</li>
</ul>
<ul>
<li style="list-style-type: none">
<ul style="list-style-type: circle">
<li><strong>TMSCHEMA_TABLES:</strong> List the Column objects in each table.</li>
<li><strong>TMSCHEMA_COLUMNS: </strong>List the Columns objects in each table.</li>
<li><strong>TMSCHEMA_MEASURES: </strong>List the Measure objects in each table.</li>
<li><strong>TMSCHEMA_RELATIONSHIPS:</strong> List the Relationship objects in the model.</li>
<li><strong>TMSCHEMA_ROLES:</strong> Shows information about the Role objects in the model.</li>
<li><strong>TMSCHEMA_PARTITIONS:</strong> Provides information about the Partition objects in each table.</li>
</ul>
</li>
</ul>
<p>In the past I used to create my own documenters using the DMVs, but I recently discovered the excellent and very complete tool “Model Documenter” created by Marc Lelijveld (MVP).</p>
<p>This tool generates the documentation about your data model in an easy and quick way, you can get more information and download the tool in the page: <a href="https://data-marc.com/model-documenter/">https://data-marc.com/model-documenter/</a></p>
<p><strong> </strong></p>
<p><strong>DISCOVER_CALC_DEPENDENCY</strong></p>
<p>With this DMV you can obtain the list of the dependencies among the objects in your model and extract the DAX expressions. This allows you to have more control over your data models as you can measure the impact of modify or remove any object.</p>
<p>I created the tool <u>“Tabular model cleaner”</u> using this DMV, which helps you to obtain all the dependences of the data model in an efficient and automated way and the usability of the model objects in the reports connected to the Power BI or SSAS Data model.</p>
<p>For more information visit: <u>Tabular model cleaner</u></p>
<p><strong> </strong></p>
<p><strong>How to run the DMVs</strong></p>
<p><strong>1. DAX Studio:</strong> Open the Power BI Dataset that you want to document. Open DAX Studio and choose the “PBI / SSDT Model” data source option, then click on Connect:</p>
<p><img decoding="async" class="wp-image-518 aligncenter" src="/wp-content/uploads/2022/09/dax-300x165.jpg" alt="" width="509" height="280" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-300x165.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-768x421.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax.jpg 964w" sizes="(max-width: 509px) 100vw, 509px" /></p>
<p>If you have Power BI Premium you can connect to the dataset, to do this select the workspace, go to “Workspace settings” and copy the Workspace Connection and paste it into the “Tabular Server” option in the DAX Studio.</p>
<p><img decoding="async" class="wp-image-519 aligncenter" src="/wp-content/uploads/2022/09/workspace-300x273.jpg" alt="" width="497" height="452" srcset="https://datamartin.ca/wp-content/uploads/2022/09/workspace-300x273.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/workspace.jpg 766w" sizes="(max-width: 497px) 100vw, 497px" /></p>
<p>Go to DMV pane and click on the query you want consult:</p>
<p><img decoding="async" class="wp-image-520 aligncenter" src="/wp-content/uploads/2022/09/daxstudio2-290x300.jpg" alt="" width="503" height="520" srcset="https://datamartin.ca/wp-content/uploads/2022/09/daxstudio2-290x300.jpg 290w, https://datamartin.ca/wp-content/uploads/2022/09/daxstudio2.jpg 690w" sizes="(max-width: 503px) 100vw, 503px" /></p>
<p><strong>2. From Power BI Desktop: </strong>You can run DMVs queries from DAX Studio but that will return you a table with the data, you should connect to the DMVs using Power BI, to view and analyze the information more easily.</p>
<p>&#8211; Open Power BI Desktop.</p>
<p>&#8211; Choose the “SQL Server Analysis Services database” source.</p>
<p>&#8211; Include the Server and Database.</p>
<p><img decoding="async" class="wp-image-521 aligncenter" src="/wp-content/uploads/2022/09/ssas-300x204.jpg" alt="" width="728" height="495" srcset="https://datamartin.ca/wp-content/uploads/2022/09/ssas-300x204.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/ssas.jpg 749w" sizes="(max-width: 728px) 100vw, 728px" /></p>
<p>Consider if you are connected to a local data model, the database name will change every time you open the Power BI Desktop file, so you will have to edit the connection parameter when you need to refresh the data.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Step-by-step instructions to configure Incremental refresh</title>
		<link>https://datamartin.ca/2022/09/29/step-by-step-instructions-to-configure-incremental-refresh/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 21:06:15 +0000</pubDate>
				<category><![CDATA[Incremental Refresh]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=504</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<div  data-mk-stretch-content="true" class="wpb_row vc_row vc_row-fluid jupiter-donut- mk-fullwidth-false  attched-false     js-master-row  mk-grid">
				
<div class="vc_col-sm-12 wpb_column column_container  jupiter-donut- _ jupiter-donut-height-full">
	
<div id="text-block-2" class="mk-text-block  jupiter-donut- ">

	
	<p>In this article, I explain how to set up an incremental refresh in Power BI, the benefits of apply this policy in your data models what are the requirements for it and the important considerations you have to consider.</p>
<h1><strong>Step-by-step instructions to configure Incremental refresh </strong></h1>
<p>Incremental refresh policies are defined in Power BI Desktop to help you to filter large datasets by using Power Query date/time parameters and to dynamically partition the data into ranges once published to the Power BI service.</p>
<p>Incremental refresh is supported for Power BI Premium, Premium per user, Power BI Pro, and Power BI Embedded datasets. But the real-time DirectQuery partition is only supported for datasets in Premium capacities.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li>Faster time refresh as is not necessary to refresh the entire dataset.</li>
<li>Lower consumption of memory and other resources in both Power BI and data source systems because incremental refresh optimizes refresh operations at the partition level in the dataset.</li>
<li>Reduces the amount of unnecessary historical data stored in your dataset.</li>
<li>Minimize network problems because the queries to source data   return quickly the query output.</li>
<li>Able to work with large data models in Power BI Desktop without being limited by the memory resources available on your desktop computer.</li>
</ul>
<p><strong>Requirements to Configure Incremental Refresh</strong><strong>:</strong></p>
<ul>
<li>The column used to filter the table must be a date/time or <a href="https://docs.microsoft.com/en-us/power-bi/connect-data/incremental-refresh-configure#convert-datetime-to-integer" data-anchor="#convert-datetime-to-integer"><u>integer data type</u></a>.</li>
<li>To the incremental refresh works the data source should support <u>query folding</u> because the partition filters must be pushed to the source system when queries are submitted for refresh operations. Otherwise, Power BI will show the following warning:</li>
</ul>
<p><img decoding="async" class="wp-image-505 aligncenter" src="/wp-content/uploads/2022/09/screenshot_1-300x65.jpg" alt="" width="586" height="127" srcset="https://datamartin.ca/wp-content/uploads/2022/09/screenshot_1-300x65.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/screenshot_1-768x168.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/screenshot_1.jpg 981w" sizes="(max-width: 586px) 100vw, 586px" /></p>
<p><strong>Steps</strong></p>
<ol>
<li><strong>Create the RangeStart and RangeEnd parameters:</strong> These are used to filter the number of rows initially loaded into the Power BI Desktop model that have a date/time within the specified period.</li>
</ol>
<p>In the Power Query Editor, select <strong>Manage Parameters</strong>:</p>
<p><img decoding="async" class="wp-image-511 aligncenter" src="/wp-content/uploads/2022/09/manage-param-copy-274x300.jpg" alt="" width="667" height="730" srcset="https://datamartin.ca/wp-content/uploads/2022/09/manage-param-copy-274x300.jpg 274w, https://datamartin.ca/wp-content/uploads/2022/09/manage-param-copy.jpg 521w" sizes="(max-width: 667px) 100vw, 667px" /></p>
<p>Create RangeEnd Parameter:</p>
<ul>
<li>In <strong>Name</strong> type RangeEnd (case sentitive).</li>
<li>Check as <strong>Required</strong></li>
<li>In <strong>Type</strong>, select Date/Time</li>
<li>In <strong>Current Value</strong>enter a end date/time value respectively.</li>
</ul>
<p><img decoding="async" class="wp-image-512 aligncenter" src="/wp-content/uploads/2022/09/param2-273x300.jpg" alt="" width="451" height="496" srcset="https://datamartin.ca/wp-content/uploads/2022/09/param2-273x300.jpg 273w, https://datamartin.ca/wp-content/uploads/2022/09/param2.jpg 617w" sizes="(max-width: 451px) 100vw, 451px" /></p>
<p><strong>Note:</strong> When the dataset is published the parameter values are overridden automatically by the Power BI service for each partition. There&#8217;s no need to set them in dataset settings in the service.</p>
<ol>
<li><strong>Filter the data using RangeStart and RangeEnd parameters. </strong>In Power Query Editor, Selecting the <strong>Custom Filter</strong>menu option for the date column you want to filter on:</li>
</ol>
<p><img decoding="async" class="wp-image-506 aligncenter" src="/wp-content/uploads/2022/09/filter-copy-247x300.jpg" alt="" width="409" height="497" srcset="https://datamartin.ca/wp-content/uploads/2022/09/filter-copy-247x300.jpg 247w, https://datamartin.ca/wp-content/uploads/2022/09/filter-copy.jpg 550w" sizes="(max-width: 409px) 100vw, 409px" /></p>
<p>In the first condition select is <strong>after</strong> or <strong>is after or equal to</strong>, select Parameter:</p>
<p><img decoding="async" class="wp-image-507 aligncenter" src="/wp-content/uploads/2022/09/filter-rows-copy-300x133.jpg" alt="" width="471" height="209" srcset="https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-copy-300x133.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-copy-1024x454.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-copy-768x341.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-copy.jpg 1071w" sizes="(max-width: 471px) 100vw, 471px" /></p>
<p>In the second condition, select <strong>is before</strong> and and then select <strong>RangeEnd:</strong></p>
<p><img decoding="async" class="wp-image-508 aligncenter" src="/wp-content/uploads/2022/09/filter-rows-2-copy-300x135.jpg" alt="" width="567" height="255" srcset="https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-2-copy-300x135.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-2-copy-1024x460.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-2-copy-768x345.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/filter-rows-2-copy.jpg 1039w" sizes="(max-width: 567px) 100vw, 567px" /></p>
<p>Important:</p>
<ul>
<li>If you selected <strong>is after</strong>in the first condition, then select <strong>is before or equal to</strong></li>
<li>If you selected <strong>is after or equal to</strong>in the first condition, then select <strong>is before</strong> for the second one.</li>
</ul>
<p>Other filter combinations may result in double counting of rows.</p>
<p>Click ok to close, and then click Close &amp; Apply.</p>
<h3><strong>3. </strong>Define the Incremental refresh policy: In data view, right click on the table and then click on “Incremental Refresh”:</h3>
<p><img decoding="async" class="wp-image-509 aligncenter" src="/wp-content/uploads/2022/09/increm-refresh-copy-210x300.jpg" alt="" width="448" height="640" srcset="https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-copy-210x300.jpg 210w, https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-copy.jpg 461w" sizes="(max-width: 448px) 100vw, 448px" /></p>
<p><strong>4. Specify required settings:</strong></p>
<p><img decoding="async" class="wp-image-510 aligncenter" src="/wp-content/uploads/2022/09/increm-refresh-post-copy-300x199.jpg" alt="" width="608" height="403" /></p>
<p>Review your settings and then click <strong>Apply</strong>. Source data is not loaded with this step.</p>
<p><strong>5. Save and publish to the service:</strong> Once the above steps have been completed, save your model, and publish it to the service.</p>
<p>If your dataset is going to be large, be sure to enable <a href="https://docs.microsoft.com/en-us/power-bi/enterprise/service-premium-large-models#enable-large-datasets" data-anchor="#enable-large-datasets">Large dataset storage</a> format before to invoking the first refresh in the service.</p>
<p><strong>6. Refresh dataset:</strong> You can now refresh the model. The first refresh may take longer to import the historical data. Following refreshes will be much faster because only data for the period specified in the refresh policy setting will be refreshed.</p>
<p><strong>Important considerations</strong></p>
<p>&#8211; Filter date column updates: In case of a deletion in the historical range and not the incremental range it will not be detected. This could cause data refresh failures due to partition-key conflicts.</p>
<p>&#8211; Refresh policies are defined in Power BI Desktop, and they are applied by refresh operations in the service.</p>
<p>&#8211; Be careful when you make changes in the original Power BI files because if you republish it, you could remove any of the existing partitions. In this case you must deploy only the metadata using tools as ALM Toolkit or Tabular by using Tabular Model Scripting Language (TMSL). Check: Metadata-only deployment using ALM Toolkit. Apply to Power BI premium.</p>
<p>&#8211; Once a PBIX file with an incremental-refresh policy is published in Power BI service, you cannot download the dataset back and open it in Power BI Desktop.</p>

	<div class="clearboth"></div>
</div>

</div>
	</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Metadata-only deployment using ALM Toolkit</title>
		<link>https://datamartin.ca/2022/09/29/metadata-only-deployment-using-alm-toolkit/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 14:55:53 +0000</pubDate>
				<category><![CDATA[ALM Toolkit]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Deployment]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=483</guid>

					<description><![CDATA[ALM Toolkit is a free and open source tool that facilitates the deployment of Microsoft Power BI datasets, detects differences between source and target datasets, checking for changes to be deployed to help ensure the integrity of the target model. For datasets with incremental refresh policy applied, you must avoid publishing and replacing them with [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>ALM Toolkit is a free and open source tool that facilitates the deployment of Microsoft Power BI datasets, detects differences between source and target datasets, checking for changes to be deployed to help ensure the integrity of the target model.</p>
<p>For datasets with incremental refresh policy applied, you must avoid publishing and replacing them with a version of a PBIX file from Power BI Desktop, because you will have to refresh all the historical data which could take hours and result in the system’s downtime for users.</p>
<p>Instead, it&#8217;s better to perform a metadata-only deployment using the ALM Toolkit tool which is an open-source schema compare tool for Power BI datasets. You can download it at: <a href="http://alm-toolkit.com/">http://alm-toolkit.com/</a></p>
<p>This allows the deployment of new objects without losing historical data. For example, if you have added a few measures, you can deploy only the new measures without needing to refresh the data, saving a lot of time.</p>
<p>To perform a metadata only deployment:</p>
<ol>
<li>Select the running Power BI Desktop instance as the source, and the existing dataset in the service as the target:</li>
</ol>
<p><img decoding="async" class="wp-image-485 aligncenter" src="/wp-content/uploads/2022/09/source-tatget-300x295.jpg" alt="" width="584" height="574" srcset="https://datamartin.ca/wp-content/uploads/2022/09/source-tatget-300x295.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/source-tatget.jpg 601w" sizes="(max-width: 584px) 100vw, 584px" /></p>
<p>Both Source and Target you have the following options to connect to your datasets:</p>
<p><strong>&#8211; Dataset:</strong> You have to indicate the workspace connection URL, to get it in workspace go to <strong>Settings &gt; Premium &gt; Workspace Connection</strong>, select <strong>Copy.</strong></p>
<p><img decoding="async" class="wp-image-486 aligncenter" src="/wp-content/uploads/2022/09/settings-278x300.jpg" alt="" width="584" height="630" srcset="https://datamartin.ca/wp-content/uploads/2022/09/settings-278x300.jpg 278w, https://datamartin.ca/wp-content/uploads/2022/09/settings.jpg 657w" sizes="(max-width: 584px) 100vw, 584px" /></p>
<ul>
<li><strong>Power BI Desktop: The</strong> tool scans open Power BI files and allows you to select the file you want to use.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li><strong>File:</strong> You can select a file from your computer.</li>
</ul>
<p>2. To get only the objects with differences, go to Home &gt; Select Actions &gt; Hide Skip Objects with Same Definition:</p>
<p><img decoding="async" class="wp-image-487 aligncenter" src="/wp-content/uploads/2022/09/hide-300x175.jpg" alt="" width="674" height="393" srcset="https://datamartin.ca/wp-content/uploads/2022/09/hide-300x175.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/hide-768x448.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/hide.jpg 1021w" sizes="(max-width: 674px) 100vw, 674px" /></p>
<p>In this case the difference is that the “Test Measure” is missed in the target:</p>
<p><img decoding="async" class="wp-image-488 aligncenter" src="/wp-content/uploads/2022/09/target-300x119.jpg" alt="" width="724" height="287" srcset="https://datamartin.ca/wp-content/uploads/2022/09/target-300x119.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/target-768x306.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/target.jpg 1002w" sizes="(max-width: 724px) 100vw, 724px" /></p>
<p>You have the option to create it or select skip to don’t create it.</p>
<p>3. Finally click on “Validate Selection” to ensure the integrity of the target model and then click on “Update”:</p>
<p><img decoding="async" class="wp-image-489 aligncenter" src="/wp-content/uploads/2022/09/update-300x86.jpg" alt="" width="631" height="181" srcset="https://datamartin.ca/wp-content/uploads/2022/09/update-300x86.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/update-768x221.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/update.jpg 1000w" sizes="(max-width: 631px) 100vw, 631px" /></p>
<p>4. If the deployment was successful, the following screen will be displayed:</p>
<p><img decoding="async" class="wp-image-490 aligncenter" src="/wp-content/uploads/2022/09/deploy-275x300.jpg" alt="" width="739" height="806" srcset="https://datamartin.ca/wp-content/uploads/2022/09/deploy-275x300.jpg 275w, https://datamartin.ca/wp-content/uploads/2022/09/deploy.jpg 626w" sizes="(max-width: 739px) 100vw, 739px" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Essential checklist to keep your Power BI Solutions optimized. Part IV. Visualization Good Practices</title>
		<link>https://datamartin.ca/2022/09/29/essential-checklist-to-keep-your-power-bi-solutions-optimized-part-iv-visualization-good-practices/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 14:50:14 +0000</pubDate>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Data Visualization]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=472</guid>

					<description><![CDATA[This last article includes a list of best practices for data visualization. &#8211; Use filters in your visualizations to reduce the amount of data that display: The more data a visual must display, the slower it will load, so apply filters in the Filters pane, or use Top N, to reduce the number of items [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This last article includes a list of best practices for data visualization.</p>
<p><strong>&#8211; Use filters in your visualizations to reduce the amount of data that display: </strong>The more data a visual must display, the slower it will load, so apply filters in the Filters pane, or use Top N, to reduce the number of items displayed.</p>
<p>So, if your report is connected to a large data model and you do not apply any filtering, all the data will be loaded into memory and decompressed on each update, creating a huge memory demand.</p>
<p><img decoding="async" class="wp-image-473 aligncenter" src="/wp-content/uploads/2022/09/top10-300x96.jpg" alt="" width="697" height="223" srcset="https://datamartin.ca/wp-content/uploads/2022/09/top10-300x96.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/top10-768x247.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/top10.jpg 962w" sizes="(max-width: 697px) 100vw, 697px" /></p>
<p><strong>&#8211; Only include the necessary number of visuals in your report: </strong>This will decrease the number of calculations that Power BI is performing when rendering your report. For example, you should use a multi-row card instead of using multiple single cards.</p>
<p><img decoding="async" class="wp-image-474 aligncenter" src="/wp-content/uploads/2022/09/cards-300x97.jpg" alt="" width="709" height="229" srcset="https://datamartin.ca/wp-content/uploads/2022/09/cards-300x97.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/cards-768x249.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/cards.jpg 878w" sizes="(max-width: 709px) 100vw, 709px" /></p>
<p><strong>&#8211; Limit the use of slicers:</strong> Because they are visualizations, the underlying data will be updated every time the dashboard is refreshed, which could affect the performance.</p>
<p><img decoding="async" class="wp-image-475 aligncenter" src="/wp-content/uploads/2022/09/slicers-300x53.jpg" alt="" width="651" height="115" srcset="https://datamartin.ca/wp-content/uploads/2022/09/slicers-300x53.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/slicers-768x135.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/slicers.jpg 979w" sizes="(max-width: 651px) 100vw, 651px" /></p>
<p><strong>&#8211; Use Microsoft-certified custom visuals: </strong>These have the Microsoft’s guarantee that these visual elements perform at their best, in addition have more options than non-certified ones.<strong> </strong></p>
<p><img decoding="async" class="wp-image-476 aligncenter" src="/wp-content/uploads/2022/09/pbi-certified-visuals-300x280.jpg" alt="" width="653" height="610" srcset="https://datamartin.ca/wp-content/uploads/2022/09/pbi-certified-visuals-300x280.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/pbi-certified-visuals-768x716.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/pbi-certified-visuals.jpg 972w" sizes="(max-width: 653px) 100vw, 653px" /></p>
<p><strong>&#8211; Avoid unnecessary interactions between visuals:</strong> Power BI automatically creates interactions between all the visuals on a page, which require high loading capacity that could slow down the loading of reports.</p>
<p>Therefore, make sure to eliminate the unnecessary interactions that Power BI creates by default.</p>
<p><strong>&#8211; Use <u>Performance Analyzer</u> to Analyze the performance of your report elements: </strong>such as visuals and DAX formulas when users interact with them, and which consume the most resources.</p>
<p><img decoding="async" class="wp-image-477 aligncenter" src="/wp-content/uploads/2022/09/perf-analyzer1-300x112.jpg" alt="" width="753" height="281" srcset="https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-300x112.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1024x382.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-768x286.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1.jpg 1268w" sizes="(max-width: 753px) 100vw, 753px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>✅ Excel Checklist</strong></p>
<p>Download the Excel checklist at the following link: <a href="https://github.com/NuricBI/Checklist">https://github.com/NuricBI/Checklist</a></p>
<p><strong>Conclusions</strong></p>
<p>In this article we reviewed how to improve and analyze the performance of your Power BI solutions in the different development layers:</p>
<p>✔ Data source.</p>
<p>✔ Data model.</p>
<p>✔ DAX.</p>
<p>✔ Data visualization.</p>
<p>You must be careful in each of them, because in whatever could be the cause that affects the final performance of the report.</p>
<p>Keep handy the excel file with the summarized list of best practices and recommended tools to analyze the performance of each phase of your solution.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tools to Analyze the Performance of your Power BI Solution</title>
		<link>https://datamartin.ca/2022/09/29/tools-to-analyze-the-performance-of-your-power-bi-solution/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 14:37:31 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=424</guid>

					<description><![CDATA[In this post I&#8217;ll show you several tools that can help you analyze the performance of your Power BI solutions at every step of the way, some of them are built-in features and others are free and open source. In this checklist you will find the tools you can use at every step of the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In this post I&#8217;ll show you several tools that can help you analyze the performance of your Power BI solutions at every step of the way, some of them are built-in features and others are free and open source.</p>
<p>In this checklist you will find the tools you can use at every step of the way:</p>
<p><strong><img decoding="async" class="wp-image-555 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/portada-300x157.jpg" alt="" width="519" height="272" srcset="https://datamartin.ca/wp-content/uploads/2022/09/portada-300x157.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/portada-768x402.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/portada.jpg 896w" sizes="(max-width: 519px) 100vw, 519px" /></strong></p>
<p><strong>1. DATA SOURCE</strong></p>
<p><strong>Query Diagnostic</strong></p>
<p><strong> </strong>This Power BI Desktop feature will help you understand what happens inside the Power Query when a query is executed, the parts of the query that are being performed locally or remotely, and the slowdowns you may encounter during:</p>
<p>&#8211; Loading and transforming your data.</p>
<p>&#8211; Refreshing your data in Power Query.</p>
<p><strong>Start a Query Diagnostic:</strong></p>
<ul>
<li>Go to the &#8216;Tools&#8217; tab in the Power Query Editor ribbon. You will have the following options Diagnose Step and Start Diagnostics / Stop Diagnostics:</li>
</ul>
<p><strong><img decoding="async" class="wp-image-590 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-300x83.jpg" alt="" width="401" height="111" srcset="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-300x83.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-1024x285.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-768x213.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics.jpg 1083w" sizes="(max-width: 401px) 100vw, 401px" /></strong></p>
<p><strong>Start Diagnostics / Stop Diagnostics</strong> is more used because it provides complete information about each query while <strong>Diagnose Step </strong>analyzes the performance of a specific step without showing you the diagnostic of the other steps of the query.</p>
<ul>
<li>In Power Query Editor, select the query you want to analyze.</li>
<li>Go to Tools in the Home ribbon, click “Start Diagnostics”.</li>
<li>Perform the evaluations you want analyze, as: authoring, refreshing a preview, full refresh, etc.</li>
<li>When you are finished, make sure that you select “Stop Diagnostics”.</li>
</ul>
<p>This generates two new queries with the diagnostics results:</p>
<p><img decoding="async" class=" wp-image-615 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-1-300x79.jpg" alt="" width="365" height="96" srcset="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-1-300x79.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-1-768x202.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-1.jpg 771w" sizes="(max-width: 365px) 100vw, 365px" /></p>
<p>In my opinion the most important column is the Exclusive Duration, you should convert it to seconds in the Power Query Editor and then summarize it to get an idea of where time is spent and identify how you can optimize the queries in your power bi models:</p>
<p><strong><img decoding="async" class="wp-image-616 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-2-300x151.jpg" alt="" width="515" height="259" srcset="https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-2-300x151.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-2-1024x514.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-2-768x386.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/query-disgnostics-2.jpg 1259w" sizes="(max-width: 515px) 100vw, 515px" /></strong></p>
<p><strong>2. DATA MODEL</strong></p>
<p><strong>DAX Studio</strong></p>
<p>&#8211; Launch DAX Studio. Select the model that you want to analyze:</p>
<p><img decoding="async" class="wp-image-518 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-300x165.jpg" alt="" width="385" height="212" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-300x165.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-768x421.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax.jpg 964w" sizes="(max-width: 385px) 100vw, 385px" /></p>
<p>&#8211; Go to the advanced tab and click on “View Metrics”:</p>
<p><img decoding="async" class="wp-image-617 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-1-300x130.jpg" alt="" width="420" height="182" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-1-300x130.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-1.jpg 585w" sizes="(max-width: 420px) 100vw, 420px" /></p>
<p>This will show metrics that help you quickly detect the performance issues.</p>
<p><strong>Cardinality:</strong> This is the number of unique values in a column. High cardinality columns can be particularly expensive, especially when have a string or date/time format.</p>
<p><img decoding="async" class="wp-image-602 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-300x95.jpg" alt="" width="540" height="171" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-300x95.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-1024x326.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-768x244.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2.jpg 1261w" sizes="(max-width: 540px) 100vw, 540px" /></p>
<p>If possible, remove columns such as GUID and timestamp from a SQL Server table from your model. In addition, I recommend splitting Datetime columns into two columns, one for date and one for time.</p>
<p><strong>Size information:</strong> The other important thing you can see is the space that is taking up each table and column of the model, for example:</p>
<p><img decoding="async" class="wp-image-618 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio3-300x112.jpg" alt="" width="584" height="218" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio3-300x112.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio3-1024x381.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio3-768x285.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio3.jpg 1259w" sizes="(max-width: 584px) 100vw, 584px" /></p>
<p>In this case, the Work Order table is taking up almost 20% of the entire model, which helps you analyze where your model consumes the most memory and choose which columns to remove to optimize it.</p>
<p><strong>Summary information:</strong> In the Summary tab you can see the total size of this model, in this example the analyzed PBIX is consuming 198.27 MB. You can also see the number of tables and columns:</p>
<p><strong><img decoding="async" class="wp-image-619 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio4-300x112.jpg" alt="" width="431" height="161" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio4-300x112.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio4-768x286.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio4.jpg 923w" sizes="(max-width: 431px) 100vw, 431px" /></strong></p>
<p><strong>Bravo for Power BI</strong></p>
<p>This is a free open-source tool for users who do not need a high level of complexity. In case you need more advanced functionalities you should use other more advanced tools such as DAX Studio and Tabular Editor.</p>
<p>After downloading Bravo, go to the “Analyze Model” and connect to the data model:</p>
<p><img decoding="async" class="wp-image-620 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/bravo-300x157.jpg" alt="" width="506" height="265" srcset="https://datamartin.ca/wp-content/uploads/2022/09/bravo-300x157.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/bravo-1024x534.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/bravo-768x401.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/bravo.jpg 1263w" sizes="(max-width: 506px) 100vw, 506px" /></p>
<p>You will get information about the tables and columns in your model that are consuming the most memory:</p>
<p><img decoding="async" class="wp-image-621 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/bravo1-300x166.jpg" alt="" width="574" height="318" srcset="https://datamartin.ca/wp-content/uploads/2022/09/bravo1-300x166.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/bravo1-1024x566.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/bravo1-768x425.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/bravo1.jpg 1262w" sizes="(max-width: 574px) 100vw, 574px" /></p>
<p>In addition, you can drill down to see more detail for any table:</p>
<p><img decoding="async" class="wp-image-622 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/bravo2-300x168.jpg" alt="" width="555" height="311" srcset="https://datamartin.ca/wp-content/uploads/2022/09/bravo2-300x168.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/bravo2-1024x572.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/bravo2-768x429.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/bravo2.jpg 1267w" sizes="(max-width: 555px) 100vw, 555px" /></p>
<p>To analyze the unreferenced columns, I recommend my tool <strong><u>Tabular Editor,</u></strong> which can help you identify the reports connected to the dataset where these columns are used.</p>
<p><strong>3. DAX FORMULAS / VISUALIZATION</strong></p>
<p><strong>Performance Analyzer: </strong>To Analyze the performance of your report elements, such as visuals and DAX formulas when users interact with them, and which consume the most resources.</p>
<p>In the View ribbon you can find the Performance Analyzer. By opening this pane and clicking Record, this will show you how fast your report renders when performing different functions in your report.</p>
<p><img decoding="async" class="wp-image-623 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer-300x107.jpg" alt="" width="339" height="121" srcset="https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer-300x107.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer.jpg 695w" sizes="(max-width: 339px) 100vw, 339px" /></p>
<p>You can review the results of your performance test in <strong>the Performance analyzer</strong> pane. To review the tasks in order of duration, longest to shortest, right-click the <strong>Sort</strong> icon next to the <strong>Duration (ms)</strong> column header:</p>
<p><img decoding="async" class="wp-image-624 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1-300x112.jpg" alt="" width="533" height="199" srcset="https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1-300x112.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1-1024x382.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1-768x286.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/perf-analyzer1-1.jpg 1268w" sizes="(max-width: 533px) 100vw, 533px" /></p>
<p>The log information for each visual shows the time it has taken (duration) to complete the following categories of tasks, which will help you detect what is causing performance delays so you can work on improving those sections.</p>
<ul>
<li><strong>DAX query</strong>&#8211; Time taken by the to send the query and the time it took Analysis Services to return the results.</li>
<li><strong>Visual display</strong>– Rendering time on the screen, including the time required to retrieve web images or geocoding.</li>
<li><strong>Other</strong>&#8211; The time it took the visual to prepare queries, wait for other visuals to complete, or perform other background processing tasks.</li>
</ul>
<p>The only real way to reduce the long duration is to optimize DAX queries for other visuals or reduce the number of visuals in the report.</p>
<p><strong>4. DATA MODEL / DAX FORMULAS / VISUALIZATION</strong></p>
<p><a href="https://docs.tabulareditor.com/Best-Practice-Analyzer.html"><strong>Best Practice Analyzer</strong></a><strong> within </strong><a href="https://tabulareditor.com/"><strong>Tabular Editor</strong></a><strong>.</strong></p>
<p>Best Practice Analyzer is an external tool that scans your data model and easily validates if your data model complies with all best practices at formatting level, performance, naming conventions and DAX expressions.</p>
<p>I analyzed a test data model getting the following information which shows the potential issues and improvements that can be made in the data model in each category:</p>
<p><img decoding="async" class="wp-image-625 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/tabular-editor-245x300.jpg" alt="" width="441" height="540" srcset="https://datamartin.ca/wp-content/uploads/2022/09/tabular-editor-245x300.jpg 245w, https://datamartin.ca/wp-content/uploads/2022/09/tabular-editor.jpg 632w" sizes="(max-width: 441px) 100vw, 441px" /></p>
<p>This can help you save a lot of time by avoiding having to validate all these recommendations manually.</p>
<p>In this article 👉 <strong><a href="https://powerbi.microsoft.com/en-us/blog/best-practice-rules-to-improve-your-models-performance/">Best practice rules to improve your model’s performance</a></strong> you can read the rules that analyze which are segmented into categories. Some rules are more aesthetic-oriented while others are more focused on performance optimization.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Essential checklist to keep your Power BI Solutions optimized. Part II. Data model good practices</title>
		<link>https://datamartin.ca/2022/09/29/essential-checklist-to-keep-your-power-bi-solutions-optimized-part-ii-data-model-good-practices/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 14:37:23 +0000</pubDate>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Tabular Models]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=420</guid>

					<description><![CDATA[This second article is focused on best practices for designing your data model, optimizing CPU, RAM, and workspace capacity consumption by minimizing memory usage. Benefits. Reduce space and processing time. Faster refresh times. Lower latency reports. Reduce the time development. More user-friendly data models because the user will not navigate through a bunch of useless [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This second article is focused on best practices for designing your data model, optimizing CPU, RAM, and workspace capacity consumption by minimizing memory usage.</p>
<p><strong>Benefits</strong>.</p>
<ul>
<li>Reduce space and processing time.</li>
<li>Faster refresh times.</li>
<li>Lower latency reports.</li>
<li>Reduce the time development.</li>
<li>More user-friendly data models because the user will not navigate through a bunch of useless objects that are not needed to build the reports.</li>
</ul>
<p><strong>&#8211; Choose the appropriate dataset mode for your solution:</strong> You can use Import, DirectQuery, and Composite model.</p>
<p>There are a variety of factors to consider when deciding which method to use, so I recommend that you review the advantages, disadvantages, and limitations of each in the <a href="https://docs.microsoft.com/en-us/power-bi/connect-data/service-dataset-modes-understand">Microsoft documentation</a> so that you can select the correct one.</p>
<p><strong>&#8211; Build your data model using a <u>star schema</u></strong> architecture avoiding snowflake schema:</p>
<p><strong>Benefits</strong></p>
<ul>
<li>More user friendly.</li>
<li>The DAX formulas are simpler.</li>
<li>The time refreshes are faster.</li>
<li>Reduces redundant data</li>
</ul>
<p>Star schema are specialized data models used when designing data warehouses, the tables are classified as either dimension or fact. In this schema the fact sits in the middle and the dimensions are all around related directly to the fact which gives it the shape of a star.</p>
<p><strong><img decoding="async" class="wp-image-592 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/star-schema-300x221.jpg" alt="" width="624" height="460" srcset="https://datamartin.ca/wp-content/uploads/2022/09/star-schema-300x221.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/star-schema.jpg 756w" sizes="(max-width: 624px) 100vw, 624px" /></strong></p>
<p><strong>&#8211; Only include the essential columns </strong><strong>to create the reports:</strong> You do not want a report larger than necessary. However, removing the unnecessary columns could be too complicated when you have a lot of reports connected to the dataset because they can break.</p>
<p>I created a tool to help you to clean up your data models easily and quickly, you can download it for free, visit the link: <u><a href="https://datamartin.ca/2022/09/18/data-model-cleaner-for-power-bi-and-analysis-services-ssas/">Tabular model cleane</a>r</u>.</p>
<p><strong><img decoding="async" class="wp-image-593 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/used-unused-objects-300x105.jpg" alt="" width="626" height="219" srcset="https://datamartin.ca/wp-content/uploads/2022/09/used-unused-objects-300x105.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/used-unused-objects-1024x359.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/used-unused-objects-768x270.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/used-unused-objects.jpg 1114w" sizes="(max-width: 626px) 100vw, 626px" /></strong></p>
<p><strong>&#8211; Load in your data model the necessary tables</strong>: Probably you need to import a table in Power Query to make intermediate calculations but if you won&#8217;t use this table in your reports remember unchecking the &#8220;enable load&#8221; option in Power Query:</p>
<p><strong><img decoding="async" class="wp-image-594 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/load-300x266.jpg" alt="" width="287" height="255" srcset="https://datamartin.ca/wp-content/uploads/2022/09/load-300x266.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/load.jpg 312w" sizes="(max-width: 287px) 100vw, 287px" /></strong></p>
<p><strong>&#8211; Apply an <a href="https://datamartin.ca/2022/09/29/step-by-step-instructions-to-configure-incremental-refresh/"><u>Incremental Refresh</u></a> policy to reduce the amount of data: </strong>Power BI desktop is limited for your computer resources, if you are working with very large models will be necessary configure the Incremental refresh.</p>
<p><strong>Benefits</strong></p>
<ul>
<li>Optimize your time development because you work over a smaller data model.</li>
<li>Shorter data refresh time.</li>
<li>Lower resource consumption in the Power BI Service.</li>
</ul>
<p>Check our article: <a href="https://datamartin.ca/2022/09/29/step-by-step-instructions-to-configure-incremental-refresh/"><u>Configure an Incremental Refresh Policy in seven steps</u></a></p>
<p><strong><img decoding="async" class="wp-image-595 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-post-copy-1-300x199.jpg" alt="" width="481" height="319" srcset="https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-post-copy-1-300x199.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-post-copy-1-1024x680.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-post-copy-1-768x510.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/increm-refresh-post-copy-1.jpg 1148w" sizes="(max-width: 481px) 100vw, 481px" /></strong></p>
<p><strong>&#8211; Group by and summarize combined with composite models:</strong> Depending on the level of granularity that you need to handle in your reports you can group your data by month, division, city for example.</p>
<p>In case you have to visualize a detail of the data, you can create a composite model and adding a drill through page that retrieves the detail data from a DirectQuery table.</p>
<p>For more detail check: <a href="https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-composite-models">Composite Models in Power BI Desktop</a></p>
<p><strong>&#8211; Avoid many-to-many relationships: </strong>Most of the time, this can be avoided by creating a bridge table with unique values and one-to-many relationships from the bridge table to the fact tables, thus adopting star schema.</p>
<p><strong><img decoding="async" class="wp-image-596 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/n-to-n-300x141.jpg" alt="" width="530" height="249" srcset="https://datamartin.ca/wp-content/uploads/2022/09/n-to-n-300x141.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/n-to-n-1024x481.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/n-to-n-768x361.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/n-to-n.jpg 1244w" sizes="(max-width: 530px) 100vw, 530px" /></strong></p>
<p><strong>&#8211; Avoid both-directional relationships in your data model:</strong> You need to have a solid data modeling knowledge to measure the impact of this type of relationship in your data model, otherwise this could cause:</p>
<ul>
<li>Unexpected results</li>
<li>Performance problems</li>
</ul>
<p><img decoding="async" class="wp-image-597 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/many-to-many-300x140.jpg" alt="" width="581" height="271" srcset="https://datamartin.ca/wp-content/uploads/2022/09/many-to-many-300x140.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/many-to-many-1024x478.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/many-to-many-768x358.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/many-to-many.jpg 1159w" sizes="(max-width: 581px) 100vw, 581px" /></p>
<p>Instead of creating a bi-directional relationship, try using a measure like the one below to get the value you need:</p>
<p><img decoding="async" class="wp-image-598 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/cross-filter-300x59.jpg" alt="" width="473" height="93" srcset="https://datamartin.ca/wp-content/uploads/2022/09/cross-filter-300x59.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/cross-filter-768x152.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/cross-filter.jpg 803w" sizes="(max-width: 473px) 100vw, 473px" /></p>
<p>&#8211; Add a <strong>date table</strong> to your model and mark it as a date table.</p>
<p><strong><img decoding="async" class="wp-image-599 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/data-table-300x107.jpg" alt="" width="547" height="195" srcset="https://datamartin.ca/wp-content/uploads/2022/09/data-table-300x107.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/data-table-1024x365.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/data-table-768x274.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/data-table-1536x548.jpg 1536w, https://datamartin.ca/wp-content/uploads/2022/09/data-table.jpg 1571w" sizes="(max-width: 547px) 100vw, 547px" /></strong></p>
<p><strong>&#8211; Disable auto date/time option: </strong>This avoids Power BI automatically create a lot of date dimension tables in the background.</p>
<p><strong><img decoding="async" class="wp-image-600 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/data-time-option-300x287.jpg" alt="" width="443" height="424" srcset="https://datamartin.ca/wp-content/uploads/2022/09/data-time-option-300x287.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/data-time-option.jpg 607w" sizes="(max-width: 443px) 100vw, 443px" /></strong></p>
<p><strong>&#8211; Disable the “Autodetect new relationships after data is loaded” option: </strong>Because you could mess up your data model if you do not have solid experience in data modeling.</p>
<p><strong><img decoding="async" class="wp-image-601 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/autodetect-300x287.jpg" alt="" width="400" height="383" srcset="https://datamartin.ca/wp-content/uploads/2022/09/autodetect-300x287.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/autodetect.jpg 594w" sizes="(max-width: 400px) 100vw, 400px" /></strong></p>
<p><strong>&#8211; Remove columns with high cardinality:</strong> High cardinality columns can be particularly expensive. If possible:</p>
<ul>
<li>Remove columns such as GUID and timestamp from a SQL Server table from your model.</li>
<li>Splitting Datetime columns in two columns, one for date and one for time.</li>
</ul>
<p><strong><img decoding="async" class="wp-image-602 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-300x95.jpg" alt="" width="692" height="219" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-300x95.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-1024x326.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2-768x244.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio2.jpg 1261w" sizes="(max-width: 692px) 100vw, 692px" /></strong></p>
<p><strong>&#8211; Select the correct data type: </strong>Don’t use decimal type if you only need the whole number or if your data granularity is at day level don’t use Date/Time data.</p>
<p><strong>&#8211; Create measures instead of Calculated Columns:</strong> Using measures where applicable will help reduce data model size and increase the efficiency of the calculations.</p>
<p><strong> </strong><strong>&#8211; Create custom columns in Power query instead of DAX calculated columns:</strong> The custom columns created in Power Query achieve a better and more efficient compression.</p>
<p><strong>&#8211; Use tools as DAX Studio and Bravo </strong><strong>you to analyze where your model consumes the most memory:</strong> and choose which columns and tables you should remove to optimize it.</p>
<p><img decoding="async" class="size-medium wp-image-603 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/tools-300x123.jpg" alt="" width="300" height="123" srcset="https://datamartin.ca/wp-content/uploads/2022/09/tools-300x123.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/tools.jpg 318w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>&#8211; Use the tool <a href="https://datamartin.ca/2022/09/18/data-model-cleaner-for-power-bi-and-analysis-services-ssas/"><u>Tabular model cleaner</u></a> to analyze the impact in your reports of make changes or removing objects from your data models.</p>
<p><img decoding="async" class="wp-image-397 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/main-picture-300x167.jpg" alt="" width="489" height="272" srcset="https://datamartin.ca/wp-content/uploads/2022/09/main-picture-300x167.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/main-picture-1024x569.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/main-picture-768x427.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/main-picture.jpg 1367w" sizes="(max-width: 489px) 100vw, 489px" /></p>
<p>Click <a href="https://datamartin.ca/2022/09/19/essential-checklist-to-keep-your-power-bi-solutions-optimized-part-iii-optimizing-dax-formulas/"><span style="text-decoration: underline;">here</span></a> for part 3 of this series.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft Power Platform Conference #MPCC2022 &#8211; Day 1 Recap</title>
		<link>https://datamartin.ca/2022/09/27/mpcc2022-day1recap/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Tue, 27 Sep 2022 23:38:10 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=451</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<div  data-mk-stretch-content="true" class="wpb_row vc_row vc_row-fluid jupiter-donut- mk-fullwidth-false  attched-false     js-master-row  mk-grid">
				
<div class="vc_col-sm-12 wpb_column column_container  jupiter-donut- _ jupiter-donut-height-full">
		<div class=" vc_custom_1663800743577">

<div id="text-block-4" class="mk-text-block  jupiter-donut- ">

	
	<h4><span class="TextRun SCXW149972001 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW149972001 BCX0">What a great first day of</span><span class="NormalTextRun SCXW149972001 BCX0"> the</span><span class="NormalTextRun SCXW149972001 BCX0"> Microsoft Power Platform Conference 2022. </span><span class="NormalTextRun SCXW149972001 BCX0">A wonderful day</span><span class="NormalTextRun SCXW149972001 BCX0"> full of great speakers</span><span class="NormalTextRun SCXW149972001 BCX0">! Here’s</span> <span class="NormalTextRun SCXW149972001 BCX0">a brief </span><span class="NormalTextRun SCXW149972001 BCX0">summa</span><span class="NormalTextRun SCXW149972001 BCX0">ry</span><span class="NormalTextRun SCXW149972001 BCX0"> of some of the </span><span class="NormalTextRun SCXW149972001 BCX0">sessions </span><span class="NormalTextRun SCXW149972001 BCX0">I attended:</span></span><span class="EOP SCXW149972001 BCX0" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></h4>
<p><strong>What are Power BI Metrics? &#8211; </strong><span data-contrast="auto">By Treb Gatte</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">In this session Treb talked about the Power BI metrics and how they can be used by the organizations to define and track their most important KPIs that automatically stay in sync with their reporting and analysis solutions to help them drive better decision making.</span></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"><img decoding="async" class="wp-image-499 aligncenter" src="/wp-content/uploads/2022/09/northwind-scorecard-300x201.png" alt="" width="551" height="369" srcset="https://datamartin.ca/wp-content/uploads/2022/09/northwind-scorecard-300x201.png 300w, https://datamartin.ca/wp-content/uploads/2022/09/northwind-scorecard-1024x686.png 1024w, https://datamartin.ca/wp-content/uploads/2022/09/northwind-scorecard-768x515.png 768w, https://datamartin.ca/wp-content/uploads/2022/09/northwind-scorecard.png 1537w" sizes="(max-width: 551px) 100vw, 551px" /> </span></p>
<p><span data-contrast="none">The Power BI metrics </span><span data-contrast="none">help drive a data culture in the organizations, some of the Power BI metrics capabilities are: </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">Automatically setup cascading scorecards with hierarchies</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="none">Link metrics across scorecards and define custom roll-ups</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><span data-contrast="none">Define metrics with categorical values and targets</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:&#091;8226&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">Setup up metrics with multiple milestones and targets</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ul>
<p><span data-contrast="auto">More info: </span><a href="https://learn.microsoft.com/en-us/power-bi/create-reports/service-goals-create"><span data-contrast="none">https://learn.microsoft.com/en-us/power-bi/create-reports/service-goals-create</span></a></p>
<p><strong>The Path to success with Power BI  &#8211; </strong><span data-contrast="auto">By Adam Saxton and Patrick Le Blank</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">In this session they shared the 3 most important aspects you must consider to achieve a successful Power BI Solution</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<ol>
<li data-leveltext="%1." data-font="Segoe UI" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Ensure the query folding is being applied</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="%1." data-font="Segoe UI" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Create star schema data models</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
<li data-leveltext="%1." data-font="Segoe UI" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:&#091;65533,0&#093;,&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Minimize the number of visuals in the report, it means keep it clean and simple</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></li>
</ol>
<p><img decoding="async" class="wp-image-440 aligncenter" src="/wp-content/uploads/2022/09/microsoftteams-image-3-1-300x225.jpg" alt="" width="507" height="380" srcset="https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-3-1-300x225.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-3-1-1024x768.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-3-1-768x576.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-3-1-1536x1152.jpg 1536w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-3-1.jpg 2000w" sizes="(max-width: 507px) 100vw, 507px" /></p>
<p><strong>From insight to Action: Driving a data culture with Power BI &#8211;</strong><span data-contrast="auto">By Kim Manis</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="none">In this session, Tim shared the importance of building a data culture throughout your organization, how Power BI can help empower your employees to make data-driven decisions and talked about the AI capabilities that can bring more insights to the users as: Q&amp;A, Key Driver Analysis, etc. which are </span><span data-contrast="none">automated insights that run behind the scenes, and surfaces insights that need attention.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p><img decoding="async" class="wp-image-443 aligncenter" src="/wp-content/uploads/2022/09/microsoftteams-image-4-300x225.jpg" alt="" width="528" height="396" srcset="https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-4-300x225.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-4-1024x768.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-4-768x576.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-4-1536x1152.jpg 1536w, https://datamartin.ca/wp-content/uploads/2022/09/microsoftteams-image-4.jpg 2000w" sizes="(max-width: 528px) 100vw, 528px" /></p>
<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>

	<div class="clearboth"></div>
</div>

	</div>
</div>
	</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft Power Platform Conference #MPCC2022 &#8211; Day 2 and 3 Recap</title>
		<link>https://datamartin.ca/2022/09/21/mpcc2022-day-2-and-3-recap/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 22:57:11 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[MPPC2022]]></category>
		<category><![CDATA[MPPC22]]></category>
		<category><![CDATA[Power Plarform]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=438</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<div  data-mk-stretch-content="true" class="wpb_row vc_row vc_row-fluid jupiter-donut- mk-fullwidth-false  attched-false     js-master-row  mk-grid">
				
<div class="vc_col-sm-12 wpb_column column_container  jupiter-donut- _ jupiter-donut-height-full">
		<div class=" vc_custom_1664321719850">

<div id="text-block-6" class="mk-text-block  jupiter-donut- ">

	
	<p>Last week was the first Microsoft Power Platform conference with over 150 interesting sessions and 18 workshops, I had the pleasure of meeting new people who share my passion for Power BI, and I met some of the heroes I&#8217;ve been following and learning a lot from like Patrick, Adam and Miri Rodriguez.</p>
<p>Yesterday I was catching up on my to-dos, so today I was able to make time to write a recap of the sessions I attended on the 2nd and 3rd at the Power Platform Conference.</p>
<p><strong>Power BI + Azure Synapse Analytics. All you need to start creating a unified analytics solution</strong></p>
<p>By Adam Saxton and Patrick LeBlanc</p>
<p><img decoding="async" class="wp-image-452 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-1-300x225.jpg" alt="" width="539" height="404" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-1-300x225.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-1-768x576.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-1.jpg 936w" sizes="(max-width: 539px) 100vw, 539px" /></p>
<p>In this session Adam and Patrick shared how the Azure Synapse platform integrates with Power BI, and how ingestion of structured and unstructured data, extract-transform-load (ETL), big data, and data warehousing technologies coexist within a single unified service:</p>
<p><img decoding="async" class="wp-image-453 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-2.jpg-300x165.png" alt="" width="595" height="327" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-2.jpg-300x165.png 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-2.jpg-768x422.png 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-2.jpg.png 936w" sizes="(max-width: 595px) 100vw, 595px" /></p>
<p>They also showed demos about:</p>
<ol>
<li>Data Ingestion and Integration: Here we saw an introduction to logical data warehouses that allow querying disparate data sources without the need to extract, transform and load the data into another data store.</li>
</ol>
<p>This allows organizations to extract information from data sources without the need for additional data warehouses to hold the transformed data.</p>
<ol start="2">
<li>Big Data and Data Warehousing: Here the objective is to design and implement a data model that, despite being complex, is fully optimized, for this the recommendation is to handle:</li>
</ol>
<p>&#8211; Hybrid tables: It combine the performance of VertiPaq in-memory caches with the capabilities of DirectQuery, allowing users to unlock massive datasets for real-time, interactive analysis</p>
<p>&#8211; Aggregations: This is one of the most powerful data modeling features available with Power BI are aggregations because allows store data at a higher level of granularity than the original table which can optionally be stored in a compressed in-memory cache improving the performance</p>
<p>&#8211; Combined storage modes (import, DirectQuery and dual).</p>
<p><img decoding="async" class="wp-image-454 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-3-300x172.jpg" alt="" width="597" height="342" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-3-300x172.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-3-768x441.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-3.jpg 936w" sizes="(max-width: 597px) 100vw, 597px" /></p>
<ol start="3">
<li>Power BI Datamart: It’s a self-service analytics solution that helps bridge the gap between business and IT users providing a simple no-code experience to ingest data from different data sources, transform it using Power Query.</li>
</ol>
<p>Once the data is loaded into a datamart, the user can define relationships, DAX measures, and row-level security rules and it automatically generates a dataset, which can be used right away to create Power BI reports and dashboards.</p>
<p>Power BI datamart and Azure Synapse create a great synergy between enterprise and self-service analytics for example, datamart can be used as a serving layer for subsets of data coming from Azure Synapse</p>
<p>Azure Synapse Community Resources: <a href="https://datamartin-my.sharepoint.com/personal/nuric_datamartin_ca/Documents/aka.ms/SynapseCommunityResources">aka.ms/SynapseCommunityResources</a></p>
<p>&nbsp;</p>
<p><strong>Azure Monitor, Azure Data Explorer and Power BI</strong></p>
<p>By John White and jason Himmelstein</p>
<p>Log Analytics and Application Insights <u>is a storage mechanism for telemetry data</u>. At its core is Azure Data Explorer (ADX) or &#8220;Kusto&#8221;, and the KQL language for analysis, which can also be used independently.</p>
<p><img decoding="async" class="wp-image-455 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-4-300x186.jpg" alt="" width="795" height="493" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-4-300x186.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-4-768x477.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-4.jpg 924w" sizes="(max-width: 795px) 100vw, 795px" /></p>
<p>ADX can connect to Power BI, a business analytics solution that lets you visualize your data and share the results across your organization. The various methods of connection to Power BI allow for interactive analysis of organizational data such as tracking and presentation of trends.</p>
<p>Power BI has a native connector to Azure Data Explorer. The connection process is very intuitive:</p>
<p><img decoding="async" class="wp-image-456 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-5-300x117.jpg" alt="" width="628" height="245" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-5-300x117.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-5-768x299.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-5.jpg 936w" sizes="(max-width: 628px) 100vw, 628px" /></p>
<p>More info here:</p>
<p><a href="https://learn.microsoft.com/en-us/azure/data-explorer/power-bi-connector">https://learn.microsoft.com/en-us/azure/data-explorer/power-bi-connector</a></p>
<p><a href="https://learn.microsoft.com/en-us/azure/data-explorer/">https://learn.microsoft.com/en-us/azure/data-explorer/</a></p>
<p><strong>User Adoption: Creating and Supporting Power BI Champions</strong></p>
<p>By Belinda Allen</p>
<p>It was a very interesting session where Belinda shared experiences and Microsoft Suggested Methodology to help during the adoption process of Power BI in the Organizations.</p>
<p>Successful Power BI adoption involves making effective processes, support, tools, and data available and integrated into regular ongoing patterns of usage for content creators, consumers, and stakeholders in the organization.</p>
<p><img decoding="async" class="wp-image-457 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-6-300x165.jpg" alt="" width="615" height="338" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-6-300x165.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-6-768x423.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-6.jpg 936w" sizes="(max-width: 615px) 100vw, 615px" /></p>
<p>Some of the highlights of this session were:</p>
<p>“Any successful begins by bringing the right team together, so champions are essential to driving awareness, adoption, and education in your organization, they influence and help their colleagues in many ways, including solution development, learning, skills improvement, troubleshooting, and keeping up to date”.</p>
<p>“The resistance is normal in the adoption process for that we need to be anticipated which allows as to be proactive in identifying and managing resistance”.</p>
<p>“A key factor for successfully enabling users in a Power BI community is training as people are worried there will not be sufficient training for new ways of working and this is main reason for the resistance”.</p>
<p>Here there is very complete information about the process of Power BI adoption:</p>
<p><img decoding="async" class="wp-image-458 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-7-293x300.jpg" alt="" width="596" height="610" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-7-293x300.jpg 293w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-7-768x786.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-7.jpg 780w" sizes="(max-width: 596px) 100vw, 596px" /></p>
<ul>
<li><u><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-overview">Overview</a></u></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-maturity-levels">Adoption maturity levels</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-data-culture">Data culture</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-executive-sponsorship">Executive sponsorship</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-content-ownership-and-management">Content ownership and management</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-content-delivery-scope">Content delivery scope</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-center-of-excellence">Center of Excellence</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-governance">Governance</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-mentoring-and-user-enablement">Mentoring and enablement</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-community-of-practice">Community of practice</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-user-support">User support</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-system-oversight">System oversight</a></li>
<li><a href="https://learn.microsoft.com/en-us/power-bi/guidance/powerbi-adoption-roadmap-conclusion">Conclusion and additional resources</a></li>
</ul>
<p><strong>The Future of Storytelling</strong></p>
<p>By Miri Rodriguez</p>
<p>It was one of my favorite sessions, I am passionate about storytelling and I think Miri is a great referent in this fields, in the session she shared practical tools to helps us become a skilled storyteller in this immersive new universe.</p>
<p>Key takeaways:</p>
<p><strong>“Story is 22x more memorable than any other piece of information you will ever share”</strong></p>
<p>“Storytelling is the emotional transfer of information, opinions, assertions, facts, data, ideas, and argument through the introduction of character, plot, and conclusion”.</p>
<p><strong><img decoding="async" class="wp-image-459 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-8-300x162.jpg" alt="" width="639" height="345" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-8-300x162.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-8-768x414.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-8.jpg 936w" sizes="(max-width: 639px) 100vw, 639px" /> </strong></p>
<p><strong>Storytelling Hacks</strong></p>
<ol>
<li>Cross functionally and collectively aligns on WHY you want to the tell the story and which stories you will tell</li>
<li>Let product + data inform your story</li>
<li>Invite your audience to become your main character</li>
<li>Create tension and curiosity for the character</li>
<li>Let the character conclude that need your solution</li>
</ol>
<p><strong>Designs Thinking in Storytelling</strong></p>
<p><img decoding="async" class="wp-image-460 aligncenter" src="/wp-content/uploads/2022/09/day-2-photo-9-300x214.jpg" alt="" width="744" height="531" srcset="https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-9-300x214.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-9-768x548.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/day-2-photo-9.jpg 936w" sizes="(max-width: 744px) 100vw, 744px" /></p>

	<div class="clearboth"></div>
</div>

	</div>
</div>
	</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Essential checklist to keep your Power BI Solutions optimized. Part III. Optimizing DAX Formulas</title>
		<link>https://datamartin.ca/2022/09/19/essential-checklist-to-keep-your-power-bi-solutions-optimized-part-iii-optimizing-dax-formulas/</link>
		
		<dc:creator><![CDATA[Nuric Ugarte]]></dc:creator>
		<pubDate>Mon, 19 Sep 2022 23:21:37 +0000</pubDate>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Power BI]]></category>
		<guid isPermaLink="false">https://site1668528124.mywhc.ca/?p=417</guid>

					<description><![CDATA[This third article will cover how to optimize the DAX Formulas of your data model &#8211; Convert Multiple Measures to Variables: This will minimize the number of measures on your data model and improve their performance. &#8211; Use the DIVIDE function for division instead divide operator (/): This function is optimized to check division by [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This third article will cover how to optimize the DAX Formulas of your data model</p>
<p><strong>&#8211; Convert Multiple Measures to Variables: </strong>This will minimize the number of measures on your data model and improve their performance.</p>
<p><strong><img decoding="async" class="wp-image-605 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/variables-300x142.jpg" alt="" width="499" height="236" srcset="https://datamartin.ca/wp-content/uploads/2022/09/variables-300x142.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/variables.jpg 355w" sizes="(max-width: 499px) 100vw, 499px" /></strong></p>
<p><strong>&#8211; Use the DIVIDE function for division instead divide operator (/)</strong>: This function is optimized to check division by zero which generates a significant performance gain.</p>
<p><strong><img decoding="async" class="wp-image-607 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/division-1-300x104.jpg" alt="" width="597" height="207" srcset="https://datamartin.ca/wp-content/uploads/2022/09/division-1-300x104.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/division-1-768x267.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/division-1.jpg 845w" sizes="(max-width: 597px) 100vw, 597px" /></strong></p>
<p><strong>&#8211; Avoid using the IFERROR function</strong>: It&#8217;s better to avoid using the ISERROR and IFERROR functions. Instead, apply defensive strategies when developing the model as:</p>
<ul>
<li style="list-style-type: none;">
<ul style="list-style-type: circle;">
<li>Apply Power Query transformations to remove or substitute invalid or missing values, and to set correct data types.</li>
<li>Use the IF function to determine whether an error result would occur or error-tolerant functions.</li>
</ul>
</li>
</ul>
<p><strong>&#8211; Reduce usage</strong> of calculated columns that use the <strong>RELATED</strong> function.</p>
<p>&#8211; Use <strong>SELECTEDVALUE()</strong> instead of HASONEVALUE().</p>
<p>&#8211; Use <strong>COUNTROWS</strong> instead of COUNT because it&#8217;s more efficient and performs better.</p>
<p>&#8211; Write <strong>Explicit measures</strong>: You will have more flexibility and will be able to reuse them within other DAX formulas.</p>
<p><strong>Implicit measure:</strong> This is when you use a column with numeric values directly in a visualization, you will identify it because each numeric column has the Sigma (or sum) icon next to it.</p>
<p><strong>Explicit measure:</strong> These are the ones created using a DAX formula, they show a calculator icon beside them.</p>
<p>I recommend that you use explicit measures even for simple measures such as sum, count, average, etc. and then hide the corresponding column to avoid confusing users by having both the column and the measure in the data model.</p>
<p><strong><img decoding="async" class="wp-image-608 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/measures-300x139.jpg" alt="" width="499" height="231" srcset="https://datamartin.ca/wp-content/uploads/2022/09/measures-300x139.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/measures.jpg 576w" sizes="(max-width: 499px) 100vw, 499px" /></strong></p>
<p><strong>&#8211; Use <a href="https://www.daxformatter.com/"><u>DAX Formatter</u></a> to format your code:</strong> The code will be easier to read and maintain.</p>
<p><img decoding="async" class="wp-image-611 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-300x36.jpg" alt="" width="508" height="61" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-300x36.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1024x124.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-768x93.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1536x186.jpg 1536w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter.jpg 1835w" sizes="(max-width: 508px) 100vw, 508px" /></p>
<p><img decoding="async" class="wp-image-610 aligncenter" src="https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1-300x45.jpg" alt="" width="507" height="76" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1-300x45.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1-1024x152.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1-768x114.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1-1536x228.jpg 1536w, https://datamartin.ca/wp-content/uploads/2022/09/dax-formatter-1-1.jpg 1674w" sizes="(max-width: 507px) 100vw, 507px" /></p>
<p>&#8211; Use <a href="https://datamartin.ca/2022/09/29/tools-to-analyze-the-performance-of-your-power-bi-solution/"><span style="text-decoration: underline;"><strong>performance analyzer</strong></span></a> to identify the DAX formulas with longer rendering time.</p>
<p><img decoding="async" class=" wp-image-562 aligncenter" src="/wp-content/uploads/2022/09/performance-analyzer-article-3-300x126.jpg" alt="" width="490" height="206" srcset="https://datamartin.ca/wp-content/uploads/2022/09/performance-analyzer-article-3-300x126.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/performance-analyzer-article-3.jpg 768w" sizes="(max-width: 490px) 100vw, 490px" /></p>
<p>&#8211; Use <strong>DAX Studio to troubleshoot the slowest formulas</strong>: This tool will help you to speed up the troubleshoot process as you can modify the DAX code there directly and when running it know in detail the performance impact. I recommend you check out <a href="https://data-mozart.com/mastering-dp-500-exam-troubleshoot-dax-performance-with-dax-studio/">this <span style="text-decoration: underline;">article</span></a> that goes deeper in this topic.</p>
<p><img decoding="async" class=" wp-image-563 aligncenter" src="/wp-content/uploads/2022/09/dax-studio-3-300x96.jpg" alt="" width="823" height="263" srcset="https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-3-300x96.jpg 300w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-3-1024x328.jpg 1024w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-3-768x246.jpg 768w, https://datamartin.ca/wp-content/uploads/2022/09/dax-studio-3.jpg 1408w" sizes="(max-width: 823px) 100vw, 823px" /></p>
<p>Click <a href="https://datamartin.ca/2022/09/29/essential-checklist-to-keep-your-power-bi-solutions-optimized-part-iv-visualization-good-practices/"><u>here</u></a> to read the last part of this series.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
