SQL Server 2025: ONNX-Modelle im SQL Server einbinden: KI-Modelle aus Python/Azure direkt produktiv nutzen

Warum ich ONNX im SQL Server nutze

KI-Modelle in Python entwickeln ist relativ einfach.
Aber produktiv nutzen? Im Backend, in Reports, in Echtzeit?
SQL Server 2025 kann nun ONNX direkt ausführen.
Damit bleibt das Modell, wo die Daten sind.
Kein Export, kein Hin und Her, keine Middleware.

1. Was ONNX ist

ONNX = Open Neural Network Exchange.
Ein offenes Format für Machine-Learning-Modelle.
Wird unterstützt von:

  • PyTorch
  • scikit-learn
  • Azure Machine Learning
  • Keras (über Umwege)

Du exportierst Dein Modell aus Python und importierst es in SQL Server.
Fertig.

2. Voraussetzungen prüfen

SQL Server 2025 braucht:

  • Extensibility Framework aktiviert
  • Machine Learning Services installiert (für Inference)
  • Rolle db_owner oder external script enabled
EXEC sp_configure 'external scripts enabled', 1;
RECONFIGURE;

Optional GPU-Support mit MicrosoftML + CUDA.
Für KMU reicht meist CPU.

3. ONNX-Modell in SQL Server einbinden

Modell speichern

CREATE MODEL dbo.KundenScoring
FROM (SELECT * FROM OPENROWSET(BULK N'C:\Modelle\scoring.onnx', SINGLE_BLOB) AS model_data)
WITH (FORMAT = 'ONNX');

Das Modell liegt jetzt als Objekt im SQL Server.
Ähnlich wie ein View oder eine Stored Procedure.

4. Daten vorbereiten

ONNX will strukturierte Eingaben – FLOAT, INT, keine NULLs.
Beispiel: Kundendaten für Churn Prediction

SELECT
    CAST(alter AS FLOAT) AS age,
    CAST(monatsumsatz AS FLOAT) AS revenue,
    CAST(anzahl_logins AS FLOAT) AS logins
FROM dbo.kunden
WHERE status = 'aktiv';

Optional: View anlegen mit genau dieser Struktur.

5. Modell ausführen mit PREDICT

SELECT
    k.kundennr,
    PREDICT(MODEL = dbo.KundenScoring,
            DATA = 
            (SELECT
                 CAST(k.alter AS FLOAT) AS age,
                 CAST(k.monatsumsatz AS FLOAT) AS revenue,
                 CAST(k.anzahl_logins AS FLOAT) AS logins)
           ) AS score
FROM dbo.kunden k
WHERE k.status = 'aktiv';

Der Score kommt als FLOAT zurück – z. B. 0.92 für hohe Churn-Wahrscheinlichkeit.
Kannst Du in Reports, Triggern oder Alert-Logiken weiterverarbeiten.

6. Modell regelmäßig aktualisieren

Neue Trainingsdaten → Modell in Python neu trainieren → ONNX exportieren → SQL-Modell ersetzen:

DROP MODEL dbo.KundenScoring;

CREATE MODEL dbo.KundenScoring
FROM (SELECT * FROM OPENROWSET(BULK N'C:\Modelle\neues_model.onnx', SINGLE_BLOB) AS model_data)
WITH (FORMAT = 'ONNX');

Du kannst das sogar automatisieren – z. B. nachts per SQL Job + FileShare.

7. Beispiel: Score in Tabelle schreiben

INSERT INTO dbo.kunden_scores (kundennr, score, berechnet_am)
SELECT
    k.kundennr,
    PREDICT(MODEL = dbo.KundenScoring,
        DATA = (SELECT
                   CAST(k.alter AS FLOAT),
                   CAST(k.monatsumsatz AS FLOAT),
                   CAST(k.anzahl_logins AS FLOAT))) AS score,
    GETDATE()
FROM dbo.kunden k
WHERE k.status = 'aktiv';

Jetzt kannst Du per SQL gezielt z. B. „Top 50 risikoreiche Kunden“ abrufen.
Ohne Python. Ohne REST. Ohne Zwischenlayer.

8. Sicherheit & Berechtigungen

Nur Nutzer mit EXECUTE auf das Modell dürfen PREDICT() nutzen:

GRANT EXECUTE ON MODEL::dbo.KundenScoring TO support_user;

Das trennt Entwicklung (Python) und Anwendung (SQL-User).

9. Debuggen und testen

Modell-Infos abrufen:

SELECT * FROM sys.models WHERE name = 'KundenScoring';

Modellstruktur prüfen (ab 2025):

SELECT * FROM sys.dm_model_metadata WHERE model_name = 'KundenScoring';

Testwerte vorab prüfen:

SELECT PREDICT(MODEL = dbo.KundenScoring,
               DATA = (VALUES (30.0, 120.0, 12.0))
                     AS T(age, revenue, logins)) AS score;

Hilft bei Strukturfehlern oder Datentypproblemen.

Mein Fazit

Mit ONNX sparst Du Dir REST-APIs, Python-Skripte im Produktivsystem, Datenexports.
Die KI kommt zur Datenbank – nicht umgekehrt.
Und SQL Server 2025 macht das jetzt angenehm direkt.

Schlagwörter:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert