<?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>SQL - Bibliothek - arelium - Wir holen mehr aus deinen Daten</title>
	<atom:link href="https://arelium.de/category/sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://arelium.de/category/sql/</link>
	<description></description>
	<lastBuildDate>Thu, 27 Feb 2025 10:22:40 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://arelium.de/wp-content/uploads/2022/10/Logo_arelium_FavIcon-150x150.jpg</url>
	<title>SQL - Bibliothek - arelium - Wir holen mehr aus deinen Daten</title>
	<link>https://arelium.de/category/sql/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Azure SQL vs Fabric SQL</title>
		<link>https://arelium.de/azure-sql-vs-fabric-sql/</link>
					<comments>https://arelium.de/azure-sql-vs-fabric-sql/#respond</comments>
		
		<dc:creator><![CDATA[Joel Galla]]></dc:creator>
		<pubDate>Thu, 27 Feb 2025 10:22:40 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[OneLake]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=20789</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/azure-sql-vs-fabric-sql/">Azure SQL vs Fabric SQL</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><p>Viele benutzen bereits Azure SQL Datenbanken und fragen sich: „Warum sollte ich eine SQL Datenbank in Fabric nutzen?“ Aber die meisten verstehen garnicht, dass es die falsche Frage ist. Azure SQL vs Fabric SQL gibt es nicht, denn beide sind das exakt selbe. Das entscheidende ist nicht die Technologie, sondern die Umgebung.</p>
<p>Um das zu verstehen, muss klar sein, dass eine SQL Datenbank in Fabric nicht in Fabric liegt. Wie im Bild zu sehen ist die SQL Datenbank in Fabric nur eine Azure SQL Datenbank welche in Echtzeit in den OneLake und damit Fabric gespiegelt wird. Die Technologie ist die gleich, wie beim Spiegeln einer schon existierenden Datenbank. Nur weil die Technik dieselbe ist, ist das Ergebnis nicht dasselbe.</p>
<h2>Azure SQL vs Fabric SQL – Ein Kostenvergleich</h2>
<p>Der erste Unterschied sind sie Kosten. Azure SQL Datenbanken kosten im laufenden Betrieb und die Datenmengen werden ebenfalls abgerechnet. Datenbanken in Fabric kosten ebenfalls eine Kleinigkeit für den Speicher, aber nichts im Betrieb. Es entstehen keine Zusatzkosten und alles ist mit den Fabric Lizenzen abgedeckt. Klingt nach einem eindeutigen Gewinner, oder? Falsch.</p>
<p>Der wichtigste Unterschied sind nicht die Kosten. Dafür musst du verstehen, wofür beide Datenbanken gedacht sind. Eine Azure SQl Datenbank kann überall eingesetzt werden. Eine Fabric Datenbank kann das auch, sollte es aber nicht. Azure ist viel weit laufender als Fabric. Eine Webapp sollte keine Fabric Datenbank nutzen, aber eine Azure SQL Datenbank ist genau das Richtige.</p>
<p>Microsoft Fabric ist eine Datenverarbeitungs- und Analyseplattform. Wenn Unternehmensdaten in einer gemeinsamen Plattform verarbeitet und verwaltet werden sollen, dann ist Fabric das Mittel der Wahl. Die SQL Datenbank in Fabric ist dann optimal. Alle Daten sind sauber, zentral und kostengünstig vereint. Das heißt nicht, dass eine Azure SQL Datenbank das nicht auch kann, aber die Fabric Datenbank ist hier überlegen. Eine Azure Datenbank kann immer noch in Fabric gespiegelt werden.</p>
<h2>Vorteile einer Fabric SQL Datenbank</h2>
<p>Wenn das Ziel Fabric ist, dann hat es noch einen weiteren Vorteil, die Datenbank direkt in Fabric anzulegen. Eine Azure SQL Datenbank hat eigene Rollen- und Sicherheitskonzepte. Diese Regeln werden auf dem Server eingerichtet und zusätzlich werden die Fabric Regeln angewendet. Aber wenn die Datenbank in Fabric angelegt wird, dann können alle Regeln in Fabric verwaltet werden. Es greifen immer noch die Microsoft Fabric Regeln, aber zusätzlich können die gleichen Regeln wie in Azure SQL eingerichtet werden. Aber das ist nicht das beste Feature.</p>
<p>Eine Fabric SQL Datenbank kann noch mehr. Die zugrundeliegende Technik ist dieselbe, aber die Einbindung ist es nicht. Mit der Einbindung meine ich, dass z.B. automatisch ein semantisches Modell erstellt werden kann, welches auch direkt in einem Power BI Bericht endet. Das Gleiche gilt für den Analyseendpunkt. Damit ist eine Fabric SQL Datenbank vollständig in Fabric integriert.</p>
</div></div><div class="w-separator size_medium"></div><div class="g-cols wpb_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default" style="--columns-gap:3rem;"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="w-popup w-btn-wrapper align_none"><button type="button" aria-label="Hier Whitepaper downloaden" class="w-popup-trigger type_btn w-btn us-btn-style_1"><span class="w-btn-label">Hier Whitepaper downloaden</span></button><div class="w-popup-overlay" style="background:rgba(0,0,0,0.85);"></div><div class="w-popup-wrap layout_default" role="dialog" aria-modal="true" aria-label="Hier Whitepaper downloaden" style="--title-color:var(--color-content-heading);--title-bg-color:var(--color-content-bg-alt);--content-color:var(--color-content-text);--content-bg-color:var(--color-content-bg);--popup-width:40%;--popup-padding:5%;"><button aria-label="Schließen" class="w-popup-closer" type="button"></button><div class="w-popup-box animation_fadeIn closerpos_outside without_title"><div class="w-popup-box-h"><div class="w-popup-box-content"><section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper">				<div class="email_download_link">
						<form action="#" method="post" class="ed_form" id="ed_form_1776195342">
				<p><span class="name">Name *</span><br><input type="text" name="name" id="name" placeholder="Name" value="" maxlength="50" required/></p>				<p><span class="email">Email *</span><br><input class="" type="email" id="email" name="email" value="" placeholder="Email *"  maxlength="225" required/></p>																				<br />
				<input name="submit" class="submit" id="ed_form_submit_1776195342" value="Send Download Link" type="submit" />
				<span class="ed_form_spinner" id="loading-image" style="display:none;">
					<img decoding="async" src="https://arelium.de/wp-content/plugins/email-download-link/images/ajax-loader.gif" />
				</span>
				<input name="guid" id="guid" value="wqfpcd-dgcxrz-xdzfup-qtwvjd-hevcfy" type="hidden"/>
				<input type="text" style="display:none;" id="email_name" name="email_name" value="" type="hidden"/>
				<input name="form_nonce" id="form_nonce" value="ee1b55a4dc" type="hidden"/>
				<input name="name_mand" id="name_mand" value="YES" type="hidden"/>
				<input name="gdpr_mand" id="gdpr_mand" value="NO" type="hidden"/>
				<input name="phone_mand" id="phone_mand" value="" type="hidden"/>
			</form>	
			<span class="ed_form_message" id="ed_form_message_1776195342"></span>
		</div>
	
