{"id":1395,"date":"2024-04-27T13:43:04","date_gmt":"2024-04-27T11:43:04","guid":{"rendered":"https:\/\/www.flip-design.de\/?p=1395"},"modified":"2024-04-27T13:43:04","modified_gmt":"2024-04-27T11:43:04","slug":"a-first-look-at-database-mirroring-in-power-bi-or-in-fabric","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=1395","title":{"rendered":"A first look at database mirroring in Power BI or in Fabric"},"content":{"rendered":"\n<p>The ability to mirror data is not new if you have dealt with SQL Server. The ability to mirror databases was added a long time ago. Setting this up was much more difficult, and it also required a costly enterprise license. Now there is a preview function for mirroring databases in Power BI or Fabric. The data is stored in OneLake and can be used from there. Of course, the data is provided via an SQL endpoint and can also be read and analyzed in Power BI. This function is very useful if the database is constantly being written and read. This means that users are not disturbed by the person analyzing the data when editing it. The creation of mirrored databases is currently limited to Azure SQL, Cosmos and Snowflake databases. However, I think that this will expand in the next few weeks or months. In this entry I would like to show how the database is mirrored and what else needs to be taken into account. First of all, I created an Azure database that pauses when not in use. Serverless, so the database costs significantly less money to use. However, if the database is mirrored, the database is constantly accessed to determine whether data has changed. This means that the database is always in active mode and is therefore also cost-intensive.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image.png\" alt=\"\" class=\"wp-image-1396\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>To achieve this feature, Fabric must be enabled.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-1.png\" alt=\"\" class=\"wp-image-1397\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-1.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-1-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-1-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>However, in order for the function to be used, system-assigned managed identity must be activated on the database. It does not matter whether SQL-based authentication is used.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-2.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-2.png\" alt=\"\" class=\"wp-image-1398\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-2.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-2-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-2-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>Further information can be found here:<\/p>\n\n\n\n<p>https:\/\/community.fabric.microsoft.com\/t5\/General-Discussion\/Mirroring-in-Fabric-Managed-Identity-error\/td-p\/3847842 After the mirroring name has been assigned, a connection to the database is established:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-3.png\"><img decoding=\"async\" loading=\"lazy\" width=\"669\" height=\"269\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-3.png\" alt=\"\" class=\"wp-image-1399\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-3.png 669w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-3-300x121.png 300w\" sizes=\"(max-width: 669px) 100vw, 669px\" \/><\/a><\/figure>\n\n\n\n<p>For this demonstration, I also use SQL-based authentication. The data for this can be read from the Azure platform.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-4.png\"><img decoding=\"async\" loading=\"lazy\" width=\"833\" height=\"672\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-4.png\" alt=\"\" class=\"wp-image-1400\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-4.png 833w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-4-300x242.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-4-768x620.png 768w\" sizes=\"(max-width: 833px) 100vw, 833px\" \/><\/a><\/figure>\n\n\n\n<p>After confirming this window, you can select either individual tables or all of them.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-5.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"609\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-5.png\" alt=\"\" class=\"wp-image-1401\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-5.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-5-300x193.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-5-768x495.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>After confirming, you have to wait a moment for the mirroring to start.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-6.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-6.png\" alt=\"\" class=\"wp-image-1402\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-6.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-6-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-6-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>However, it should be noted that some tables provide information about which columns cannot be mirrored. The information can be found behind the symbols.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-7.png\"><img decoding=\"async\" loading=\"lazy\" width=\"843\" height=\"476\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-7.png\" alt=\"\" class=\"wp-image-1403\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-7.png 843w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-7-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-7-768x434.png 768w\" sizes=\"(max-width: 843px) 100vw, 843px\" \/><\/a><\/figure>\n\n\n\n<p>After confirming this window, the mirroring starts:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-8.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"610\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-8.png\" alt=\"\" class=\"wp-image-1404\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-8.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-8-300x194.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-8-768x496.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>the objects are created with the workspace where you were originally located.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-9.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-9.png\" alt=\"\" class=\"wp-image-1405\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-9.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-9-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-9-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>Even though a semantic model has been created here, it is not usable.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-10.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-10.png\" alt=\"\" class=\"wp-image-1406\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-10.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-10-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-10-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>In the properties of the analytical database, the connection point with the SQL database can be copied.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-11.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-11.png\" alt=\"\" class=\"wp-image-1407\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-11.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-11-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-11-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p><strong>A connection can also be established with this database, and the mirrored objects can be found there and queried. It is not possible to change these objects by entering new data or changing the structure.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-12.png\"><img decoding=\"async\" loading=\"lazy\" width=\"460\" height=\"767\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-12.png\" alt=\"\" class=\"wp-image-1408\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-12.png 460w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-12-180x300.png 180w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><\/a><\/figure>\n\n\n\n<p>A connection to the SQL database can also be established from the Power BI Desktop side:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-13.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"582\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-13.png\" alt=\"\" class=\"wp-image-1409\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-13.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-13-300x185.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-13-768x473.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-14.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"582\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-14.png\" alt=\"\" class=\"wp-image-1410\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-14.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-14-300x185.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-14-768x473.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>When you query the table, you can see the data it contains from the source database.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-15.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"496\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-15.png\" alt=\"\" class=\"wp-image-1411\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-15.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-15-300x157.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-15-768x403.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>If a record is deleted or added in the source database, the mirroring can be monitored. In this example, I have deleted a row. However, the rows are not displayed correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-16.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"532\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-16.png\" alt=\"\" class=\"wp-image-1412\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-16.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-16-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-16-768x432.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>The data can also be processed with the Lakehouse in Fabric, as it is located in OneLake<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-17.png\"><img decoding=\"async\" loading=\"lazy\" width=\"945\" height=\"432\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-17.png\" alt=\"\" class=\"wp-image-1413\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-17.png 945w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-17-300x137.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2024\/04\/image-17-768x351.png 768w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The ability to mirror data is not new if you have dealt with SQL Server. The ability to mirror databases was added a long time ago. Setting this up was much more difficult, and it also required a costly enterprise &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=1395\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1395"}],"collection":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1395"}],"version-history":[{"count":1,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1395\/revisions"}],"predecessor-version":[{"id":1414,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1395\/revisions\/1414"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}