Was ist eine SQL Server Language Extension?

Bei Language Extension handelt es sich um ein Feature von SQL Server, das den Benutzer bei der Ausführung von einem externem Code unterstützt.

Mit der Einführung von SQL Server 2019 wird nun auch, standardmäßig mit Zulu Open JRE als Laufzeitumgebung, die Programmiersprache Java unterstützt. Es können jedoch auch andere Java Laufzeitumgebungen verwendet werden.

Wie können Language Extensions verwendet werden?

Um den externen Code auszuführen, verwendet die Language Extension das sogenannte Erweiterungsframework. Hierbei findet die Codeausführung komplett isoliert von allen Kernprozessen des Moduls statt, ist jedoch vollständig in die SQL Server-Abfrageausführung integriert. So müssen keine Daten über das Netzwerk abgerufen werden, da der Code, in dem sich die Daten befinden, auf diese direkten Zugriff hat.

Als Schnittstelle zum Ausführen von externem Code dient die vom System gespeicherte Prozedur sp_execute_external_script. Externe Sprachen werden mit CREATE EXTERNAL LANGUAGE definiert.

Eine neue Sprache wird mithilfe des CREATE EXTERNAL LANGUAGE Befehls wie folgt definiert:

USE master
CREATE EXTERNAL LIBRARY sdk
FROM (CONTENT = '<path-content>')
WITH (LANGUAGE = 'MyLanguage')
GO

Wobei “CONTENT” in Zeile 2, abhängig von der gewählten Programmiersprache, die nötigen Ressourcen zum Einfügen bereit stellt. Im Falle der Benutzung von Java wäre es beispielsweise:

USE master
FROM (CONTENT = '/mssql-java-lang-extension.jar')

Es gibt vielerlei Vorteile, die Language Extension mit sich bringt:

  • Durch das näherbringen einer externen Ausführung einer Sprache näher an die Datenquelle selbst, kann eine unsichere und uneffiziente Verschiebung der Daten verhindert werden.
  • Zusammenfassungen und Aggregationen können dank Memory-Tabellen sehr schnell durchgeführt werden und sind eine optimale Ergänzung zu Data Science.

  • SQL Server ist der zentrale Betriebspunkt für viele andere Datenverwaltungsaufgaben- und anwendungen. Indem Daten verwendet werden, die sich in der Datenbank befinden, kann sicher gestellt werden, dass die von Java verwendeten Daten konsistent und aktuell sind.

Schreibe einen Kommentar