Weiter zum Inhalt

Python/R in SQL ausführen

Nach diesem Tutorial weißt du, wie du R- und Python-Skripte in T-SQL-Anweisungen einbettest und welche Datentypen für den Datenaustausch zwischen SQL und Python/R verwendet werden.
Aktualisiert 18. Sept. 2026  · 6 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

bringing intelligence to where data lives

Einführung

Wusstest du, dass du R- und Python-Code direkt in deine T-SQL-Anweisungen schreiben kannst? Machine Learning Services in SQL Server machen Datenverschiebungen überflüssig. Anstatt große und sensible Daten über das Netzwerk zu übertragen oder mit Sample-CSV-Dateien an Genauigkeit zu verlieren, lässt du deinen R/Python-Code direkt in der Datenbank laufen. Über SQL-gespeicherte Prozeduren kannst du deinen R/Python-Code einfach bereitstellen und in ETL-Prozesse oder beliebige Anwendungen einbinden. Trainiere und speichere Machine-Learning-Modelle in deiner Datenbank und bringe Intelligenz dorthin, wo deine Daten liegen.

Du kannst die neuesten Open-Source-Pakete für R/Python installieren und ausführen, um Deep-Learning- und KI-Anwendungen auf großen Datenmengen in SQL Server zu entwickeln. Zusätzlich gibt es führende, hochperformante Algorithmen in Microsofts RevoScaleR- und RevoScalePy-APIs. In Kombination mit den neuesten Innovationen aus der Open-Source-Welt holst du maximale Auswahl, Performance und Skalierung für deine Anwendungen heraus.

why in-database analytics with sql server

Wenn du SQL Server Machine Learning Services ausprobieren möchtest, starte mit dem folgenden Praxis-Tutorial. Falls Machine Learning Services in SQL Server noch nicht installiert ist, folge zuerst dieser Einstiegshilfe: https://blogs.msdn.microsoft.com/mlserver/2018/05/18/getting-started-with-machine-learning-services-in-sql-server/

How-to-Tutorial

Das lernst du

Dieses Tutorial behandelt die Grundlagen, wie du R und Python in T-SQL-Anweisungen ausführst. Nach Abschluss weißt du:

  1. Wie du R- und Python-Skripte in T-SQL-Anweisungen einbettest.
  2. Wie du Basisparameter nutzt, um Eingabe- und Ausgabedaten für R/Python-Skripte zu definieren.
  3. Welche Datentypen verwendet werden, um Daten zwischen SQL und Python/R zu übergeben.

Voraussetzungen für das Setup

Falls Machine Learning Services auf SQL Server nicht installiert ist, lies zunächst diese Einstiegshilfe oder sieh dir diese Videos zum Einrichten an: https://aka.ms/InstallMLServices https://aka.ms/EnableMLServices

Video-Begleitung

Wenn du lieber per Video lernst, gibt es dieses Tutorial auch auf YouTube: @https://aka.ms/ExecuteMLServices https://youtu.be/ACejZ9optCQ

Grundlagen

Öffne SQL Server Management Studio und verbinde dich mit deinem Server. Öffne eine neue Abfrage und füge dieses einfache Beispiel ein: (Die Beispiele nutzen Python, du kannst alles genauso mit R umsetzen.)

EXEC sp_execute_external_script @language = N'Python',
@script = N'print(3+4)'

Sp_execute_external_script ist eine spezielle, systemeigene gespeicherte Prozedur, die die Ausführung von R und Python in SQL Server ermöglicht. Über den Parameter language wählst du zwischen Python und R. Im Parameter script fügst du R- oder Python-Code ein. Wenn die Ausgabe nicht 7 anzeigt, überprüfe die Einrichtungsschritte in diesem Artikel.

Einstieg in Parameter

Nach dem einfachen Beispiel erweitern wir Schritt für Schritt:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
OutputDataSet = InputDataSet;
',
@input_data_1 =N'SELECT 1 AS Col1';