</div></div><div class="wpb_text_column us_custom_c3ed962a"><div class="wpb_wrapper"><p>*Mit dem Download dieser Datei, stimmen Sie zu, den arelium Newsletter zu erhalten. Sie können die Newsletter jedezeit wieder abbestellen.</p>
</div></div></div></div></div></div></section>
</div></div></div></div></div></div></div></div><div class="w-separator size_medium"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h2>Übersichtstabelle</h2>
<table>
<tbody>
<tr>
<td width="302">Azure</td>
<td width="302">Fabric</td>
</tr>
<tr>
<td width="302">Verwendbar für Alles</td>
<td width="302">Spezialisiert für Datenauswertung</td>
</tr>
<tr>
<td width="302">Es wird Azure benötigt</td>
<td width="302">Es wird Azure und Fabric benötigt</td>
</tr>
<tr>
<td width="302">Kosten für Speicher und Erreichbarkeit</td>
<td width="302">Nur Kosten für zusätzlichen OneLake Speicherplatz</td>
</tr>
</tbody>
</table>
</div></div><div class="w-separator size_medium"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Falls du dich generell für das Thema Azure und Fabric interessierst, haben wir das Thema in einem YouTube Video behandelt. In diesem Video reden wir über die <a href="https://www.youtube.com/watch?v=Nlxb_VmqkyI">Unterschiede von Azure Synapse Analytics und Microsoft Fabric</a>. In anderen Blogbeiträgen haben wir auch über die <a href="/kostenvergleich-fabric-synapse/">unterschiedlichen Kosten von Synapse und Fabric</a> geschrieben.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/azure-sql-vs-fabric-sql/">Azure SQL vs Fabric SQL</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/azure-sql-vs-fabric-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>T-SQL Notebook in Microsoft Fabric</title>
		<link>https://arelium.de/t-sql-notebook-in-microsoft-fabric/</link>
					<comments>https://arelium.de/t-sql-notebook-in-microsoft-fabric/#respond</comments>
		
		<dc:creator><![CDATA[Martin Kopp]]></dc:creator>
		<pubDate>Mon, 11 Nov 2024 06:29:22 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=20034</guid>

					<description><![CDATA[<p>T-SQL Notebooks in Fabric? Das geht? Ja. In der aktuellen Version von <a class="glossaryLink" aria-describedby="tt" data-cmtooltip="&#60;div class=glossaryItemTitle&#62;Microsoft Fabric&#60;/div&#62;&#60;div class=glossaryItemBody&#62;&#38;lt;img class=&#38;quot; wp-image-23172&#38;quot; src=&#38;quot;https://arelium.de/wp-content/uploads/2026/03/Glossarbilder1-300x92.png&#38;quot; alt=&#38;quot;&#38;quot; width=&#38;quot;1388&#38;quot; height=&#38;quot;426&#38;quot; /&#38;gt;&#38;lt;span role=&#38;quot;text&#38;quot;&#38;gt;&#38;lt;strong data-start=&#38;quot;1069&#38;quot; data-end=&#38;quot;1125&#38;quot;&#38;gt;Was ist Microsoft Fabric? &#38;lt;/strong&#38;gt;&#38;lt;/span&#38;gt;&#38;lt;span role=&#38;quot;text&#38;quot;&#38;gt;&#38;lt;strong data-start=&#38;quot;1069&#38;quot; data-end=&#38;quot;1125&#38;quot;&#38;gt;Definition, Funktionen und Aufbau&#38;lt;/strong&#38;gt;&#38;lt;/span&#38;gt;Microsoft Fabric ist eine cloudbasierte All-in-One-Datenplattform von Microsoft, die(...)&#60;/div&#62;" href="https://arelium.de/glossar/microsoft-fabric/" target="_blank" data-gt-translate-attributes='[{"attribute":"data-cmtooltip", "format":"html"}]' tabindex="0" role="link">Microsoft Fabric</a> kann jetzt auch in einem Notebook mit T-SQL gearbeitet werden. Bekannt gegeben wurde das im letzten Fabric-Newsletter von September 2024. Das es kommen wird, wurde schon vor einigen Monaten erw&#228;hnt. Um was geht es &#252;berhaupt? Bisher konnte ich mit meinem Notebook...</p>
<p>Der Beitrag <a href="https://arelium.de/t-sql-notebook-in-microsoft-fabric/">T-SQL Notebook in Microsoft Fabric</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>T-SQL Notebooks in Fabric? Das geht? Ja. In der aktuellen Version von Microsoft Fabric kann jetzt auch in einem Notebook mit T-SQL gearbeitet werden. Bekannt gegeben wurde das im letzten <a href="https://blog.fabric.microsoft.com/en-gb/blog/fabric-september-2024-monthly-update?ft=All#post-14247-_Toc177485840">Fabric-Newsletter von September 2024</a>. Das es kommen wird, wurde schon vor einigen Monaten erwähnt.</p>
<h2>Um was geht es überhaupt?</h2>
<p>Bisher konnte ich mit meinem Notebook in Fabric die Sprachen PySpark, Scala, Spark SQL oder R verwenden. Ab jetzt gibt es eine Sprache mehr: T-SQL. So ganz stimmt das aber nicht. T-SQL kann in verschiedenen Situationen eingesetzt werden, aber ein bisheriges Notebook kann ich damit nicht so richtig ersetzen. Ich kann zum Beispiel nicht zwischen den Sprachen hin- und herspringen. Microsoft unterscheidet daher die Sprachauswahl nach Spark (die obigen vier Sprachen) und T-SQL Analytics. Das ist dann T-SQL.</p>
<p><img decoding="async" class="aligncenter wp-image-20038" src="https://arelium.de/wp-content/uploads/2024/10/NotebooksprachenInFabric.png" alt="Sprachen Fabric" width="96" height="162" /></p>
<p>Worin liegt der Unterschied? Wenn ich T-SQL auswähle, dann kann ich nicht mehr in eine andere Sprache ändern. Das hat etwas damit zu tun, dass die Spark-Sprachen gegen ein Lakehouse gehen und mit T-SQL verbinde ich mich an ein Warehouse. Also gehe ich mit einem (Spark-)Notebook bisher an einen SQL Analytics Endpoint. T-SQL geht dagegen an ein Warehouse. Dahinter steckt dann ein SQL Server bzw. ein Azure SQL.</p>
<p>Versuche ich mit einer T-SQL-Abfrage gegen ein Lakehouse zu starten, dann bekomme ich folgende Fehlermeldung:<br />
<em>InvalidOperationException: Data warehouse id is empty. Please check if the notebook is connected to a data warehouse.</em></p>
<p>Es geht also nur mit einem Data Warehouse. ABER: Ich kann in einem Data Warehouse ein Lakehouse verbinden. Klingt zunächst komisch. Konnte ich aber in Azure Synapse aber auch schon immer machen. Das geht dann natürlich auch in Microsoft Fabric.</p>
<p>Hier an einem Beispiel:<br />
<img decoding="async" class="aligncenter wp-image-20037" src="https://arelium.de/wp-content/uploads/2024/10/LakehouseInWarehouse.png" alt="Warehouse mit Lakehouse verbinden" width="176" height="210" srcset="https://arelium.de/wp-content/uploads/2024/10/LakehouseInWarehouse.png 256w, https://arelium.de/wp-content/uploads/2024/10/LakehouseInWarehouse-252x300.png 252w" sizes="(max-width: 176px) 100vw, 176px" />Obwohl ich in Warehouses bin, kann ich darunter ein Lakehouse verbinden. Am Ende ist es nichts anderes als die Lakehouse-Tabellen mit External Table in den SQL Server einzubinden. Auch das geht schon seit vielen Jahren im SQL Server. Hier kann ich dann mit T-SQL arbeiten und meine bekannte Sprache einsetzen um Sichten (Views), Funktionen (Functions), Prozeduren (Procedures) oder einfach nur Abfragen (Queries) zu schreiben.</p>
<h2>Beispiel</h2>
<p>Ein kurzes Beispiel mit dem Befehl TOP um nur die obersten Zeilen zu bekommen. Wir erinnern uns: In Spark SQL lautet der Befehl LIMIT.<br />
<img fetchpriority="high" decoding="async" class="aligncenter wp-image-20036" src="https://arelium.de/wp-content/uploads/2024/10/BeispielTop10.png" alt="Beispiel TSQL in Fabric" width="547" height="431" srcset="https://arelium.de/wp-content/uploads/2024/10/BeispielTop10.png 764w, https://arelium.de/wp-content/uploads/2024/10/BeispielTop10-300x236.png 300w, https://arelium.de/wp-content/uploads/2024/10/BeispielTop10-508x400.png 508w" sizes="(max-width: 547px) 100vw, 547px" /></p>
<p>Auch CTEs (Common Table Expressions) können verwendet werden. <a href="https://learn.microsoft.com/de-de/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-ver16">Wer CTEs nicht kennt, der sollte sich damit mal befassen</a>.</p>
<h2>Einschränkungen</h2>
<p>Es gibt aber auch ein paar Limitierungen. Ich habe ein paar rausgesucht, die ich am ehesten vermissen würde</p>
<ul>
<li>ALTER TABLE: Das geht nur sehr eingeschränkt (nur Primary Key anlegen und sowas). Wir erinnern uns, dass es sich um eine Externe Tabelle handelt. Dann geht ALTER TABLE natürlich nicht.</li>
<li>IDENTITY COLUMN: Auch das geht nicht. Auch das liegt an External Tables. Es gibt keine Identity auf einer Externen Tabelle. Am Ende ist es ja nur eine Datei und keine Tabelle in einer Datenbank.</li>
<li>MERGE: Das ein MERGE nicht geht, dass tut schon weh. Das ist auch etwas schade, da ein wenig suggeriert wird, dass ich ein Data Warehouse von einem SQL Server portieren kann. Spätestens beim MERGE ist es dann aber vorbei. Wenn ich MERGE in Prozeduren verwendet habe, dann muss ich das in Insert/Update/Delete umschreiben.</li>
<li>Es gibt noch weitere Einschränkungen, die in einem Data Warehouse aber eher seltener vorkommen. Nachzulesen auf der <a href="https://learn.microsoft.com/de-de/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-ver16">Microsoft-Seite zum Thema</a>.</li>
</ul>
<h2>Fazit</h2>
<p>Ich habe T-SQL bisher noch nicht in Fabric vermisst. Spark SQL geht auch. Ich gehe aber trotzdem davon aus, dass ich T-SQL das ein oder andere Mal in Zukunft verwenden werde. Wenn ich eine komplexere Abfrage brauche, dann ist mir T-SQL halt doch etwas geläufiger als Spark SQL. Ich glaube genau damit wird Fabric wieder etwas näher an die Entwickler rücken, die bisher den Umstieg in die Cloud nicht vollzogen haben und bisher &#8222;nur&#8220; mit ihrem SQL Server (oder Azure SQL) arbeiten. EIn Vorteil ist natürlich auch die Mächtigkeit von T-SQL und die starke Verbreitung. Auch wird T-SQL immer wieder weiterentwickelt: <a href="https://arelium.de/neuerung-t-sql/">Wie Microsoft die Sprache „T-SQL“ weiterentwickelt &#8211; arelium GmbH</a>.</p>
<p>Der Beitrag <a href="https://arelium.de/t-sql-notebook-in-microsoft-fabric/">T-SQL Notebook in Microsoft Fabric</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/t-sql-notebook-in-microsoft-fabric/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>T-SQL Constraints</title>
		<link>https://arelium.de/t-sql-constraints/</link>
		
		<dc:creator><![CDATA[Torsten Ahlemeyer]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 08:20:46 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Data Engineering]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?page_id=19896</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/t-sql-constraints/">T-SQL Constraints</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><h2><strong>Was sind T-SQL Constraints?</strong></h2>
<p><span>Bei Constraints (engl. für “Einschränkungen”) handelt es sich um durch den Entwickler vorzugebende Regeln. Diese werden direkt auf Datenbankebene implementiert und durch diese überwacht. Derart abgesichert, sind Fehleingaben bei der Datenpflege nicht mehr möglich. Somit definieren Constraints Bedingungen, die beim Einfügen, Ändern oder Löschen von Datenbankinhalten erfüllt werden müssen.</span></p>
<p><span>Da Tabellen Werte innerhalb einer relationalen Datenbank speichern, hängen Constraints auch genau an dieser Art von Objekten. Sichten, Trigger, Prozeduren und Funktionen können keine Constraints haben. </span></p>
<h2><strong><span>Wann und wie werden Constraints erstellt?</span></strong></h2>
<p><span>Derartige Bedingungen kann man immer programmatisch erstellen. Man schreibt hierzu einen Quellcode mit normalen DDL-Befehlen. Dies kann schon beim Anlegen eines Objektes (CREATE TABLE) oder später als Änderungsanweisung (ALTER TABLE) geschehen. Es ist möglich Constraints einzeln zu löschen (DROP CONSTRAINT). Wenn das zugehörige Objekt gelöscht wird, werden gleichzeitig auch alle daran gebundenen Constraints eleminiert.</span></p>
<p><span>Es ist bei den meisten Constraints auch möglich, diese bequem über die grafische Benutzeroberfläche, bspw. das SQL Server Management Studio, zu pflegen.</span></p>
<p><span>Constraints gelten sofort. Mit ihrer Anlage sind sie automatisch aktiviert. Man kann sie zu Testzwecken einzeln deaktivieren, dann werden die implementierten Prüfungen nicht durchlaufen. Nach einer Reaktivierung findet die Bedingung dann sofort wieder Anwendung.</span></p>
</div></div><div class="w-separator size_medium"></div><div class="wpb_text_column us_custom_eef79b84"><div class="wpb_wrapper"><p style="padding-left: 40px;">CREATE TABLE [Ereignis] (<br />             [ID]                                        INTEGER                           NOT NULL,<br />             [Bezeichnung]                        VARCHAR(255)                 NOT NULL,<br />             [Datum]                                 DATE,<br />             [Ort]                                      VARCHAR(255),<br />CONSTRAINT [chkEreignis] CHECK ([Datum]&gt;=’20240101’ AND [Ort]=&#8217;Duisburg&#8216;)<br />);</p>
</div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p style="text-align: center;"><strong><em>Anlage einer Tabelle mit sofortiger Constraint-Einrichtung</em></strong></p>
</div></div><div class="w-separator size_medium"></div><div class="wpb_text_column us_custom_eef79b84"><div class="wpb_wrapper"><p style="padding-left: 40px;">ALTER TABLE [Ereignis]ADD CONSTRAINT [chkEreignis2] CHECK ([Bezeichnung] LIKE &#8218;D%&#8216;);</p>
</div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p style="text-align: center;"><strong><em>Spätere Erweiterung um einen weiteren Constraint</em></strong></p>
</div></div><div class="w-separator size_medium"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h2><strong><span>Welche Arten von T-SQL Constraints gibt es?</span></strong></h2>
<p><span>Man unterscheidet verschiedene Arte von Einschränkungen. Manche Arten können pro Tabelle nur einfach vorkommen (Primery Key Constraint), andere können auch mehrfach in unterschiedlicher Ausprägung an dieselbe Tabelle gebunden werden. Verschiedene Arten lassen sich problemlos an einer Tabelle gleichzeitig einsetzen.</span></p>
<ul>
<li><strong><span>NOT NULL Constraint<br /></span></strong><span>Soll in eine Spalte kein NULL-Wert eingegeben werden können, nutzt man einen NOT NULL Constraint</span></li>
<li><strong><span>UNIQUE Constraint<br /></span></strong><span>Mit dieser Bedingung erzwingt man einzigarte Werte in einer Spalte. Dubletten sind nicht mehr möglich.</span></li>
<li><strong><span>Primery Key Constraint<br /></span></strong><span>Bei dieser Beschränkung handelt es sich um eine Kombination aus der UNIQUE- und der NOT NULL-Beschränkung, wobei die Spalte oder die Gruppe von Spalten, die am PRIMARY KEY beteiligt sind, einzigartig sind und keinen NULL-Wert annehmen können.</span></li>
<li><strong><span>Foreign Key Constraint<br /></span></strong><span>Hier wird die Eingabe von Werten erzwungen, die in einer anderen Tabelle der Primärschlüssel sind. Werte, die es in der zweiten Tabelle nicht gibt, werden abgelehnt.</span></li>
<li><strong><span>Check Constraint<br /></span></strong><span>Der Wert in einer Spalte mit einer Prüfbeschränkung kann nur eingegeben werden, wenn die T-SQL Prüfbeschränkung als wahr ausgewertet wird.</span></li>
<li><strong><span>Default Constraint<br /></span></strong><span>Mit dieser Art der Constraints werden Ersatzwerte vorgegeben, die automatisch eingefügt werden, wenn in einem INSERT-Statement ein NULL-Wert für die betroffene Spalte übergeben wird. </span></li>
</ul>
<h2><span><strong>Warum sollte ich Constraints einsetzen?</strong></span></h2>
<p><span>Es gibt keine zuverlässigere Möglichkeit als die Nutzung von Constraints, um die Inhalte seiner Datenbank zu schützen. Merke: Was immer ein Nutzer eingeben oder ändern kann, wird er früher oder später auch bewusst oder unbewusst machen. Nur wenn die Datenbank sicherstellt, das keine ungewollten Pflegeinhalte gespeichert werden, kann der Inhalt einer Datenbank zuverlässig positiv garantiert werden.</span></p>
<p><span>Die Einrichtung passender T-SQL Constraints ist eine einmalige Arbeit. Dieser Aufwand lohnt sich aber definitiv! Es ist erfahrungsgemäß um ein Vielfaches zeit- und kostenintensiver eine inhaltlich „verunreinigte“ Datenbank zu säubern – wenn es überhaupt möglich ist.</span></p>
<p><span>Da Constraints auf DB-Ebene wirken, greifen sie bei jeder Art der Datenmanipulation. Egal ob durch einen Sachbearbeiter über eine Applikations-GUI oder einen Entwickler mit T-SQL-Befehlen… die Beschränkungen sorgen für saubere Daten!  </span></p>
<h2><strong>Unsere Spezialisten</strong></h2>
<p>Wir sind seit vielen Jahren Spezialisten für die gesamte Datenverarbeitung von der Speicherung, über die Analyse bis zum fertigen Bericht. Außerdem bauen wir seit fast zwei Jahrzehnten Datenbanken für Unternehmen verschiedenster Größen. Wenn Sie weitere Fragen<span> </span><a href="https://arelium.de/kontakt/">kontaktieren</a><span> </span>Sie uns doch einfach.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/t-sql-constraints/">T-SQL Constraints</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>arelium bei der PASS Stuttgart</title>
		<link>https://arelium.de/schach-in-t-sql-bei-der-pass-stuttgart/</link>
					<comments>https://arelium.de/schach-in-t-sql-bei-der-pass-stuttgart/#respond</comments>
		
		<dc:creator><![CDATA[Emil Vincazovic]]></dc:creator>
		<pubDate>Thu, 21 Mar 2024 07:13:11 +0000</pubDate>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=17251</guid>

					<description><![CDATA[<p>arelium zu Gast beim PASS Wieder einmal hat die arelium sich die M&#246;glichkeit nicht nehmen lassen, in einer regionalen Passgruppe zu sprechen. Diesmal f&#252;hrte es unseren Referenten in eine weiter entfernte Regionalgruppe. Mit dabei? Der Vortrag Schach in T-SQL. Schach in T-SQL Mit einem Vortragsklassiker machte sich unser Projektleiter Torsten Ahlemeyer auf den Weg nach...</p>
<p>Der Beitrag <a href="https://arelium.de/schach-in-t-sql-bei-der-pass-stuttgart/">arelium bei der PASS Stuttgart</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>arelium zu Gast beim PASS</h2>
<p>Wieder einmal hat die arelium sich die Möglichkeit nicht nehmen lassen, in einer regionalen Passgruppe zu sprechen. Diesmal führte es unseren Referenten in eine weiter entfernte Regionalgruppe. Mit dabei? Der Vortrag Schach in T-SQL.</p>
<h2>Schach in T-SQL</h2>
<p>Mit einem Vortragsklassiker machte sich unser Projektleiter <a href="/team">Torsten Ahlemeyer</a> auf den Weg nach Stuttgart. Nachdem er geschäftliche Termine erledigt hatte, ging es abends zur Regionalgruppe der <a href="http://www.sqlpass.de">PASS</a> in Stuttgart. Dort zeigte er, wie er mit reinem T-SQL ein Schachprogramm entwickelt hatte. Noch spannender wurde es dann, als es um die mittlerweile bekannten berüchtigten Rätsel ging. Selbstverständlich hatte der Datenbankspezialist sein überdimensional großes Schachbrett dabei, um die rätselbegeisterten Zuhörer damit zu unterhalten. Dabei blieb das eine oder andere Rätsel ungelöst. Doch die Stimmung wurde dadurch nicht getrübt. Der Abend war ein voller Erfolg. Es wurden neue Kontakte geknüpft und der beliebte Vortrag erneut präsentiert.</p>
<h2>Konferenzauftritte 2024</h2>
<p>Dies war der erste Vortrag der arelium im Jahr 2024. Im Hintergrund laufen bereits Planungen für viele weitere spannende Vorträge, die in diesem Jahr auf verschiedenen Konferenzen vorgestellt werden sollen. Weitere Informationen dazu folgen in den kommenden Wochen und Tagen auf unserer Eventseite.</p>
<p>Der Beitrag <a href="https://arelium.de/schach-in-t-sql-bei-der-pass-stuttgart/">arelium bei der PASS Stuttgart</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/schach-in-t-sql-bei-der-pass-stuttgart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Probleme in Datenbanken finden</title>
		<link>https://arelium.de/probleme-in-datenbanken-finden/</link>
					<comments>https://arelium.de/probleme-in-datenbanken-finden/#respond</comments>
		
		<dc:creator><![CDATA[Emil Vincazovic]]></dc:creator>
		<pubDate>Sun, 10 Mar 2024 10:31:34 +0000</pubDate>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Data Engineering]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=17644</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/probleme-in-datenbanken-finden/">Probleme in Datenbanken finden</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">In Zusammenarbeit mit Informatik Aktuell</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Jeder Datenbankentwickler oder – Benutzer kennt die üblichen Probleme: Abfragen, welche in der Vergangenheit reibungslos liefen, werden langsam, Zugriffe funktionieren nicht mehr, ehemalige Mitarbeiter haben ihr Fachwissen nicht weitergegeben oder fallen krankheitsbedingt aus etc. Man sitzt vor der Maschine und ist förmlich am Verzweifeln. Unser Projektleiter und Datenbankspezialist Torsten Ahlemeyer beleuchtet dieses Problem von der anderen Seite: Aus der Sicht des externen Beraters, welcher zur Problemlösung gerufen wurde. Der Beitrag „SQL-Probleme in fremden Datenbanken finden“ ist ab sofort bei der <a href="https://www.informatik-aktuell.de/" target="_blank" rel="noopener">Informatik Aktuell</a> zu lesen.</p>
</div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Lösen des Problems</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Die diversen Probleme, welche verschiedene Gründe und Ursprünge haben könnten, muss man nun lösen. Stichwörter, welche hier sofort in den Sinn kommen, sind Reverse Engineering und verschiedenste Testroutinen. Außerdem ist wichtig zu wissen, dass die Fehler immer am Code liegen. Die Datenbank entwickelt kein Eigenleben.</p>
<h2>Der Artikel</h2>
<p>Unser <span aria-describedby="tt" data-cmtooltip="&lt;div class=glossaryItemTitle&gt;Data Engineer&lt;/div&gt;&lt;div class=glossaryItemBody&gt;&amp;lt;section class=&amp;quot;l-section wpb_row height_small&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;l-section-h i-cf&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;wpb_column vc_column_container&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;vc_column-inner&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;wpb_text_column&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;wpb_wrapper&amp;quot;&amp;gt;Was ist ein Data Engineer?&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;w-separator size_medium&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;w-image align_none&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;w-image-h&amp;quot;&amp;gt;&amp;lt;img width=&amp;quot;1300&amp;quot; height=&amp;quot;400&amp;quot; src=&amp;quot;https://arelium.de/wp-content/uploads/2024/01/Data-Engineer-2.png&amp;quot; class=&amp;quot;attachment-us_1300_400 size-us_1300_400&amp;quot; alt=&amp;quot;Data Engineer&amp;quot; loading=&amp;quot;lazy&amp;quot; srcset=&amp;quot;https://arelium.de/wp-content/uploads/2024/01/Data-Engineer-2.png 1300w, https://arelium.de/wp-content/uploads/2024/01/Data-Engineer-2-300x92.png 300w, https://arelium.de/wp-content/uploads/2024/01/Data-Engineer-2-1024x315.png 1024w&amp;quot; sizes=&amp;quot;(max-width: 1300px) 100vw, 1300px&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;w-separator size_medium&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;wpb_text_column&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;wpb_wrapper&amp;quot;&amp;gt;Was ist Data Engineering?Data Engineering beschreibt die Prozesse in der IT-Abteilung eines Unternehmens, die sich um(...)&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/section&amp;gt;&lt;/div&gt;" data-gt-translate-attributes="&#091;{&quot;attribute&quot;:&quot;data-cmtooltip&quot;, &quot;format&quot;:&quot;html&quot;}&#093;">erfahrener Consultant</span> <a href="/team/">Torsten Ahlemeyer</a> liebt Rätsel. Die inzwischen deutschlandweit bekannten T-SQL Spielereien, welche er entwickelt hat, halten das Publikum immer auf Trab und sorgen für den ein oder anderen Lacher auf Konferenzen. Ob es die <a href="/downloads/">„Kopfnüsse mit T-SQL“</a>  oder ein „Schachspiel mit reinem T-SQL“ ist, die Herausforderungen sind immer riesig. So macht es dem Projektleiter auch Spaß, die Rätsel in fremden Datenbanken zu lösen. Und das kann er wie kein Zweiter.<br />
Der Artikel soll den Lesern vor allem einen neuen und anderen Blickwinkel auf die bekannten Probleme geben. Den <a href="https://www.informatik-aktuell.de/betrieb/datenbanken/sql-probleme-in-fremden-datenbanken-finden.html">ganzen Artikel</a> kann man sich auf der Informatik Aktuell Website durchlesen.</p>
<h2>Kontaktieren Sie uns</h2>
<p>Brauchen Sie Hilfe beim Lösen von Datenbankproblemen oder wollen Sie einfach eine Performanceoptimierung erwirken? Dann <a href="/kontakt/">kontaktieren Sie</a> uns noch heute! Wir unterstützen Sie gerne bei dem Lösen von Problemen und beim Umzug in die Cloud.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/probleme-in-datenbanken-finden/">Probleme in Datenbanken finden</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/probleme-in-datenbanken-finden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ETL in Azure Synapse Analytics</title>
		<link>https://arelium.de/etl-in-azure-synapse-analytics/</link>
		
		<dc:creator><![CDATA[Tobias Adler]]></dc:creator>
		<pubDate>Tue, 27 Feb 2024 08:52:44 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Synapse]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Data Engineering]]></category>
		<category><![CDATA[Data Lake]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[OneLake]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">https://arelium.de/?page_id=16853</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/etl-in-azure-synapse-analytics/">ETL in Azure Synapse Analytics</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><p>In modernen Unternehmen fallen täglich große Datenmengen aus verschiedenen internen und externen Quellen an. Um auf Basis dieser Daten geschäftskritische Entscheidungen treffen zu können, müssen die Daten in ein einheitliches Format gebracht werden. Dieser Prozess wird auch als <a href="https://learn.microsoft.com/de-de/azure/architecture/data-guide/relational-data/etl">ETL-Prozess</a> bezeichnet und gliedert sich in die folgenden drei Schritte. Extract (Extraktion der Rohdaten aus verschiedenen Quellen), Transform (Überführung der Rohdaten in ein einheitliches Format) und Load (zentrale Bereitstellung der Daten). In diesem Beitrag werde ich Schritt für Schritt erläutern, wie ein ETL in Azure Synapse Analytics implementiert werden kann.</p>
<h3><strong>Warum Daten in der Cloud und nicht Lokal speichern?</strong></h3>
</div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Warum immer mehr Unternehmen den Weg in die Cloud finden, zeigt eine Reihe von Vorteilen, die die Cloud bietet:</p>
<ul>
<li><strong>Skalierbarkeit:</strong> Die Cloud bietet die Möglichkeit, die Ressourcen an den eigenen Bedarf anzupassen, ohne Änderungen an der Infrastruktur vornehmen zu müssen.</li>
<li><strong>Kosteneffizienz:</strong> Da die Ressourcen an den eigenen Bedarf angepasst werden können, müssen Unternehmen keine Überkapazitäten vorhalten, um eine überdurchschnittliche Auslastung zu bewältigen. Stattdessen können die Ressourcen in solchen Fällen dynamisch erhöht werden, so dass nur die tatsächlich benötigte Kapazität bezahlt werden muss.</li>
<li><strong>Sicherheit: </strong><a href="https://www.microsoft.com/de-de">Microsoft</a> hat robuste Sicherheitsmaßnahmen wie zum Beispiel VPNs implementiert, um die Daten während der Übertragung zu schützen. Darüber hinaus bietet die <a href="https://azure.microsoft.com/de-de">Azure-Cloud</a> fortschrittliche Zugriffskontrollfunktionen, um sicherzustellen, dass nur autorisierte Benutzer auf die Daten zugreifen können.</li>
<li><strong>Flexibilität: </strong>Durch die Speicherung der Daten in der Cloud können die Mitarbeiterinnen und Mitarbeiter von überall auf die Daten zugreifen, solange sie über eine Internetverbindung verfügen. Zudem lassen sich Cloud-Dienste nahtlos in bestehende Systeme integrieren. Dadurch können Unternehmen ihre bestehenden Investitionen nutzen und neue Technologien schnell einführen, ohne komplexe Integrationen oder Anpassungen vornehmen zu müssen.</li>
</ul>
<h3><strong>ETL in Azure Synapse</strong></h3>
</div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p><a href="https://azure.microsoft.com/de-de/products/synapse-analytics">Azure Synapse</a> ist eine Cloud-basierte Datenanalyseplattform von Microsoft, die Datenverarbeitungs- und Analysedienste in einer einzigen Umgebung vereint. Sie ermöglicht es Unternehmen, große Mengen strukturierter und unstrukturierter Daten aus verschiedenen Quellen zu sammeln, zu speichern, zu verarbeiten und zu analysieren. In diesem Blogbeitrag werde ich den ETL-Prozess in Azure Synapse Analytics (Extract, Transform, Load) in Synapse anhand einer <a href="/glossar/azure/">Azure</a> SQL-Datenbank erläutern. In diesem Beispiel arbeite ich mit den Beispieldaten der <a href="https://azure.microsoft.com/de-de/products/azure-sql/database/">Azure SQL Datenbank</a>, die die Geschäftsdaten eines virtuellen Fahrradladens repräsentieren.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="585" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-4-1024x585.png" class="attachment-large size-large" alt="ETL in Synapse Bild 4" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-4-1024x585.png 1024w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-4-300x171.png 300w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-4-700x400.png 700w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Um einen ETL-Prozess in Azure Synapse Analytics zu implementieren, müssen wir zunächst einen <a href="https://learn.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-overview-what-is">Dedicated SQL Pool</a> einrichten. Der Dedicated SQL Pool (früher auch SQL Datawarehouse genannt) ist ein sogenanntes Massively Parallel Processing oder kurz MPP. Dabei handelt es sich um eine moderne Datenbankarchitektur, bei der eine große Anzahl von Prozessoren parallel arbeitet, um die Daten in kleinere Teile aufzuteilen und diese gleichzeitig zu verarbeiten. In diesem SQL-Pool werden wir später unsere Daten speichern.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="660" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-1-1024x660.png" class="attachment-large size-large" alt="ETL in Synapse Bild 1" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-1-1024x660.png 1024w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-1-300x193.png 300w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-1-621x400.png 621w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-1.png 1525w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h3><strong>Linked Service</strong></h3>
<p>Nun müssen wir in Synapse eine Verbindung zu unserer Azure Datenbank herstellen. Dazu klicken wir in der linken Menüleiste auf Manage und dann auf &#8222;<a href="https://learn.microsoft.com/de-de/azure/data-factory/concepts-linked-services?tabs=data-factory">Linked services</a>&#8222;. Wenn wir dann auf &#8222;New&#8220; klicken, öffnet sich ein Menü, in dem wir auswählen können, mit welcher externen Datenquelle wir uns verbinden möchten. Für unser Beispiel wählen wir &#8222;Azure SQL Database&#8220;.</p>
</div></div></div></div></div></div></section><section class="l-section wpb_row us_custom_e47f122d height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="w-separator size_small"></div><div class="w-hwrapper valign_top align_none"><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="647" height="1024" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-2-647x1024.png" class="attachment-large size-large" alt="ETL in Synapse Bild 2" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-2-647x1024.png 647w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-2-189x300.png 189w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-2-253x400.png 253w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-2.png 768w" sizes="auto, (max-width: 647px) 100vw, 647px" /></div></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="631" height="950" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-6.png" class="attachment-large size-large" alt="ETL in Synapse Bild 6" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-6.png 631w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-6-199x300.png 199w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-6-266x400.png 266w" sizes="auto, (max-width: 631px) 100vw, 631px" /></div></div></div><div class="w-separator size_small"></div><div class="w-hwrapper valign_top align_none"><div class="wpb_text_column us_custom_26c43283"><div class="wpb_wrapper"><p>Im nächsten Fenster können wir die Anmeldedaten für unsere SQL Datenbank angeben. Dazu muss die Azure Subscription der Datenbank angegeben werden, sowie der Servername und die gewünschte Art der Authentifizierung. Für dieses Beispiel habe ich die <a href="https://learn.microsoft.com/de-de/azure/synapse-analytics/sql/sql-authentication?tabs=serverless">SQL Authentication</a> gewählt, bei der man sich mit einem Benutzernamen und einem Passwort anmeldet. Nun könnt ihr unten rechts auf den Button &#8222;Test Connection&#8220; klicken, um zu testen, ob die Verbindung erfolgreich hergestellt werden kann. Ist dies der Fall, könnt ihr auf den &#8222;Create Button&#8220; klicken, um die Verbindung zu erstellen.</p>
</div></div><div class="wpb_text_column us_custom_26c43283"><div class="wpb_wrapper"><p>Auf die gleiche Weise können wir nun eine Verbindung zu unserem soeben erstellten SQL-Pool herstellen. Dazu erstellen wir wieder einen neuen Linked Service, wählen aber diesmal &#8222;<a href="/glossar/azure-synapse-analytics/">Azure Synapse Analytics</a>&#8220; aus der Liste der möglichen Verbindungen aus. Unter &#8222;Azure subscription&#8220; wählen wir wieder unsere Subscription und unter &#8222;Server name&#8220; unseren Synapse Workspace aus, in den wir die Daten schreiben wollen. Bei &#8222;SQL Pool&#8220; sollte automatisch unser gerade angelegter Dedicated SQL Pool erscheinen. Unter &#8222;Authentication Type&#8220; wählen wir nun die Option &#8222;<a href="https://learn.microsoft.com/de-de/entra/identity/managed-identities-azure-resources/overview">System Assigned Managed Identity</a>&#8222;. Dabei handelt es sich um einen Mechanismus in Microsoft Azure, mit dem Ressourcen innerhalb eines Azure Service eine Identität erhalten können. Diese Identität kann verwendet werden, um sicher auf andere Azure Ressourcen zuzugreifen, ohne Anmeldeinformationen wie Benutzername und Passwort einbinden zu müssen.</p>
</div></div></div><div class="w-separator size_small"></div></div></div><div class="wpb_column vc_column_container"><div class="vc_column-inner"></div></div></div></div></section><section class="l-section wpb_row us_custom_e4f3b373 height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><h3><strong>Copy Data Task</strong></h3>
<p>Nun können wir wieder mit dem &#8222;Test connection Button&#8220; testen, ob die Verbindung erfolgreich war. Ist dies der Fall, können wir wieder auf Create klicken, um den Linked Service zu erstellen. Nachdem der Linked Service erstellt wurde, kehren wir zum Ausgangsbildschirm zurück und können im linken Menü den Punkt &#8222;Integrate&#8220; und dann das Plus-Symbol auswählen, um eine neue &#8222;Copy Data Task&#8220; zu erstellen.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="769" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-3-1024x769.png" class="attachment-large size-large" alt="ETL in Synapse Bild 3" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-3-1024x769.png 1024w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-3-300x225.png 300w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-3-532x400.png 532w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-3.png 1625w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Im folgenden Assistenten können wir im zweiten Menüpunkt die Quelle angeben, aus der die Daten kopiert werden sollen. Dazu geben wir unter &#8222;Source type&#8220; wieder &#8222;Azure SQL Database&#8220; an und wählen unter &#8222;Connection&#8220; unseren zuvor erstellten &#8222;Linked service&#8220; aus. Wenn die Verbindung zur Datenbank erfolgreich war, werden nun im unteren Fenster alle Tabellen der Datenbank aufgelistet. Hier wähle ich nun alle Tabellen aus, die ich aus der Datenbank in Synapse importieren möchte. Auf der nächsten Seite kann nun unser zuvor erstellter Azure Synapse Linked Service als Ziel für unsere Daten ausgewählt werden.</p>
<h3><strong>Quell- und Zieltabellen mappen</strong></h3>
<p>Unter dem Punkt Dataset können nun die Tabellen ausgewählt werden, in die die Daten geschrieben werden sollen. Standardmäßig legt Synapse hier automatisch Tabellen im Ziel an, die genau so heißen wie in der Datenquelle und die gleichen Spaltentypen haben. Unter dem Punkt &#8222;Konfiguration&#8220; können nun die einzelnen Spalten aufeinander abgebildet werden. Auch hier legt Synapse automatisch die gleichen Spalten wie in der Quelltabelle an und mappt die passenden Spalten aufeinander. Wichtig ist hier, dass wir die Option &#8222;Type conversion&#8220; deaktivieren. Nachdem wir dies getan haben, können wir mit dem &#8222;Next Button&#8220; zum &#8222;Settings&#8220;-Bildschirm gelangen.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="774" height="842" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-8.png" class="attachment-large size-large" alt="ETL in Synapse Bild 8" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-8.png 774w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-8-276x300.png 276w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-8-368x400.png 368w" sizes="auto, (max-width: 774px) 100vw, 774px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Auf diesem Bildschirm kann unter anderem die Kopiermethode ausgewählt werden, mit der die Daten in die Quelle kopiert werden sollen. Mit der Option &#8222;Data consistency verification&#8220; werden nach dem Import der Daten zusätzliche Überprüfungsfunktionen angewendet, um sicherzustellen, dass alle Daten erfolgreich kopiert wurden. Unter anderem werden die Dateigrößen und die Anzahl der Zeilen in Quelle und Ziel verglichen. Da wir jedoch als Kopiermethode &#8222;Copy command&#8220; gewählt haben, können wir die Option &#8222;Data consistency verification&#8220; nicht aktivieren. Unter &#8222;Logging settings&#8220; können die Einstellungen für die Protokollierung während des Kopiervorgangs vorgenommen werden. Mit der Option &#8222;Storage connection name&#8220; können wir den Linked Service angeben, der die Verbindung zum Storage speichert, in dem die Logdateien gespeichert werden. Wenn ich auf &#8222;New&#8220; klicke, öffnet sich ein Fenster, in dem ich die Verbindung zum Storage erstellen kann.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="616" height="882" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-7.png" class="attachment-large size-large" alt="ETL in Synapse Bild 7" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-7.png 616w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-7-210x300.png 210w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-7-279x400.png 279w" sizes="auto, (max-width: 616px) 100vw, 616px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h3><strong>Azure Blob Storage</strong></h3>
<p>In diesem Fenster wird die Verbindung zu einem <a href="https://azure.microsoft.com/de-de/products/storage/blobs">Azure Blob Storage</a> definiert. Dazu wähle ich wieder meine Azure Subscription und einen Standard Storage Account meiner Subscription aus. Anschließend teste ich die Verbindung erneut und klicke auf &#8222;Create&#8220;.</p>
<p>Anschließend aktiviere ich noch die Option &#8222;Enable staging&#8220;. Dies ist der Storage account in dem die Staging Tabellen gespeichert werden und bei der Option &#8222;Storage connection name&#8220; kann der Linked Service für den &#8222;Staging Storage&#8220; angegeben werden. Die Staging Area ist ein temporärer Speicherbereich, in dem Daten vorübergehend zwischengespeichert werden, um sie zu transformieren oder zu überprüfen, bevor sie in die endgültige Datenbank geschrieben werden. Für das Staging wähle ich den gleichen Linked Service wie für die Speicherung der Logfiles. Wie oben beschrieben, wähle ich als Kopiermethode &#8222;Copy command&#8220;. Danach wähle ich &#8222;Next&#8220; und komme zum &#8222;Review and finish&#8220; Screen, wo wir unsere Einstellungen noch einmal überprüfen können. Danach können wir unser &#8222;Copy Data Tool&#8220; starten. Auf dem nächsten Bildschirm können wir sehen, welche Schritte des Deployments gerade ausgeführt werden und ob sie erfolgreich waren.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="471" src="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-9-1024x471.png" class="attachment-large size-large" alt="ETL in Synapse Bild 9" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-9-1024x471.png 1024w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-9-300x138.png 300w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-9-870x400.png 870w, https://arelium.de/wp-content/uploads/2024/02/ETL-in-Synapse-Bild-9.png 1303w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Wenn alle Schritte erfolgreich waren, haben wir unsere Pipeline erstellt, mit der wir Daten von einem Azure SQL Server in unseren Synapse Studio Workspace schreiben können. Der nächste Schritt wäre nun, einen <a href="https://learn.microsoft.com/de-de/azure/data-factory/concepts-pipeline-execution-triggers">Trigger</a> für die Pipeline zu erstellen. Ein Trigger kann eine Pipeline automatisch starten. Zum Beispiel könnten wir für unsere neue Pipeline einen Trigger einrichten, der die Pipeline automatisch einmal am Tag durchlaufen lässt. Und mit dieser Pipeline können wir einen automatischen ETL-Prozess in Azure Synapse Analytics abbilden.</p>
<h3><strong>ETL oder ELT?</strong></h3>
</div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>ETL (Extract, Transform, Load) und <a href="https://learn.microsoft.com/de-de/azure/synapse-analytics/sql-data-warehouse/design-elt-data-loading">ELT</a> (Extract, Load, Transform) sind zwei unterschiedliche Ansätze zur Datenintegration, die in Datenintegrationsprojekten verwendet werden. Der ETL-Transformationsprozess ermöglicht es Unternehmen, Daten zu bereinigen, zu harmonisieren und zu verbessern, um sie für die Verwendung in Data Warehouses oder anderen Zielspeichermedien vorzubereiten. Dazu gehört auch das Entfernen von Dubletten, so dass überflüssige Daten gar nicht erst in den Zielspeicher geladen werden müssen.</p>
<p>Beim ELT hingegen werden die Rohdaten in den Zielspeicher geladen, was das sogenannte Massively Parallel Processing oder kurz MPP ermöglicht. Dabei handelt es sich um eine moderne Architektur, bei der eine große Anzahl von Prozessoren parallel arbeitet. Dadurch werden die Daten in kleinere Teile aufgeteilt und können so gleichzeitig verarbeitet werden. Ein weiterer Vorteil von ELT ist die Flexibilität bei der Datentransformation. Da die Daten direkt in das Zielspeichermedium geladen werden, können Transformationen und Datenverarbeitungsschritte direkt auf die geladenen Daten angewendet werden. Dies ermöglicht es Unternehmen, komplexe Analysen und Berichte direkt auf den Rohdaten durchzuführen, ohne dass separate Transformationsschritte erforderlich sind.</p>
<p>Insgesamt bieten sowohl der ETL- als auch der ELT-Ansatz Vorteile für Datenintegrationsprojekte. Die Wahl zwischen beiden hängt von den spezifischen Anforderungen, der Arbeitslast und den Zielen eines Unternehmens ab. ETL bietet die Möglichkeit, Daten vor dem Laden in das Zielspeichermedium zu transformieren und zu bereinigen. ELT hingegen ermöglicht das direkte Laden von Daten, gefolgt von flexiblen Transformationen auf den Rohdaten. Letztendlich ist es wichtig, den Anwendungsfall sorgfältig zu prüfen, um die beste Lösung für die jeweiligen Anforderungen auszuwählen.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/etl-in-azure-synapse-analytics/">ETL in Azure Synapse Analytics</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wie Microsoft die Sprache „T-SQL“ weiterentwickelt</title>
		<link>https://arelium.de/neuerung-t-sql/</link>
					<comments>https://arelium.de/neuerung-t-sql/#respond</comments>
		
		<dc:creator><![CDATA[Torsten Ahlemeyer]]></dc:creator>
		<pubDate>Thu, 01 Feb 2024 10:04:34 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQl]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=16165</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/neuerung-t-sql/">Wie Microsoft die Sprache „T-SQL“ weiterentwickelt</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Neue Befehle kommen hinzu, andere fallen weg…</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Eine natürliche Sprache wie Deutsch unterliegt ständigem Wandel. Aktuell stehen fast 150.000 Stichworte im Duden. Pro Jahr kommen ca. 3000 neue Begriffe hinzu, 300 andere werden gestrichen. So fanden in den letzten Jahren bspw. Ausdrücke wie „Insektensterben“, „Klimakrise“, „aufploppen“, „Lifehack“, „Enkeltag“, „Faktenfinder“, „Uploadfilter“ oder „Wiesn“ Eingang in das offizielle Rechtschreibwörterbuch. Lebende Sprachen passen sich so an veränderte Gegebenheiten und neue Entwicklungen an. Aber auch Vereinfachungen finden immer wieder den Weg in den Standard.</p>
<p>Ähnlich halten es die Datenbankenhersteller mit dem Umfang der eingesetzten Abfrage- und Programmiersprache. Microsoft als Hersteller des SQL Servers beobachtet sehr genau Foren, führt Gespräche mit Entwicklern auf Konferenzen weltweit und wertet das Feedback aus der eigenen Erwachsenenbildung aus. So entwickelt sich ein Gefühl, welche Funktionalitäten gewünscht sind aber momentan noch fehlen oder welche Befehle in der aktuellen Version zu kompliziert sind. Aus dieser Grundlage heraus bildetet Microsoft dann die Neuerung in T-SQL.</p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Euer Wunsch ist unser Befehl</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>In den SQL Server 2022 haben so einige neue Befehle sehr zur Freude der Entwicklergemeinde Einzug erhalten. Im Gegenzug wurden einige wenige Ausdrücke als „auslaufend“ markiert. Sie werden in zukünftigen Versionen nicht mehr unterstützt. Eine <a href="https://learn.microsoft.com/de-de/sql/database-engine/discontinued-database-engine-functionality-in-sql-server?view=sql-server-ver16">genaue Auflistung</a> findet man auf den Hilfe- und Lernseiten des Unternehmens. In diesem Blogpost soll es aber um die neuen Möglichkeiten gehen. Ich habe mir zwei frische Befehle ausgesucht, um an ihnen beispielhaft zu zeigen, wie einfach nun Auswertungen werden, die vorher umständlich nachprogrammiert werden mussten.</p>
<p>Die Vorteile der neuen Befehle besteht allerdings nicht nur an der einfacheren Implementierung und der besseren Wartbarkeit von Quellcode, sondern oftmals wirken sie sich auch äußerst positiv auf das Laufzeitverhalten aus. Die Spezialisten von Microsoft haben hier nämlich die Möglichkeit der Optimierung (bspw. Parallelverarbeitung, Nutzung von Berechnungshardware, …) voll ausgenutzt und die Lösung ausführlich getestet. Bietet der Hersteller derartige Verbesserungen an, lohnt es sich sogar oft bestehenden Code nachträglich anzupassen. Auf jeden Fall sollte man aber zukünftig von diesen Optimierungen Gebrauch machen.</p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Daten aus dem Nichts generieren</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Oft kommen Entwickler in die Bedrängnis eine spezielle Liste von Werten zur Verfügung haben zu müssen. So sind bspw. alle Daten eines Geschäftsjahres in einer Tabelle sinnvoll, um darauf joinen und filtern zu können. Doch wie generiert man eine solche Datumstabelle? Bisher war diese Arbeit händisch zu programmieren – Lösungen bspw. zur Ablage einer Tabelle mit fortlaufend nummerierten Zahlwerten funktionierten analog. Ich selbst habe jahrelang die schnelle rekursive Variante bevorzugt:</p>
</div></div><div class="w-separator size_medium"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="606" height="277" src="https://arelium.de/wp-content/uploads/2024/02/t-SQL-Jahrestabelle-mit-Hilfe-einer-Rekursion.png" class="attachment-full size-full" alt="t-SQL Jahrestabelle mit Hilfe einer Rekursion" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/t-SQL-Jahrestabelle-mit-Hilfe-einer-Rekursion.png 606w, https://arelium.de/wp-content/uploads/2024/02/t-SQL-Jahrestabelle-mit-Hilfe-einer-Rekursion-300x137.png 300w" sizes="auto, (max-width: 606px) 100vw, 606px" /></div></div><div class="w-text us_custom_f86a7b6d"><span class="w-text-h"><span class="w-text-value">Beispielcode zur Erzeugung einer Jahrestabelle mit Hilfe einer Rekursion</span></span></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Microsoft hat erkannt, dass hier jeder Entwickler sein eigenes Süppchen kocht. Von einer unzähligen Sammlung INSERTS über diverse Schleifenkonstruktionen findet man in einschlägigen Foren viele Lösungen. Nun hat der Hersteller hier nachgebessert und die Generierung derartiger Folgen vereinheitlicht und deutlich vereinfacht:</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="103" src="https://arelium.de/wp-content/uploads/2024/02/t-SQL-GENERATE_SERIES--1024x103.png" class="attachment-large size-large" alt="t-SQL GENERATE_SERIES" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/t-SQL-GENERATE_SERIES--1024x103.png 1024w, https://arelium.de/wp-content/uploads/2024/02/t-SQL-GENERATE_SERIES--300x30.png 300w, https://arelium.de/wp-content/uploads/2024/02/t-SQL-GENERATE_SERIES--1300x130.png 1300w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-text us_custom_f86a7b6d"><span class="w-text-h"><span class="w-text-value">Der Befehl GENERATE_SERIES ist nicht nur für nummerische Werte hilfreich</span></span></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Eine Frage der Größe</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Auch mit den massenhaften Varianten der Größenvergleiche beschäftigt sich Microsoft mit Neuerung in T-SQL. Hier findet man bisher verschachtelte IF-Statements oder wüste WHERE-Blöcke mit aneinandergefügten Vergleichen. Da sich derartige Abfragen fachlich nicht direkt mit den Funktionen MIN() oder MAX() abbilden lassen (da diese nur Tabelleninhalte oder Inhalte von Tabellenwertvariablen vergleichen können), wurden die Funktionen GREATEST() und LEAST() geschaffen. Mit diesen kann man eine Auflistung von durch Komma getrennten Ausdrücken auswerten. Dabei darf es sich um bis zu 254 direkten Werte, Variablen oder Konstanten handeln. Möglich sind alle vergleichbaren Datentypen. Sogar Aggregatfunktionen und skalare Unterabfragen sind erlaubt.</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="94" src="https://arelium.de/wp-content/uploads/2024/02/T-SQL-die-Funktion-GREATEST-v02-1024x94.png" class="attachment-large size-large" alt="T-SQL die Funktion GREATEST" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2024/02/T-SQL-die-Funktion-GREATEST-v02-1024x94.png 1024w, https://arelium.de/wp-content/uploads/2024/02/T-SQL-die-Funktion-GREATEST-v02-300x27.png 300w, https://arelium.de/wp-content/uploads/2024/02/T-SQL-die-Funktion-GREATEST-v02-1300x119.png 1300w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="w-text us_custom_f86a7b6d"><span class="w-text-h"><span class="w-text-value">Die Funktion GREATEST() erlaubt sogar unterschiedliche Datentypen als Vergleichswerte</span></span></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Weitere Informationen finden sich in der Onlinedokumentation von Microsoft: <a href="https://learn.microsoft.com/de-de/sql/t-sql/functions/logical-functions-greatest-transact-sql?view=sql-server-ver16">https://learn.microsoft.com/de-de/sql/t-sql/functions/logical-functions-greatest-transact-sql?view=sql-server-ver16</a></p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Fazit</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Um die Gunst der Nutzer zu erlangen und zu behalten, entwickeln die Hersteller ihrer Produkte stets weiter. Auch Microsoft beobachtet den Markt genau und optimiert hier bestehende Befehle und schafft neue Möglichkeiten, wo altbewährtes nicht ausreicht oder zu komplex in der Entwicklung ist. Es lohnt sich definitiv einen Blick in die Featureliste neuer Versionen zu werfen und sich wohlwollend zu überlegen seinen Quellcode anzupassen. Neuentwicklungen sollte man auf jeden Fall nach den aktuellen Standards vornehmen. Im Idealfall lernt man also nie aus… was sich mit guten Laufzeitverhalten und bequemer Programmierung und Wartung niederschlägt – wie schon diese zwei einfachen Beispiele zeigen. Die Neuerung in T-SQL sollten dabei immer im Auge behalten werden. Wir haben auch einen <a href="/das-kniffelige-teilsummenproblem-mit-t-sql-geloest/">weiteren Artikel</a> zu spannenden Themen in SQL.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/neuerung-t-sql/">Wie Microsoft die Sprache „T-SQL“ weiterentwickelt</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/neuerung-t-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fortgeschrittene Join-Typen in SQL</title>
		<link>https://arelium.de/fortgeschrittene-join-typen-in-sql/</link>
					<comments>https://arelium.de/fortgeschrittene-join-typen-in-sql/#respond</comments>
		
		<dc:creator><![CDATA[Dr. Oliver Lux]]></dc:creator>
		<pubDate>Fri, 05 Jan 2024 06:00:15 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQl]]></category>
		<category><![CDATA[SQL-Join]]></category>
		<guid isPermaLink="false">https://arelium.de/?p=15251</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/fortgeschrittene-join-typen-in-sql/">Fortgeschrittene Join-Typen in SQL</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"></div></div></div></div></div></div></section><section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><p>In einem vorherigen Beitrag hatten wir uns die <a href="/sql-joins-die-grundlegenden-join-typen-in-sql/">grundlegenden Join-Typen in SQL</a> angesehen. Doch es gibt noch weitaus mehr Möglichkeiten, SQL-Tabellen miteinander zu verknüpfen. Daher werfen wir hier einen Blick auf fortgeschrittene Join-Typen. Wir empfehlen Ihnen, zuerst den <a href="/sql-joins-die-grundlegenden-join-typen-in-sql/">vorherigen Beitrag</a> zu SQL-Joins zu lesen. Dort findet sich auch eine Beschreibung der Beispieldaten, die wir hier wieder aufgreifen.</p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Left/Right Anti Join</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Beim Anti-Join möchte man alle Einträge aus der linken/rechten Tabellen anzeigen, die nicht in der jeweils anderen Tabelle enthalten sind. Die andere Tabelle wird also nur als Filter gebraucht.</p>
</div></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1024" height="320" src="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S4-1024x320.png" class="attachment-large size-large" alt="Left-/Right Anti Join" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S4-1024x320.png 1024w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S4-300x94.png 300w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S4-1282x400.png 1282w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S4.png 1397w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Dies kann zum Beispiel hilfreich sein, um in der Artikeltabelle Ladenhüter zu identifizieren, die nicht verkauft wurden. Dafür nutzen wir folgende Abfrage:</p>
<pre>SELECT ft.[PK_Transaktion], da.[Bezeichnung]
FROM [EinfacherHandel].[dbo].[FactTransaktionen] ft
RIGHT OUTER JOIN [dbo].[DimArtikel] da
ON ft.FK_Artikel = da.PK_Artikel
WHERE ft.FK_Artikel IS NULL</pre>
</div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Der Unterschied zum RIGHT OUTER JOIN ist also nur die letzte Zeile. Durch die WHERE-Klausel werden nur Artikel angezeigt, die in der Faktentabelle nicht enthalten sind. In dem Fall handelt es sich nur um den Toaster:</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="211" height="67" src="https://arelium.de/wp-content/uploads/2023/11/Result_AntiJoin.png" class="attachment-large size-large" alt="Ergebnis des Anti-Join" loading="lazy" /></div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Self Join</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Der Self Join verknüpft eine Tabelle mit sich selbst. Dies wird oft gebraucht, wenn sich unterschiedliche Hierarchie-Stufen in einer Tabelle befinden. Ein beliebtes Beispiel ist hierbei eine Mitarbeiter-Tabelle, wobei für jeden Mitarbeiter in einer zusätzlichen Spalte die ID des Vorgesetzten angegeben wird. Verknüpft man jeweils den Primärschlüssel mit der ID des Vorgesetzten, kann man für jeden Mitarbeiter den Namen des Vorgesetzten anzeigen.</p>
</div></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="542" height="437" src="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S5.png" class="attachment-large size-large" alt="Self Join" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S5.png 542w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S5-300x242.png 300w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S5-496x400.png 496w" sizes="auto, (max-width: 542px) 100vw, 542px" /></div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Wir wollen aber bei unserem Beispiel bleiben und einen Eindruck vermitteln, was mit dem Self Join noch möglich ist. Dazu stellen wir uns vor, dass unser Beispiel-Händler in einer fragwürdigen Rabatt-Aktion die Preise der Produkte aus der DimArtikel vertauschen will. Mit der folgenden Anweisung lässt sich jedem Artikel der Preis des jeweils vorherigen Artikels aus der Liste zuordnen:</p>
<pre>SELECT da1.PK_Artikel, da1.Bezeichnung, da1.Preis [alter Preis], da2.Preis [neuer Preis]
FROM [dbo].[DimArtikel] da1
LEFT OUTER JOIN [dbo].[DimArtikel] da2
ON da1.PK_Artikel = da2.PK_Artikel + 1</pre>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="314" height="200" src="https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin.png" class="attachment-large size-large" alt="Ergebnis des Self Join" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin.png 314w, https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin-300x191.png 300w" sizes="auto, (max-width: 314px) 100vw, 314px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Dem Fahrrad lässt sich kein neuer Preis zuordnen, da es der erste Artikel in der Tabelle ist. Außerdem werden die Kunden vermutlich wenig Verständnis haben, wenn ein Fußball plötzlich 699€ kostet. Will man die Zuordnungen besser steuern, kann man eine zusätzliche Spalte anlegen, in die wir die passende ID schreiben. Dazu haben wir eine neue Tabelle DimArtikelPreise angelegt mit der Spalte TauschID. Wir erstellen folgende Abfrage:</p>
<pre>SELECT da1.PK_Artikel, da1.Bezeichnung, da1.Preis [alter Preis], da1.TauschID, da2.Preis [neuer Preis]
FROM [dbo].[DimArtikelPreise] da1
INNER JOIN [dbo].[DimArtikelPreise] da2
ON da1.TauschID = da2.PK_Artikel</pre>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="378" height="201" src="https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin2.png" class="attachment-large size-large" alt="Ergebnis des Self Join mit Tausch-Spalte" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin2.png 378w, https://arelium.de/wp-content/uploads/2023/11/Result_SelfJoin2-300x160.png 300w" sizes="auto, (max-width: 378px) 100vw, 378px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Nun sehen wir, dass wir mithilfe der Spalte „TauschID“ angeben können, welcher Preis aus der Artikel-Tabelle dem jeweiligen Artikel neu zugeordnet werden soll. Dies ist das gleiche Prinzip, als wenn wir für Mitarbeiter ihre Vorgesetzten angeben. Statt der Spalte „TauschID“ hätten wir hier dann die IDs der Vorgesetzten, und statt „neuer Preis“ hätten wir die Namen.</p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Cross Join</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Fortgeschrittene Join-Typen haben einige Besonderheiten und das gilt auch für den Cross-Join. Bei diesem wird nicht nach passenden Schlüsseln gesucht, sondern es wird für jeden Eintrag aus der linken Tabelle jeder Eintrag aus der rechten aufgeführt. Die Zeilenzahl der Ergebnis-Tabelle entspricht also dem Produkt der Zeilenzahlen der Einzeltabellen. Den Cross-Join verwendet man in der Praxis eher selten. Bei <a href="/glossar/relationale-datenbank/">relationalen Datenbanken</a> würde man damit <a href="https://de.wikipedia.org/wiki/Redundanz_(Informationstheorie)" target="_blank" rel="noopener">redundante Ergebnisse</a> erzeugen.</p>
</div></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="672" height="427" src="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S6.png" class="attachment-large size-large" alt="Cross Join" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S6.png 672w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S6-300x191.png 300w, https://arelium.de/wp-content/uploads/2023/11/Bilder_SQL_Joins_S6-630x400.png 630w" sizes="auto, (max-width: 672px) 100vw, 672px" /></div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Dennoch gibt es Beispiele, wo der Cross Join von Nutzen ist. Bei unserem Beispiel könnten wir uns vorstellen, dass jeder Artikel in verschiedenen Farben erhältlich ist, für die wir eine neue Tabelle DimArtikelfarbe_Faktor angelegt haben:</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="221" height="101" src="https://arelium.de/wp-content/uploads/2023/11/DimArtikelfarbe_Faktor.png" class="attachment-large size-large" alt="Tabelle DimArtikelfarbe_Faktor" loading="lazy" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>In der dritten Spalte geben wir einen Faktor an, über den wir den Preis anpassen wollen. Nun führen wir folgenden Cross Join aus:</p>
<pre>SELECT da.PK_Artikel, da.Bezeichnung, daf.Farbe, da.Preis * daf.Faktor [Preis]
FROM DimArtikel da
CROSS JOIN DimArtikelfarbe_Faktor daf
WHERE da. PK_Artikel NOT IN (3, 4, 7)</pre>
<p>Da man jede Zeile mit jeder verknüpft, brauchen wir, im Gegensatz zu den anderen Join-Typen, keine ON-Klausel. Über eine WHERE-Klausel entfernen wir noch jene Artikel, für die die Farbauswahl wenig Sinn macht. Wir erhalten:</p>
</div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="282" height="325" src="https://arelium.de/wp-content/uploads/2023/11/Result_CrossJoin_Faktor.png" class="attachment-large size-large" alt="Ergebnis des Cross Join" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/11/Result_CrossJoin_Faktor.png 282w, https://arelium.de/wp-content/uploads/2023/11/Result_CrossJoin_Faktor-260x300.png 260w" sizes="auto, (max-width: 282px) 100vw, 282px" /></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>In der vierten Spalte sehen wir das Ergebnis der Multiplikation. Die Preise für die schwarzen Artikel sind die gleichen wie vorher, die grauen Artikel sind um 10% günstiger und dir roten um 20% teurer.</p>
<p>Die Erhöhung der Redundanz kann also durchaus gewollt sein, wenn wir eine detailliertere Ansicht wünschen. Auch der Cross-Join hat also seine Daseinsberechtigung, selbst in relationalen Datenbanken.</p>
</div></div><div class="w-separator size_small"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Fazit</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>In diesem Beitrag haben wir fortgeschrittene Join-Typen kennengelernt und damit einen kleinen Einblick erhalten, was T-SQL für eine <a href="/t-sql-am-beispiel-schiffeversenken/">Vielzahl an Möglichkeiten</a> bietet, um mit Daten zu arbeiten. Neben dem grundsätzlichen Aufbau haben wir am Beispiel des Self Join auch gesehen, dass sich Join-Bedingungen individuell verändern lassen. Darüber hinaus gibt es auch Fälle, in denen man mehrere Join-Bedingungen braucht, z.B. wenn die Tabellen keine eindeutige Schlüsselspalte haben. Während für einfache Abfragen meist die grundlegenden SQL-Joins ausreichen, sind die fortgeschrittenen SQL-Joins für anspruchsvollere Analysen sowie zur Datenbank-Entwicklung ein sehr mächtiges Werkzeug, sowohl on-premise als auch mit Azure SQL.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/fortgeschrittene-join-typen-in-sql/">Fortgeschrittene Join-Typen in SQL</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/fortgeschrittene-join-typen-in-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Data Architecture</title>
		<link>https://arelium.de/data-architecture/</link>
		
		<dc:creator><![CDATA[Joel Galla]]></dc:creator>
		<pubDate>Fri, 07 Jul 2023 05:56:29 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Data Engineering]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">https://arelium.de/?page_id=14482</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/data-architecture/">Data Architecture</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<section class="l-section wpb_row height_auto"><div class="l-section-h i-cf"><div class="g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default"><div class="wpb_column vc_column_container"><div class="vc_column-inner"><div class="wpb_text_column"><div class="wpb_wrapper"><p>Daten Architektur oder englisch auch Data Architecture beschreibt wie Daten in einem Unternehmen organisiert, strukturiert und verwaltet sind. Sie umfasst den Entwurf von Datenmodellen, die Festlegung von Datenstandards und -richtlinien sowie die Definition von Datenintegrations-, Datenspeicherungs- und Datenverarbeitungsprozessen. Data Architecture gibt den Rahmen vor, wie Daten erfasst, gespeichert, verwaltet und genutzt werden, um die Geschäftsziele einer Organisation zu unterstützen. Eine gut durchdachte Datenarchitektur bildet eine solide Grundlage für Datenintegrität, effiziente Datenverarbeitung, einfache Datenanalyse und Berichterstattung. Sie ermöglicht eine bessere Zusammenarbeit und Nutzung von Informationen im Unternehmen und erleichtert die Anpassung an sich ändernde Geschäftsanforderungen. Sie besteht aus verschiedenen Stufen dabei werden Daten zuerst erfasst und organisiert, über eine ETL Strecke bereinigt und anschließend ausgewertet.</p>
