{"id":102141,"date":"2024-04-23T17:00:45","date_gmt":"2024-04-23T17:00:45","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=102141"},"modified":"2024-09-03T20:04:46","modified_gmt":"2024-09-03T20:04:46","slug":"4-reasons-to-use-kustodb-for-real-time","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/blogs\/4-reasons-to-use-kustodb-for-real-time\/","title":{"rendered":"4 Reasons to use KustoDB for Real-Time"},"content":{"rendered":"<p>When implementing real-time ingestion, we usually implement an architecture called lambda. Using the lambda architecture, KustoDB in Microsoft Fabric is always recommended for the speed layer.<\/p>\n<p>Do you know why? Let&#8217;s analyze in detail.<\/p>\n<h2><strong>1 &#8211; KustoDB uses SSD<\/strong><\/h2>\n<p>KustoDB uses an internal SSD storage. Lakehouses use ADLS as their backend. In this way, Kusto may have a better performance.<\/p>\n<h2><strong>2 &#8211; Mapping Policies<\/strong><\/h2>\n<p>If you decide to make a Direct Ingestion to the KustoDB, it supports the use of a mapping policy, capable of making complex mapping of JSON files to a table format.<\/p>\n<p>Read more about this on <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/create-ingestion-mapping-command\" target=\"_self\" rel=\"noopener\">https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/create-ingestion-mapping-command<\/a><\/p>\n<h2><strong>3 &#8211; KustoDB Update Policies<\/strong><\/h2>\n<p>On the speed layer, we don&#8217;t load descriptions for dimensions. We load foreign key to dimensions, making the streaming faster.<\/p>\n<p>However, when displaying the data to the end user, we need the description from the dimensions.<\/p>\n<p>The solution for this is the Update Policies. They work as a kind of trigger, allowing that once a row is ingested, it can be merged with the dimensions generating a record the end user will understand.<\/p>\n<p>You can read more about update policies on <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/update-policy\" target=\"_self\" rel=\"noopener\">https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/update-policy<\/a><\/p>\n<h2><strong>4 &#8211; Retention Policies<\/strong><\/h2>\n<p>Retention policies have two different usages, both very important. The most obvious is to stablish a time window for the data in the speed layer.<\/p>\n<p>The speed layer is intended to hold the data for a very limited time and discard it. The first thought of a developer is to create an automated routine to discard the data.<\/p>\n<p>Here comes the Retention Policy: It will automatically discard the data after a time window. We have no need to make a custom development.<\/p>\n<p>The second usage is to help the Update Policies. When merging the data with dimensions, you don&#8217;t need the original ingested data anymore. A retention configuration to 0 on the ingestion tables achieve this.<\/p>\n<p>Read more about the retention policies on <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/retention-policy\" target=\"_self\" rel=\"noopener\">https:\/\/learn.microsoft.com\/en-us\/azure\/data-explorer\/kusto\/management\/retention-policy<\/a><\/p>\n<h2><strong>Summary<\/strong><\/h2>\n<p>These are complex but great reasons to use KustoDB in Fabric as the speed layer for real-time ingestion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When implementing real-time ingestion, we usually implement an architecture called lambda. Using the lambda architecture, KustoDB in Microsoft Fabric is always recommended for the speed layer. Do you know why? Let&#8217;s analyze in detail. 1 &#8211; KustoDB uses SSD KustoDB uses an internal SSD storage. Lakehouses use ADLS as their backend. In this way, Kusto&#8230;&hellip;<\/p>\n","protected":false},"author":50808,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2,159164,1],"tags":[126249,158997,159057],"coauthors":[6810],"class_list":["post-102141","post","type-post","status-publish","format-standard","hentry","category-blogs","category-microsoft-fabric","category-uncategorized","tag-kusto","tag-microsoft-fabric","tag-real-time"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/102141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/50808"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=102141"}],"version-history":[{"count":2,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/102141\/revisions"}],"predecessor-version":[{"id":102143,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/102141\/revisions\/102143"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=102141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=102141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=102141"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=102141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}