Machine Learning Services ermöglichen eine natürliche Übergabe zwischen SQL und R/Python über einen Eingabeparameter, der beliebige SQL-Abfragen akzeptiert. Der Eingabeparameter heißt input_data_1.

Im Python-Code siehst du vordefinierte Standardvariablen für den Datenaustausch zwischen Python und SQL. Die Standardnamen sind OutputDataSet und InputDataSet. Du kannst diese Namen wie im folgenden Beispiel anpassen:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo',
@output_data_1_name =N'MyOutput';

Beim Ausführen dieser Beispiele ist dir vielleicht aufgefallen, dass jeweils ein Ergebnis mit (No column name) zurückkommt. Über die WITH RESULT SETS-Klausel am Ende der Anweisung kannst du Spaltennamen und Datentypen festlegen, als komma­getrennte Liste.

EXEC sp_execute_external_script  @language =N'Python',
@script=N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo,2 AS bar',
@output_data_1_name =N'MyOutput'
WITH RESULT SETS ((MyColName int, MyColName2 int));

Input-/Output-Datentypen

Schauen wir uns die Ein- und Ausgabetypen zwischen SQL und Python genauer an. Deine SQL SELECT-Anweisung übergibt ein „DataFrame“ an Python und nutzt dafür das Python-Paket Pandas. Auch die Ausgabe von Python zurück an SQL muss ein Pandas-DataFrame-Objekt sein. Wenn du Skalare in ein DataFrame umwandeln musst, hilft dieses Beispiel:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
c = 1/2
d = 1*2
s = pd.Series([c,d])
df = pd.DataFrame(s)
OutputDataSet = df
'

Die Variablen c und d sind Skalare, die du bei Bedarf in eine Pandas Series packst und anschließend in ein Pandas DataFrame konvertierst. Hier ist ein etwas umfangreicheres Beispiel. Lies für Details und weitere Beispiele in der Pandas-Dokumentation nach:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
s = {"col1": [1, 2], "col2": [3, 4]}
df = pd.DataFrame(s)
OutputDataSet = df
'

Jetzt kennst du die Grundlagen, wie du R und Python in T-SQL ausführst. Es ist ganz einfach, EXEC sp_execute_external_script aufzurufen, deinen R- oder Python-Code einzufügen und deine SQL-Select-Abfrage zu übergeben. Vielleicht willst du eine Transformation oder Extraktion durchführen, die in R/Python leicht ist, in SQL aber zu komplex. Vielleicht trainierst du ein tiefes neuronales Netz auf Datenmengen, die zu groß sind, um sie über ein Netzwerk zu senden. Oder du möchtest neue Daten in deinem OLTP-System automatisch bewerten/vorhersagen. Die Einsatzmöglichkeiten sind vielfältig – und du bist jetzt bereit, mit Machine Learning Services in SQL Server Sicherheit, Performance und Skalierung zu steigern.

Weiterführende Ressourcen

Wusstest du, dass du deinen R- und Python-Code auch in deiner bevorzugten IDE wie RStudio oder Jupyter Notebooks schreiben und die Ausführung dann remote an SQL Server senden kannst? Mehr dazu in diesen Dokus: Documentation: https://aka.ms/R-RemoteSQLExecution Documentation: https://aka.ms/R-RemoteSQLExecution Github-Jupyter-Notebook-Beispiel: https://aka.ms/RemoteExecJupyter

Wenn du mehr über SQL lernen möchtest, sieh dir unseren Kurs Intro to SQL for Data Science und unseren SQL-Learning-Hub an.

Themen
SQL
Datenwissenschaft
Python
R

Mehr über SQL lernen

Kurs

Datenbearbeitung in SQL

4 Std.
335K
Lerne, mit komplexen SQL-Abfragen diverse Data-Science-Aufgaben zu lösen und Datensätze für Analysen in PostgreSQL vorzubereiten.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow