Features von SQL Server für Linux

Abgeschlossen

Um eine SQL Server-Migration gegenüber Budgetverwaltern zu rechtfertigen, sollten Sie wissen, welche Features von SQL Server einen Wettbewerbsvorteil für Ihre Systeme bieten können.

Stellen Sie sich vor, dass Sie, nachdem Sie herausgefunden haben, was SQL Server für Linux ist, sicherstellen möchten, dass die derzeit verfügbaren Features die Anforderungen von Wide World Importers an bestehende und zukünftige Datenverarbeitung erfüllen.

Hier erhalten Sie Informationen zu den wichtigsten Features von SQL Server für Linux.

Leistung

SQL Server für Linux unterstützt die wettbewerbskritischen Anforderungen an schnellen Transaktionsdurchsatz und dynamische Analysen mithilfe einer Hybrid Transactional Analytical Processing-Lösung (HTAP). HTAP nutzt einige der wichtigsten Leistungstechnologien von SQL Server:

In-Memory-Onlinetransaktionsverarbeitung (Online Transaction Processing, OLTP)

Durch die Kombination von speicheroptimierten Tabellen und kompilierten gespeicherten Prozeduren konnte Wide World Importers erhebliche Leistungssteigerungen bei seinen Transaktionstabellen erzielen, z. B. beim Schreiben und Lesen des Sitzungsstatus der E-Commerce-Website.

Columnstore-Index

SQL Server unterstützt sowohl Zeilendaten als auch komprimierte Spaltendaten. Transaktionstabellen können auch einen Columnstore-Index aufweisen, der beim Schreiben analytischer Abfragen anstelle des Zeilenspeichers verwendet wird. Durch die Verwendung von Columnstore-Indizes könnte die aktuelle Analysesuite die Transaktionsleistung beibehalten und gleichzeitig Echtzeitabfragen der operativen Daten zur Berichterstellung ausführen.

Abfragespeicher

Ihr DBA-Team führt eine monatliche Leistungsoptimierungsaufgabe durch, um sicherzustellen, dass die richtigen Abfragepläne verwendet werden. Das Team überwacht die Abfrageleistung und setzt Abfragepläne zurück, wenn die Leistung durch Änderungen der Ausführungspläne beeinträchtigt wird. Zudem meldet das Team dem Entwicklungsleiter die 10 Abfragen mit der längsten Ausführungsdauer und überprüft, ob Ressourcensperren vorliegen. Der Abfragespeicher unterstützt alle diese Aufgaben und lässt sich mit Transact-SQL aktivieren:

ALTER DATABASE <database name>
SET QUERY_STORE (OPERATION_MODE = READ_WRITE);

Automatische Optimierung und intelligente Abfrageverarbeitung

Sie können die automatische Planauswahlkorrektur aktivieren, sobald der Abfragespeicher aktiviert ist. Wenn die automatische Optimierung aktiviert ist, wird die Abfrageleistung von SQL Server überwacht. Wenn ein neuer Abfrageplan im Vergleich zur vorherigen Version weniger leistungsfähig ist, kann er durch die leistungsfähigere vorherige Version ersetzt werden. Die Option ist auf Datenbankebene mit einer ALTER-Anweisung verfügbar:

ALTER DATABASE <database name>
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );

Bei der intelligenten Abfrageverarbeitung (Intelligent Query Processing, IQP) handelt es sich um Features, von denen einige in SQL Server 2019 neu sind und mit denen die Leistung Ihrer Workload automatisch verbessert und optimiert wird. Folgende Features zur intelligenten Abfrageverarbeitung sind verfügbar:

  • Adaptive Joins: SQL Server wählt während der Laufzeit einen Jointyp basierend auf der tatsächlichen Anzahl der Eingabezeilen dynamisch aus.
  • Ungefähre Anzahl eindeutiger Ergebnisse: SQL Server gibt die ungefähre Anzahl eindeutiger Ergebnisse für Big-Data-Szenarien an, um solche Abfragen mit hoher Leistung und geringer Arbeitsspeicherbelastung auszuführen.
  • Feedback zur Speicherzuweisung: Wenn für eine Abfrage Vorgänge ausgeführt werden, die auf den Datenträger überlaufen, kann SQL Server für nachfolgende Vorgänge mehr Arbeitsspeicher zuweisen. Wenn für eine Abfrage dagegen mehr als die Hälfte des zugeordneten Arbeitsspeichers nicht genutzt wird, kann SQL Server die Größe des zugewiesenen Arbeitsspeichers reduzieren.
  • Verzögerte Kompilierung von Tabellenvariablen: SQL Server verwendet bei der ersten Kompilierung anstelle einer festgelegten Schätzung die tatsächliche Kardinalität einer Tabellenvariable.