</div></div><div class="w-separator size_medium"></div><div class="w-hwrapper valign_top align_none"><div class="wpb_text_column"><div class="wpb_wrapper"><p>Dabei ist zu beachten, dass die genaue Ausgestaltung der Datenarchitektur von den spezifischen Anforderungen, der Größe des Unternehmens und den verfügbaren Ressourcen abhängt. Datenarchitekten arbeiten eng mit Datenbankadministratoren, Entwicklern und Analytikern zusammen, um eine optimale Datenarchitektur zu entwerfen und umzusetzen.<br />
Beim Entwurf und der Implementierung einer Datenarchitektur werden verschiedene Technologien und Werkzeuge verwendet, um Datenmanagement, Datenintegration und Datenanalyse zu unterstützen.</p>
</div></div><div class="w-image us_custom_22470e8b align_none"><div class="w-image-h"><img decoding="async" width="256" height="256" src="https://arelium.de/wp-content/uploads/2023/03/kompass.png" class="attachment-large size-large" alt="Datenarchitektur" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/03/kompass.png 256w, https://arelium.de/wp-content/uploads/2023/03/kompass-150x150.png 150w" sizes="auto, (max-width: 256px) 100vw, 256px" /></div></div><div class="w-separator size_medium"></div></div><div class="w-separator size_small"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>Was sind die Bestandteile?</strong></span></h4>
<p>Datenbankmanagementsysteme (DBMS): Man verwendet DBMS-Technologien wie Microsoft SQL Server, MySQL und MongoDB , um Daten zu speichern, zu organisieren und zu verwalten. Den Einsatz dieser Datenbankmanagementsysteme findet man in vielen Anwendungsbereichen. Sie sind für die effiziente Verwaltung von Daten von großer Bedeutung. Datenbanken bieten eine strukturierte Methode zur Organisation und Speicherung großer Datenmengen. Um Daten logisch und effizient zu organisieren, ermöglichen sie die Erstellung von Tabellen, Beziehungen und Schemata. Darüber hinaus können sie Mechanismen bereitstellen, um die Integrität und Konsistenz der Daten zu gewährleisten. Um sicherzustellen, dass die Daten in der Datenbank korrekt und konsistent sind, kann man Regeln, Einschränkungen und Validierungen definieren. Eine leistungsfähige Abfragesprache (z.B. SQL) ermöglicht komplexe Abfragen und Analysen der Daten. Dadurch ist es möglich Informationen zu extrahieren, Geschäftsfragen zu beantworten und Berichte und Analysen zu erstellen.</p>
<p>In einer Daten Architektur verwendet man zudem ETL-Tools wie z.B. Azure Synapse oder Microsoft SQL Server Integration Services (SSIS) verwendet, um Daten aus verschiedenen Quellen zu extrahieren, zu transformieren und in das Zielsystem zu laden. Wenn Sie wissen wollen, schauen Sie sich doch unseren <a href="/azure-synapse-analytics/">Synapse-Beitrag</a> an.</p>
<p>Am Ende einer guten Daten Architektur steht die Datenvisualisierung. Hier können Sie z.B. <a href="/power-bi/">Power BI</a> benutzen über das wir auch schon einige Beiträge geschrieben haben. Diese Tools ermöglichen die Visualisierung von Daten und die Erstellung von interaktiven Dashboards und Berichten. Sie unterstützen die Analyse und Darstellung von Daten auf verständliche Weise.</p>
</div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">ETL</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>ETL steht für &#8222;Extraction, Transformation and Loading&#8220; und bezeichnet den Prozess der Aufbereitung und Integration von Daten in ein Data Warehouse. ETL ist ein wesentlicher Bestandteil des Datenmanagementprozesses und ermöglicht die Überführung von Daten aus unterschiedlichen Quellen in ein einheitliches und konsistentes Format, das man für Analysen, Berichte und andere Geschäftsprozesse verwenden kann.</p>
<p>In der Extraktionsphase sammelnt man Daten aus verschiedenen Quellen und üerträgt diese in das ETL-System. Die Quellen können interne Datenbanken, externe Systeme oder andere Datenquellen sein. Die Extraktion kann auf unterschiedliche Weise erfolgen, z.B. durch Datenbankabfragen, Dateiimporte oder Web Scraping. Nach der Extraktion beginnt die Transformation der Daten. Dies geschieht um die Daten in das gewünschte Format zu bringen und sie an die Anforderungen des Data Warehouse oder der Zielumgebung anzupassen. Dieser Schritt umfasst verschiedene Aufgaben wie Datenbereinigung, Filterung oder die Zusammenführung von Daten aus verschiedenen Quellen. Die Transformation stellt sicher, dass die Datenqualität steigt, man inkonsistente Daten harmonisiert und die Daten in einer einheitlichen Struktur vorliegen.<br />
Beim Laden überträgt man die transformierten Daten in das Data Warehouse oder die Zielumgebung. Dies kann eine relationale Datenbank, ein Data Warehouse oder eine andere analytische Plattform sein. Beim Laden der Daten muss man verschiedene Aspekte berücksichtigen, wie z. B. das Schema-Design des Zielsystems, die Optimierung der Ladeleistung und die Aktualisierung vorhandener Daten oder das Hinzufügen neuer Daten.</p>
</div></div><div class="w-separator size_medium"></div><div class="w-hwrapper valign_top align_none"><div class="wpb_text_column us_custom_2416bfe9"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>Sternschema</strong></span></h4>
<p>Das Sternschema ist ein Datenmodell für Data Warehousing, bei dem eine zentrale Faktentabelle (fact table) von mehreren Dimensionstabellen (dimension tables) umgeben ist. Das Sternschema zeichnet sich durch seine einfache und dennoch leistungsfähige Struktur aus. Die Faktentabelle enthält Messwerte oder Kennzahlen, während die Dimensionstabellen Attribute oder Dimensionen darstellen, die diese Messwerte beschreiben. Der Name Sternschema kommt daher, dass die Struktur einem Stern ähnelt, bei dem die Faktentabelle im Zentrum steht und die Dimensionstabellen die Strahlen des Sterns bilden.</p>
</div></div><div class="wpb_text_column us_custom_2416bfe9"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>Schneeflockenschema</strong></span></h4>
<p>Das Schneeflockenschema ist ebenfalls ein Datenmodell für Data Warehousing und stellt eine Erweiterung des Sternschemas dar. Im Schneeflockenschema normalisiert man die Dimensionstabellen, durch zusätzliche Tabellen für sich wiederholende Attribute oder hierarchische Strukturen, weiter. Dadurch wird die Datenbankstruktur komplexer, da die Dimensionstabellen in mehrere Tabellen aufgeteilt werden können. Der Name &#8222;Schneeflocke&#8220; leitet sich von der äußeren Form ab, die durch die zusätzlichen Verzweigungen entsteht.</p>
</div></div></div><div class="w-separator size_small"></div><div class="w-image align_center"><div class="w-image-h"><img decoding="async" width="1300" height="250" src="https://arelium.de/wp-content/uploads/2023/05/Stern-vs-schneeflocke.png" class="attachment-us_1300_400 size-us_1300_400" alt="Stern vs schneeflocke" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/05/Stern-vs-schneeflocke.png 1300w, https://arelium.de/wp-content/uploads/2023/05/Stern-vs-schneeflocke-300x58.png 300w, https://arelium.de/wp-content/uploads/2023/05/Stern-vs-schneeflocke-1024x197.png 1024w" sizes="auto, (max-width: 1300px) 100vw, 1300px" /></div></div><div class="w-separator size_medium"></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Der ETL-Prozess erfordert häufig den Einsatz spezieller ETL-Tools oder -Plattformen, die Funktionen zur Automatisierung und Steuerung des gesamten Prozesses bieten. Diese Tools erleichtern die Extraktion, Transformation und das Laden von Daten durch benutzerfreundliche Schnittstellen, Visualisierungstools, Workflow-Management, Fehlerbehandlung und Überwachungsfunktionen.</p>
<p>Der ETL-Prozess ist entscheidend, um Daten aus verschiedenen Quellen zu integrieren, bereitzustellen und für Analysen und Berichte aufzubereiten. Er gewährleistet die Konsistenz, Qualität und Verfügbarkeit der Daten im Data Warehouse oder in der Zielumgebung und ermöglicht es Unternehmen, fundierte Entscheidungen auf der Grundlage zuverlässiger Daten zu treffen.</p>
</div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Data Warehouse</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Ein Data Warehouse ist eine spezielle Art von Datenbank, die entwickelt wurde, um große Datenmengen aus verschiedenen Quellen zu sammeln, zu organisieren und für Analyse- und Berichtszwecke verfügbar zu machen. Es dient als zentraler Speicherort für historische, aktuelle und potenziell zukünftige Daten, die eine Organisation sammelt. Es folgt auf die Stage, die selbst eine weniger strukturierte Datenbank ist.</p>
<p>Das Hauptziel eines Data Warehouse ist es, einen umfassenden Überblick über die Daten einer Organisation zu geben. Ein Data Warehouse ermöglicht die Integration von Daten aus verschiedenen internen und externen Quellen wie operativen Systemen, Datenbanken, Dateien, Cloud-Diensten und mehr. Es ermöglicht die Konsolidierung von Daten, die ansonsten in isolierten Silos gespeichert wären. Vor dem Laden in das Data Warehouse werden die Daten bereinigt, transformiert und harmonisiert, um eine einheitliche Datenbasis zu schaffen. Dazu gehören die Entfernung von Dubletten, die Standardisierung von Formaten, die Korrektur von Fehlern und die Anwendung von Geschäftsregeln, um die Qualität und Konsistenz der Daten zu gewährleisten. Data Warehouses speichern nicht nur aktuelle Daten, sondern auch historische Daten über einen längeren Zeitraum. Dies ermöglicht es den Nutzern, Daten im zeitlichen Kontext zu analysieren und Trends, Muster und Veränderungen im Laufe der Zeit zu erkennen.</p>
</div></div><div class="w-separator size_small"></div><div class="w-hwrapper valign_top align_none"><div class="w-separator size_medium"></div><div class="w-image us_custom_22470e8b align_none"><div class="w-image-h"><img decoding="async" width="512" height="512" src="https://arelium.de/wp-content/uploads/2023/02/Data-Warehouse.png" class="attachment-large size-large" alt="icon-data-warehouse" loading="lazy" srcset="https://arelium.de/wp-content/uploads/2023/02/Data-Warehouse.png 512w, https://arelium.de/wp-content/uploads/2023/02/Data-Warehouse-300x300.png 300w, https://arelium.de/wp-content/uploads/2023/02/Data-Warehouse-150x150.png 150w" sizes="auto, (max-width: 512px) 100vw, 512px" /></div></div><div class="wpb_text_column"><div class="wpb_wrapper"><p>Data Warehouses verwenden häufig ein dimensionales Modell wie das Sternschema, um die Daten zu organisieren. Dieses Modell wurde oben schon erwähnt und es besteht aus Faktentabellen, die numerische Messungen enthalten, und Dimensionstabellen, die Kontextinformationen liefern. Dies erleichtert die Analyse und ermöglicht einfache Abfragen über verschiedene Dimensionen hinweg. Data Warehouses sind so konzipiert, dass komplexe Abfragen und Analysen effizient durchgeführt werden können. Durch Indizierung, Partitionierung und andere Techniken wird die Abfrageleistung optimiert, um schnelle Antwortzeiten auf komplexe Analyseanfragen zu gewährleisten. Ein Data Warehouse bietet Werkzeuge und Funktionen, um Daten für Reporting und Analyse zugänglich zu machen. Dazu gehören Dashboards, OLAP-Cubes, Datenvisualisierungstools und Business Intelligence-Plattformen, die es den Nutzern ermöglichen, Daten zu analysieren, Trends zu erkennen und fundierte Entscheidungen zu treffen. Mit einem Data Warehouse können Unternehmen wertvolle Einblicke gewinnen, datengestützte Entscheidungen treffen und ihre betriebliche Leistung verbessern.</p>
</div></div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">On Premise, Cloud oder Hybrid?</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Früher wurde die gesamte Architektur standardmäßig on-premise aufgebaut Dies hat sich mit dem Zuwachs der Cloud berändert. Cloud-Lösungen gewinnen an Beliebtheit. Für viele Unternehmen sind jedoch Hybridlösungen nach wie vor die beste Lösung.</p>
</div></div><div class="w-separator size_medium"></div><div class="w-hwrapper valign_top align_none"><div class="wpb_text_column"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>On-premise</strong></span></h4>
<p>Hier liegt die gesamte Architektur auf einem Server, den man selbst verwaltet. Klassischerweise handelt es sich dabei um einen Serverraum im Firmengebäude. On-Premise-Implementierungen werden häufig von Unternehmen gewählt, die besondere Sicherheits- oder Datenschutzanforderungen haben, die eine lokale Speicherung und Kontrolle ihrer Daten erfordern.</p>
</div></div><div class="wpb_text_column"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>Cloud</strong></span></h4>
<p>Mittlerweile gibt es mehrere Cloud-Anbieter, wir selbst arbeiten vor allem mit der Microsoft Cloud &#8222;Azure&#8220;. Statt Daten oder Anwendungen lokal auf einem Gerät oder Server zu speichern, verwahrt man diese in der Cloud auf und ruft sie über das Internet ab. Die Server werden also zentral verwaltet und ein Unternehmen mietet quasi nur einen Teil davon.</p>
</div></div></div><div class="w-separator size_medium"></div><div class="wpb_text_column"><div class="wpb_wrapper"><h4><span style="color: #b71234;"><strong>Hybrid</strong></span></h4>
<p>Eine hybride Datenarchitektur bezieht sich auf einen Ansatz für das Datenmanagement, der Elemente sowohl lokaler als auch Cloud-basierter Lösungen kombiniert, um die Anforderungen einer Organisation an die Speicherung, Verarbeitung und Integration von Daten zu erfüllen. Dies beinhaltet die Integration von Datensystemen und -infrastrukturen über verschiedene Umgebungen hinweg, z. B. private Rechenzentren, öffentliche Clouds und Edge-Computing-Geräte.</p>
<p>Die hybride Datenarchitektur erkennt an, dass verschiedene Arten von Daten und Arbeitslasten unterschiedliche Anforderungen an Skalierbarkeit, Sicherheit, Leistung und Kosten haben können. Durch die Nutzung sowohl lokaler als auch Cloud-basierter Ressourcen können Organisationen ein ausgewogenes Verhältnis zwischen Flexibilität, Kontrolle und Skalierbarkeit erreichen.</p>
</div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Datenanalyse</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Advanced Analytics und Deep Learning sind zwei Begriffe aus dem Bereich des maschinellen Lernens und der künstlichen Intelligenz, die sich mit der Verarbeitung und Analyse komplexer Daten beschäftigen. Um mehr über Data Analytics zu lernen sollten Sie unseren anderen <a href="/data-analytics-wiki/">Blogbeitrag</a> lesen. Die Datenanalyse ist der letzte Schritt in der Architektur. Selbstverständlich gehören hier einige statistische Analysetools dazu.</p>
<h4><span style="color: #b71234;"><strong>Machine Learning</strong></span></h4>
<p>Machine Learning ist ein Teil der Künstlichen Intelligenz und beschreibt die Möglichkeit Maschinen so zu trainieren, dass sie Muster erkennen können und so Vorhersagen zu erstellen. Eine benutzerfreundliche Möglichkeit ist z.B. das Machine Learning Studio dazu gibt es auf unserem YouTube-Kanal eine <a href="https://www.youtube.com/watch?v=9A9yca2gfCk&amp;list=PLZKKJro0Lb2kd8o8mX8F50YM-FBYT_LfV&amp;ab_channel=areliumGmbH">Videoreihe</a>. Wenn Ihnen lesen lieber ist haben wir auch einen <a href="/azure-machine-learning-studio/">Blogbeitrag</a>.</p>
<p>Deep Learning: Deep Learning ist ein Teilgebiet des maschinellen Lernens, das sich mit dem Aufbau und dem Training neuronaler Netze beschäftigt. Neuronale Netze sind computergestützte Modelle, die der Funktionsweise des menschlichen Gehirns nachempfunden sind und in der Lage sind, komplexe Muster in großen Datenmengen zu erkennen und zu lernen. Deep Learning basiert auf mehreren Schichten von Neuronen, die Informationen verarbeiten und abstrakte Darstellungen von Daten lernen können.</p>
<h4><span style="color: #b71234;"><strong>Datenvisualisierung</strong></span></h4>
<p>Für die Analyse von Daten ist die Visualisierung unabdingbar. Oft kann man Muster erst erkennen wenn man sie in einem Graphen sieht. Durch moderne Tools wie Power BI ist z.B. möglich die Visualisierung interaktiv zu gestalten und so die Analysetiefe und Geschwindigkeit zu erhöhen. Zu Power BI haben wir zufälligerweise auch schon einen <a href="/power-bi/">Blogbeitrag</a> geschrieben.</p>
</div></div><div class="w-separator size_medium"></div><h2 class="w-text"><span class="w-text-h"><span class="w-text-value">Unsere Spezialisten</span></span></h2><div class="wpb_text_column"><div class="wpb_wrapper"><p>Wir bei arelium haben mehr als ein Jahrzehnt Erfahrung in der Entwicklung von Data Architecture Lösungen. Im Laufe unserer Arbeit haben wir unzählige Architekturen entwickelt. In verschiedenen Projekten haben wir sowohl ETL-Prozesse als auch Data Warehouses aufgebaut. Wenn Sie neugierig geworden sind sprechen Sie uns gerne an. Wir helfen Ihnen zu verstehen wie Sie optimal von dieser Technologie profitieren können.</p>
</div></div></div></div></div></div></section>
<p>Der Beitrag <a href="https://arelium.de/data-architecture/">Data Architecture</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server 2022</title>
		<link>https://arelium.de/sql-server-2022/</link>
					<comments>https://arelium.de/sql-server-2022/#respond</comments>
		
		<dc:creator><![CDATA[Torsten Ahlemeyer]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 11:00:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Synapse]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Azure Purview]]></category>
		<guid isPermaLink="false">https://www.arelium.de/?p=10125</guid>

					<description><![CDATA[<p>Der Beitrag <a href="https://arelium.de/sql-server-2022/">SQL Server 2022</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb_text_column"><div class="wpb_wrapper"><h2>SQL Server 2022</h2>
<p>Microsoft hat am 16. November letzten Jahres den SQL SERVER 2022 zum allgemeinen Download bereitgestellt. Das neue Produkt setzt eine über 30-jährige Tradition dieses Datenbankproduktes fort und wartet mit vielen Neuerungen und Verbesserungen auf:</p>
<h2>1. Flexibilität</h2>
<p>Durch die Kombination des SQL-Server 2022 mit Azure ergibt sich ein Anstieg im Bestehen der Geschäftskontinuität. Man kann Ausfälle in den Datenbanken nun dank Katastrophenwiederherstellung vermeiden.</p>
<p><strong>neues Feature: die Katastrophenwiederherstellung</strong></p>
<p>Dabei handelt es sich um einen Prozess, bei dem man Daten, Anwendungen und IT-Systeme nach einem Ausfall oder einer Katastrophe restoren kann. Die Katastrophenwiederherstellung hat das Ziel, eventuelle Auswirkungen eines Ausfalls auf das Geschäft zu minimieren und die Verfügbarkeit der IT-Systeme schnell wiederherzustellen. Das Ziel sind dabei nicht nur die Verfügbarkeit der Daten, sondern auch die Sicherstellung der Kommunikation und die Aufrechterhaltung von Geschäftsprozessen. Hierfür  liegen verschiedene Lösungsansätze vor. Ein Beispiel ist die Verwendung von Backups oder die Nutzung von Cloud-Lösungen, die Microsoft anbietet.</p>
<p>Die Katastrophenwiederherstellung erfolgt dabei als Link Feature in der Azure SQL Server Managed Instance. Mit dieser neuen Funktion profitiert man von einer PaaS (Platform-as-a-Service) -Umgebung. Dadurch instanziieren Benutzer mithilfe der SQL-Managed Instance ein Objekt, welches es Anwendern ermöglicht, ohne weitere Einrichtung den SQL-Server zu verwenden.</p>
<p><strong>neues Feature: Integration in Azure Purview</strong><img loading="lazy" decoding="async" class="alignright wp-image-13411" src="https://arelium.de/wp-content/uploads/2023/03/Azure-Purview-1-300x300.png" alt="Azure Purview Icon" width="154" height="154" srcset="https://arelium.de/wp-content/uploads/2023/03/Azure-Purview-1-300x300.png 300w, https://arelium.de/wp-content/uploads/2023/03/Azure-Purview-1-150x150.png 150w, https://arelium.de/wp-content/uploads/2023/03/Azure-Purview-1-400x400.png 400w, https://arelium.de/wp-content/uploads/2023/03/Azure-Purview-1.png 450w" sizes="auto, (max-width: 154px) 100vw, 154px" /></p>
<p>Ein weiteres Feature ist die Integration des SQL-Server 2022 in <a href="https://azure.microsoft.com/de-de/products/purview" target="_blank" rel="noopener">Azure Purview</a>. Diese Integration liefert einen besseren Überblick über die Daten. Dadurch ist man in der Lage, Metadaten des SQL-Servers zu erfassen und deren Nutzung zu automatisieren. Ebenso können sie Zugriffsrechte zuweisen und so eine bessere Kontrolle erhalten.</p>
<p><img loading="lazy" decoding="async" class="wp-image-12518 alignleft" src="https://arelium.de/wp-content/uploads/2023/03/Synapse-Logo-freigestellt.png" alt="Synapse Logo freigestellt" width="154" height="154" srcset="https://arelium.de/wp-content/uploads/2023/03/Synapse-Logo-freigestellt.png 300w, https://arelium.de/wp-content/uploads/2023/03/Synapse-Logo-freigestellt-150x150.png 150w" sizes="auto, (max-width: 154px) 100vw, 154px" /></p>
<h2 style="text-align: right;">2. Schnelle Analysen</h2>
<p style="text-align: right;">Der SQL-Server 2022 bietet Einblicke nahezu in Echtzeit. Dies geschieht durch eine Aufhebung von operativen und analytischen Speichern. Dadurch ermöglicht Microsoft die Analyse mit Spark und dem SQL-Server in der Cloud mit „<a href="/azure-synapse-workshop-for-free/">Azure Synapse</a> Link“. Diese Verbindung bietet Analysen in Echtzeit und eine hybride transaktionale sowie analytische Verarbeitung mit minimalen Auswirkungen auf das operative System. Nach der Datenverarbeitung kann man unmittelbar mit Spark, dem Azure Machine Learning Studio und weiteren Visualisierungstools Analysen durchführen. All dies geschieht ohne Auswirkungen auf den SQL-Server.</p>
<h2>3. Sicherheit</h2>
<p><img loading="lazy" decoding="async" class="alignright wp-image-12373" src="https://arelium.de/wp-content/uploads/2023/03/prufen.png" alt="Sicherheit" width="154" height="154" srcset="https://arelium.de/wp-content/uploads/2023/03/prufen.png 256w, https://arelium.de/wp-content/uploads/2023/03/prufen-150x150.png 150w" sizes="auto, (max-width: 154px) 100vw, 154px" /></p>
<p>Eine weitere Erneuerung des SQL-Server 2022 ist die verbesserte Sicherheit durch den Einsatz des SQL-Server Ledgers. Dieser dient dazu, die Datenintegrität sicherzustellen.  Dabei wird ein unveränderlicher Ledger zum Schutz der Daten vor Attacken verwendet. Die integrierte Blockchain Technologie ermöglicht es Nutzern ein „digital Trust“ zu vermitteln, wodurch sie geschützt sind. Im Grunde genommen ist damit gemeint, dass dieser „Ledger“ Attacken erkennt und Manipulationen am Datensatz vermeidet. Dadurch wird das Sicherheitssystem verstärkt. Der SQL-Server hatte in den letzten Jahren so gut wie keine bekannten Sicherheitslücken. Mit dem neuen Sicherheitssystem wird die Angriffsfläche zusätzlich minimiert.</p>
<p><img loading="lazy" decoding="async" class="wp-image-13494 alignleft" src="https://arelium.de/wp-content/uploads/2023/03/Performance-300x300.png" alt="Performance icon" width="154" height="154" srcset="https://arelium.de/wp-content/uploads/2023/03/Performance-300x300.png 300w, https://arelium.de/wp-content/uploads/2023/03/Performance-150x150.png 150w, https://arelium.de/wp-content/uploads/2023/03/Performance-400x400.png 400w, https://arelium.de/wp-content/uploads/2023/03/Performance.png 450w" sizes="auto, (max-width: 154px) 100vw, 154px" /></p>
<h2 style="text-align: right;">4. Performance</h2>
<p style="text-align: right;">Ein weiterer Aspekt ist, dass die Geschwindigkeit durch die Neuheiten nicht leidet.  Man kann sogar einen Performancegewinn erzielen, ohne dabei Veränderungen am Code durchzuführen. Dies liegt an mehreren Neuerungen. Einige davon sind:</p>
<p style="text-align: right;">&#8211; Der Abfragespeicher ist in der <strong>Default-Einstellung</strong> jetzt angeschaltet. Hier kann man Leistungsabweichungen schneller finden und beheben.<br />
<strong> &#8211; Sortierter gruppierter Columnstore-Index:</strong> Die vorhandenen Daten werden im Arbeitsspeichersortiert, bevor der Index-Generatorsie in Indexsegmente komprimiert.<br />
<strong>&#8211; Parallelscan des Pufferpools:</strong> Durch die Verwendung mehrerer CPU-Kerne parallel, wird die Leistung von Pufferpool-Scanvorgängen erhöht.</p>
<h2>Fazit zum SQL Server 2022</h2>
<p>Dies waren nur einige der Neuerungen, die der SQL Server 2022 in Bezug auf Performance mit sich bringt. Insgesamt kann man sagen, dass der SQL-Server in Verbindung mit den Azure Diensten viele Vorteile mit sich bringt. Man erhält tiefere Einblicke und kann bessere Vorhersagen aus Daten generieren. Die Azure Integration unterstützt zudem die verwaltete Notfallwiederherstellung in Azure SQL Managed Instance sowie Analysen in Echtzeit. Leistung und Skalierbarkeit werden durch integrierte Abfragen angeboten. Man kann zusammenfassen, dass Azure und SQL-Server 2022 weiter zusammenwachsen und gemeinsam mächtige Werkzeuge sind.</p>
</div></div>
<p>Der Beitrag <a href="https://arelium.de/sql-server-2022/">SQL Server 2022</a> erschien zuerst auf <a href="https://arelium.de">arelium - Wir holen mehr aus deinen Daten</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://arelium.de/sql-server-2022/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
