{"id":1480,"date":"2025-07-29T16:44:39","date_gmt":"2025-07-29T14:44:39","guid":{"rendered":"https:\/\/www.flip-design.de\/?p=1480"},"modified":"2025-07-29T16:44:39","modified_gmt":"2025-07-29T14:44:39","slug":"translytical-or-how-to-write-data-in-a-database","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=1480","title":{"rendered":"Translytical \u2013 or how to write data in a database"},"content":{"rendered":"\n<p><strong>&#8222;Translytical&#8220; is a term used in data management and analytics that combines &#8222;transactional&#8220; and &#8222;analytical&#8220; processing.<\/strong><strong> <\/strong><strong><\/strong><\/p>\n\n\n\n<p>source: ChatGPT<\/p>\n\n\n\n<p>This new functionality within Power BI offers the ability to write, modify, and delete data within the database. This functionality is currently in preview. It also currently only supports data sources available within Fabric. Additionally, it only requires the Python programming language.<\/p>\n\n\n\n<p>First, this functionality must be enabled in the Admin Portal. This may seem unnecessary at first, but the functions can only be created via the service.Diese Funktionalit\u00e4t wird generell aktiviert, d. h. sie kann nicht nur einzelnen Benutzergruppen zur Verf\u00fcgung gestellt werden.<\/p>\n\n\n\n<p>Nun kann man innerhalb eines Arbeitsbereiches, der selbstverst\u00e4ndlich mit einer Fabric Kapazit\u00e4t verbunden sein muss, die sogenannten UDF\u2019s erstellen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image.png\" alt=\"\" class=\"wp-image-1481\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Once this has been created, a new function can be stored in this container.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-1.png\" alt=\"\" class=\"wp-image-1482\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-1.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-1-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-1-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>To write or modify corresponding data, a corresponding data source must be configured. This is done using the following switch:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-2.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-2.png\" alt=\"\" class=\"wp-image-1483\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-2.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-2-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-2-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>You can then select a data source. This screenshot shows the selection of supported data sources. It&#8217;s important that the data source is located within Fabric and that a SQL endpoint is offered. Then you can select it here.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-3.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-3.png\" alt=\"\" class=\"wp-image-1484\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-3.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-3-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-3-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-4.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"301\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-4.png\" alt=\"\" class=\"wp-image-1485\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-4.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-4-300x96.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-4-768x246.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>I&#8217;m not really a Python expert myself, but when you&#8217;re in the function&#8217;s edit mode, you can select appropriate templates.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-5.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-5.png\" alt=\"\" class=\"wp-image-1486\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-5.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-5-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-5-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Once the connection has been established, it must be passed to the function. In this example, I&#8217;m using only one. Of course, several can be used for different use cases. Here, the data source is simply sqldb, so no adjustments are necessary.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-6.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-6.png\" alt=\"\" class=\"wp-image-1487\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-6.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-6-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-6-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>As you can see here, any SQL query supported by the source can be passed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-7.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-7.png\" alt=\"\" class=\"wp-image-1488\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-7.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-7-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-7-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Here&#8217;s a complete example:<\/p>\n\n\n\n<p>In this example, I&#8217;ve configured two separate functions within the function, each of which accepts a parameter and uses it for filtering in the Where condition. This simply updates the corresponding data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-8.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-8.png\" alt=\"\" class=\"wp-image-1489\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-8.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-8-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-8-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>I then created the report within Power BI Desktop. It&#8217;s important to establish a live connection. Technically, this isn&#8217;t absolutely necessary, meaning data can also be imported, but to ensure the results are visible promptly, this is better used for this purpose. To implement filtering with slicers, the new one must be used.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-9.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"518\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-9.png\" alt=\"\" class=\"wp-image-1490\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-9.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-9-300x165.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-9-768x423.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>To trigger the functions, I implemented two buttons and selected them via the actions and used the parameter from the slicer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-10.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"518\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-10.png\" alt=\"\" class=\"wp-image-1491\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-10.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-10-300x165.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-10-768x423.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Even though a Direct Query connection was used here, the updates to the database aren&#8217;t visible in the report until approximately 30 seconds later. However, the database update was made immediately. The reason for this is that the semantic model caches the data and doesn&#8217;t immediately make the changes visible. Unfortunately, changing the configuration on the service doesn&#8217;t make any difference.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-11.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"463\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-11.png\" alt=\"\" class=\"wp-image-1492\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-11.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-11-300x148.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2025\/07\/image-11-768x378.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>&#8222;Translytical&#8220; is a term used in data management and analytics that combines &#8222;transactional&#8220; and &#8222;analytical&#8220; processing. source: ChatGPT This new functionality within Power BI offers the ability to write, modify, and delete data within the database. This functionality is currently &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=1480\">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\/1480"}],"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=1480"}],"version-history":[{"count":1,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1480\/revisions"}],"predecessor-version":[{"id":1493,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1480\/revisions\/1493"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}