Bei der intelligenten Abfrageverarbeitung müssen Sie keinen Code erneut generieren oder das Datenbankschema ändern, um von der besten Leistung zu profitieren. Sie müssen lediglich eine Datenbank auf den Kompatibilitätsgrad 150 oder höher upgraden:

ALTER DATABASE <database name> SET COMPATIBILITY_LEVEL = 150;

Sicherheit

SQL Server für Linux unterstützt erweiterte Sicherheitsfunktionen wie Always Encrypted, Sicherheit auf Zeilenebene und dynamische Datenmaskierung zum Schutz von Daten auf Datenträgern im Arbeitsspeicher oder während der Übertragung. Die folgenden Features werden in allen Editionen unterstützt, so auch in der Standard Edition:

  • Transparent Data Encryption (TDE): Ruhende Daten werden beim Speichern in Datenbankdateien verschlüsselt. Die Daten werden sowohl in der Datenbank als auch in Sicherungen vor böswilligen Benutzern geschützt.

  • Mit Always Encrypted wird sichergestellt, dass Daten nur von den Benutzern angezeigt und verarbeitet werden können, die diese Daten besitzen. Benutzer, die Daten verwalten, wie etwa Datenbankadministratoren, können die Daten nicht anzeigen. Vorteile von Always Encrypted:

    • Sie können die verschlüsselten Daten ohne vorherige Entschlüsselung abfragen.
    • Die Daten werden im Ruhezustand, beim Verschieben in den Arbeitsspeicher des Servers sowie beim Verschieben vom Server in die vertrauenswürdige Client-App geschützt.
    • Die Verschlüsselung und Entschlüsselung erfolgt im Clienttreiber, sodass der Prozess für Clientanwendungen transparent ist.
    • Nur vertrauenswürdige Anwendungen und die Besitzer der Daten können darauf zugreifen. Anwendungsentwickler und Datenbankadministratoren haben keinen Zugriff auf den Spaltenverschlüsselungsschlüssel (Column Encryption Key, CEK).
  • Mit der Überwachung werden einerseits Ereignisse überwacht, die in der Datenbank-Engine auftreten. Andererseits wird überwacht, wer diese Ereignisse ausgeführt hat. Die überwachten Ereignisse können in Ereignisprotokollen oder Überwachungsdateien gespeichert werden, und Sie können sie zur Untersuchung von Problemen wie Angriffen und Datensicherheitsverletzungen verwenden.

  • Mit dem Feature Sicherheit auf Zeilenebene wird der Zugriff auf bestimmte Zeilen in einer Tabelle basierend auf dem Benutzer gesteuert, der die Abfrage ausführt. So können Sie beispielsweise über die Gruppenmitgliedschaft oder den Ausführungskontext steuern, wer Zugriff auf die Daten hat.

  • Mit der dynamischen Datenmaskierung wird ein Teil der Daten maskiert. Es sind vier verschiedene Maskierungsarten verfügbar: Maskieren aller Daten in einer Spalte, Maskieren von E-Mail-Adressen, zufällige Maskierung von Zahlen für numerische Daten und benutzerdefinierte Zeichenfolgenmaskierung. Sie könnten z. B. die benutzerdefinierte Zeichenfolgenmaskierung verwenden, um alle Ziffern einer Sozialversicherungsnummer bis auf die letzten vier zu maskieren.

  • Mit der Datenermittlung und -klassifizierung werden vertrauliche Daten in Datenbanken, beispielsweise persönliche Daten, erkannt, bezeichnet und gemeldet. Hierbei handelt es sich um ein Tool in SQL Server Management Studio (SSMS), das die Einhaltung geltender Datenschutzbestimmungen und den Schutz der Datenbanken erleichtert, die besonders wertvolle Daten enthalten. Die Datenermittlung und -klassifizierung ist ein Dienst, der Teil des ADS-Pakets (Advanced Data Security) ist.

  • Mit der Sicherheitsrisikobewertung werden Sicherheitsrisiken in Datenbanken erkannt. Wenn Sie die durch Ihre Serverkonfiguration und Datenbankdesigns verursachten potenziellen Schwachstellen kennen, können Sie diesen entgegenwirken und gängige Angriffe verhindern. Bei der Sicherheitsrisikobewertung handelt es sich um einen weiteren ADS-Dienst.

