{"id":827,"date":"2026-01-16T10:47:46","date_gmt":"2026-01-16T10:47:46","guid":{"rendered":"https:\/\/datadandies.nl\/?p=827"},"modified":"2026-01-16T10:47:46","modified_gmt":"2026-01-16T10:47:46","slug":"testing-dbt-developments-locally-in-power-bi-desktop-using-parameters","status":"publish","type":"post","link":"https:\/\/datadandies.nl\/index.php\/2026\/01\/16\/testing-dbt-developments-locally-in-power-bi-desktop-using-parameters\/","title":{"rendered":"Testing dbt developments locally in Power BI Desktop using parameters"},"content":{"rendered":"\n<p>Are you collaborating with multiple Analytics Engineers on the same dbt repository?<\/p>\n\n\n\n<p>In the following hypothetical setup, dbt is used to load data into Snowflake, and Power BI is used to create reports based on that data.<\/p>\n\n\n\n<p>Each engineer has their&nbsp;own&nbsp;schema when developing and deploying locally, following dbt best practices. In Snowflake, this could look like this:&nbsp;DBT_DBT_ACC.DEV_DEVELOPER1_BRONZE. Whenever a developer runs the&nbsp;dbt run&nbsp;command locally, objects are deployed to their respective schema, for example:&nbsp;DBT_DBT_ACC.DEV_DEVELOPER1_BRONZE.<\/p>\n\n\n\n<p>When you want to review local dbt developments deployed to Snowflake in Power BI Desktop, it can be useful to use a parameter in Power Query to quickly switch between schemas.<\/p>\n\n\n\n<p>Below is a Power Query snippet that creates a Cartesian product of all combinations of developers (DEV1,&nbsp;DEV2, etc.) and layers (BRONZE,&nbsp;SILVER,&nbsp;GOLD,&nbsp;SEEDS). You can use the resulting list as a Power Query parameter.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.3rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * 1.3rem);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e\"><span style=\"background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e\">Power Query<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"let\n\n\u00a0\u00a0\/\/ Create list with cartesian product of relevant values\n\n\u00a0\u00a0SchemaPrefix = {&quot;DEV_DEVELOPER1&quot;, &quot;DEV_DEVELOPER2&quot;, &quot;DEV_DEVELOPER3&quot;},\n\n\u00a0\u00a0SchemaSuffix = {&quot;_BRONZE&quot;, &quot;_SILVER&quot;, &quot;_GOLD&quot;, &quot;_SEEDS&quot;},\n\n\u00a0\u00a0CartesianProduct = List.Combine(\n\n\u00a0\u00a0\u00a0\u00a0List.Transform(SchemaPrefix, each List.Transform(SchemaSuffix, (suffix) =&gt; _ &amp; suffix))\n\n\u00a0\u00a0)\n\nin\n\n\u00a0\u00a0CartesianProduct\" style=\"color:#D4D4D4;display:none\" aria-label=\"Kopieer\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">let<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0<\/span><span style=\"color: #6A9955\">\/\/ Create list with cartesian product of relevant values<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0SchemaPrefix = {<\/span><span style=\"color: #CE9178\">&quot;DEV_DEVELOPER1&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;DEV_DEVELOPER2&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;DEV_DEVELOPER3&quot;<\/span><span style=\"color: #D4D4D4\">},<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0SchemaSuffix = {<\/span><span style=\"color: #CE9178\">&quot;_BRONZE&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;_SILVER&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;_GOLD&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;_SEEDS&quot;<\/span><span style=\"color: #D4D4D4\">},<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0CartesianProduct = List.Combine(<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0\u00a0\u00a0List.Transform(SchemaPrefix, <\/span><span style=\"color: #569CD6\">each<\/span><span style=\"color: #D4D4D4\"> List.Transform(SchemaSuffix, (suffix) =&gt; _ &amp; suffix))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">in<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\u00a0\u00a0CartesianProduct<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">Power Query<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Are you collaborating with multiple Analytics Engineers on the same dbt repository? In the following hypothetical setup, dbt is used to load data into Snowflake, and Power BI is used to create reports based on that data. Each engineer has their&nbsp;own&nbsp;schema when developing and deploying locally, following dbt best practices. In Snowflake, this could look&hellip;<\/p>\n<p class=\"more-link\"><a href=\"https:\/\/datadandies.nl\/index.php\/2026\/01\/16\/testing-dbt-developments-locally-in-power-bi-desktop-using-parameters\/\" class=\"themebutton\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[69,3,11,40],"class_list":["post-827","post","type-post","status-publish","format-standard","hentry","category-blog","tag-dbt","tag-powerbi","tag-powerquery","tag-snowflake"],"_links":{"self":[{"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/posts\/827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/comments?post=827"}],"version-history":[{"count":1,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/posts\/827\/revisions"}],"predecessor-version":[{"id":828,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/posts\/827\/revisions\/828"}],"wp:attachment":[{"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/media?parent=827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/categories?post=827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datadandies.nl\/index.php\/wp-json\/wp\/v2\/tags?post=827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}