SQL Server-Agent

Der SQL Server-Agent führt Wartungsaufträge und geplante, automatisierte Aufgaben aus. Der SQL Server-Agent unterstützt die folgenden drei Workloads:

  • Transact-SQL-Aufträge
  • DB Mail
  • Protokollversand

Standardmäßig ist der SQL Server-Agent zwar deaktiviert, aber installiert und kann mithilfe des Befehlszeilen-Hilfsprogramms mssql-conf aktiviert werden.

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

Hochverfügbarkeit

SQL Server bietet viele Möglichkeiten, um die zulässige Fehlertoleranzstufe anzugeben. SQL Server für Linux unterstützt Always On-Verfügbarkeitsgruppen und Always On-Failoverclusterinstanzen. Für beide Optionen muss das mssql-server-ha-Paket auf jedem Server installiert sein. Linux unterstützt das Clustering über Pacemaker, was dem Windows Server-Failoverclustering (WSCF) entspricht, auch wenn es nicht so eng in das Hostbetriebssystem integriert ist.

Bei hinreichender Downtimeflexibilität kann der Protokollversand über den SQL-Agent für Betriebsbereitschaft sorgen, die Sie zur Wiederherstellung nach einem Serverausfall nutzen können.

Eine weitere Lösung für SQL Server für Linux ist die Möglichkeit der Ausführung in Containern, die mit Tools wie Kubernetes orchestriert sind. Mit Orchestrierungstools wird sichergestellt, dass immer ein Knoten vorhanden ist, auf dem SQL Server ausgeführt wird. Wenn der Knoten ausfällt, wird automatisch ein Bootstrap für eine andere Instanz ausgeführt. Wenn eine stabilere Verfügbarkeit erforderlich ist, kann eine Always On-Verfügbarkeitsgruppe in Containern ausgeführt werden.

Weitere wichtige Features

PolyBase

Bei vielen Organisationen befinden sich Daten in unterschiedlichen Systemen. Das kann daran liegen, dass für die unterschiedlichen Teams bei der Auswahl ihrer Systeme unterschiedliche Anforderungen galten, weil Sie mit einem anderen Unternehmen fusioniert haben oder aus einem anderen historischen Grund. Bisher war es schwierig, Daten über diese Systemgrenzen hinweg zur Beantwortung von Fragen für Benutzer zusammenzuführen.

Angenommen, Sie verfügen über Daten in SQL Server, die den Umsatz für Ihren Produktkatalog erfassen, aber die Daten zur Erfassung der Kosten für die Herstellung Ihrer Produkte befinden sich in einer SAP HANA-Datenbank. Sie möchten nun einen Bericht erstellen, mit dem die Gewinnmargen analysiert werden. Hierzu benötigen Sie die Daten aus beiden Datenbanken. Bisher hatten Sie folgende Möglichkeiten:

  • Sie verwenden ein ETL-Paket (Extrahieren, Transformieren und Laden), um Daten von einem Datenbanksystem zu einem anderen zu migrieren.
  • Sie fragen beide Datenbanken ab, und schreiben anschließend einen benutzerdefinierten Code, mit dem die Ergebnisse verknüpft und zu einem Bericht zusammengeführt werden.

Beide Ansätze sind komplex und können eine beträchtliche Entwicklungszeit erfordern.

Mit PolyBase können Sie in SQL Server eine externe Tabelle erstellen. Eine externe Tabelle stellt eine Verbindung zu einem externen System und einem dort gehosteten Dataset dar. Nachdem Sie die externe Tabelle erstellt haben, können Clients Abfragen an diese Tabelle auf dieselbe Weise wie an eine interne Tabelle übermitteln. Mit JOIN-Abfragen können Daten aus externen Tabellen in interne Tabellen integriert werden. Wie Sie sehen, kann PolyBase die durch die unterschiedlichen Systeme entstandenen Grenzen für Ihre Daten überwinden und die Analyse Ihrer Geschäftsdaten unabhängig von deren Speicherort erleichtern.

Hinweis

Unter Linux-Betriebssystemen wird PolyBase in SQL Server 2019 oder höher unterstützt. Um PolyBase nutzen zu können, müssen Sie das Paket mssql-server-polybase sowie SQL Server 2019 installieren.

Machine Learning Services

Beim maschinellen Lernen werden umfangreiche Datasets verwendet, um das Verhalten einiger komplexer Systeme zu modellieren. Wenn ein Modell entwickelt wurde, das das beobachtete Verhalten des Systems genau vorhersagt, wird es verwendet, um vorherzusagen, wie sich das System in Zukunft möglicherweise verhält. Es wurden komplexe Codebibliotheken, häufig Open-Source-Bibliotheken, entwickelt, mit denen Ihr Dataset vorbereitet, dem Dataset Features hinzugefügt, ein Modell trainiert, die Genauigkeit des trainierten Modells bewertet und dieses Modell zum Abrufen für andere Clients bereitgestellt werden kann. Diese Bibliotheken wurden in den Programmiersprachen R und Python geschrieben.

Mit SQL Server Machine Learning Services können Sie diese R- und Python-Skripts für die Daten in Ihren SQL Server-Datenbanken ausführen. Sie können gängige Machine Learning- und Data Science-Frameworks wie PyTorch, TensorFlow, SciKit-Learn und andere hinzufügen.

Hinweis

Unter Linux-Betriebssystemen wird SQL Server Machine Learning in SQL Server 2019 oder höher unterstützt. Sie müssen Sie zusätzliche Pakete installieren, um es verwenden zu können. Wenn Sie beispielsweise für den gesamten Machine Learning-Code Python verwenden möchten, installieren Sie das Paket mssql-mlservices-mlm-py-9.4.7. install mssql-mlservices-mlm-r-9.4.7 ist das entsprechende Paket für R.

Graphunterstützung

SQL Server bietet native Unterstützung zum Speichern und Abfragen von graphbasierten Daten. SQL Server speichert Daten als eine Reihe von Entitäten (Knoten) und der Beziehungen (Edges) zwischen ihnen.

Die Volltextsuche ermöglicht Benutzern das Ausführen von Abfragen von Textdaten unter Berücksichtigung linguistischer Regeln. Wenn Sie beispielsweise nach dem Wort „run“ suchen, gibt eine Volltextsuche Ergebnisse zurück, die Formen des Worts „run“ enthalten, z. B. „ran“ und „running“.

Dieses Feature ist nicht standardmäßig installiert. Unter Linux aktivieren Sie es, indem Sie das mssql-server-fts-Paket installieren.

ETL-Workloads

SSIS-Pakete (SQL Server Integration Services) können unter SQL Server für Linux ausgeführt werden. Sie sind nicht auf die Ausführung unter SQL Server für Linux beschränkt. Diese Pakete können auch eine Verbindung mit Microsoft SQL Server-Instanzen herstellen, die lokal unter Windows oder in der Cloud ausgeführt werden, oder SQL Server-Instanzen, die in einem Container ausgeführt werden.

Sie müssen SSIS-Pakete auf einem Windows-Computer schreiben und verwalten, auf dem die SQL Server Data Tools ausgeführt werden.

Überprüfen Sie Ihr Wissen

1.

Welche Features bietet SQL Server für Linux zur Unterstützung der Geschäftskontinuität?

2.

Wann werden die Daten bei Verschlüsselung mit Always Encrypted entschlüsselt?