Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2017 (14.x) und höhere Versionen
von Azure SQL Managed Instance
Azure Synapse Analytics
Generiert einen vorhergesagten Wert oder Bewertungen auf Grundlage eines gespeicherten Modells. Weitere Informationen finden Sie unter Native Bewertung mithilfe der PREDICT T-SQL-Funktion.
Auswählen eines Produkts
Wählen Sie in der folgenden Zeile den Namen des Produkts aus, an dem Sie interessiert sind. Dann werden nur Informationen zu diesem Produkt angezeigt.
Hinweis
PREDICT ist in der Azure SQL-Datenbank nicht verfügbar.
* SQL Server *
* SQL Managed Instance *
* Azure Synapse
Analytik*
Syntax
PREDICT
(
MODEL = @model | model_literal,
DATA = object AS <table_alias>
)
WITH ( <result_set_definition> )
<result_set_definition> ::=
{
{ column_name
data_type
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
}
[,...n ]
}
MODEL = @model | model_literal
PREDICT
(
MODEL = <model_object>,
DATA = object AS <table_alias>
[, RUNTIME = ONNX ]
)
WITH ( <result_set_definition> )
<result_set_definition> ::=
{
{ column_name
data_type
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
}
[,...n ]
}
<model_object> ::=
{
model_literal
| model_variable
| ( scalar_subquery )
}
Argumente
MODEL
Der Parameter MODEL wird verwendet, um das Modell anzugeben, das für die Bewertung oder Vorhersage verwendet wird. Das Modell wird als Variable, Literal oder Skalarausdruck angegeben.
PREDICT unterstützt Modelle, die mit den Paketen RevoScaleR und revoscalepy trainiert wurden.
Der Parameter MODEL wird verwendet, um das Modell anzugeben, das für die Bewertung oder Vorhersage verwendet wird. Das Modell wird als Variable, Literal oder Skalarausdruck angegeben.
In der von Azure SQL verwalteten Instanz werden Modelle unterstützt, PREDICT die mit den Paketen "RevoScaleR " und "revoscalepy " trainiert wurden.
Der Parameter MODEL wird verwendet, um das Modell anzugeben, das für die Bewertung oder Vorhersage verwendet wird. Das Modell wird als Variable, Literal, Skalarausdruck oder skalare Unterabfrage angegeben.
In Azure Synapse Analytics unterstützt PREDICT Modelle im ONNX-Format (Open Neural Network Exchange). Weitere Informationen finden Sie unter ONNX.
DATEN
Der DATA-Parameter wird verwendet, um die Daten anzugeben, die für die Bewertung oder Vorhersage verwendet werden. Daten werden in Form einer Tabellenquelle in der Abfrage angegeben. Die Tabellenquelle kann eine Tabelle, ein Tabellenalias, CTE-Alias, eine sicht oder Tabellenwertfunktion sein.
RUNTIME = ONNX
Dieses Argument gibt die für die Modellausführung verwendete Machine-Learning-Engine an. Der Wert für den Parameter RUNTIME ist immer ONNX. Der RUNTIME Parameter ist für Azure Synapse Analytics erforderlich. Das RUNTIME = ONNX Argument ist nur in Azure Synapse Analytics verfügbar.
WITH ( <result_set_definition> )
Die WITH-Klausel wird verwendet, um das Schema der Ausgabe anzugeben, die von der PREDICT-Funktion zurückgegeben wird.
Zusätzlich zu den Spalten, die von der PREDICT-Funktion selbst zurückgegeben werden, stehen alle Spalten, die Teil der Dateneingabe sind, während der Abfrage zur Verfügung.
Rückgabewerte
Es steht kein vordefiniertes Schema zur Verfügung. Die Inhalte des Modells und die zurückgegebenen Spaltenwerte werden nicht überprüft.
- Die
PREDICT-Funktion durchläuft die Spalten als Eingabe. - Die
PREDICT-Funktion generiert auch neue Spalten, allerdings hängen die Anzahl der Spalten und deren Datentypen vom Typ des Modells ab, das für die Vorhersage verwendet wurde.
Fehlermeldungen im Zusammenhang mit den Daten, dem Modell oder dem Spaltenformat werden von der zugrunde liegenden Vorhersagefunktion zurückgegeben, die dem Modell zugeordnet ist.
Bemerkungen
Die PREDICT-Funktion wird in allen Editionen von SQL Server 2017 oder höher unter Windows und Linux unterstützt.
Machine Learning Services muss nicht aktiviert werden, um PREDICT zu verwenden.
Unterstützte Algorithmen
Das von Ihnen verwendete Modell muss mithilfe eines der unterstützten Algorithmen aus dem RevoScaleR- oder dem revoscalepy-Paket erstellt worden sein. Eine Liste der derzeit unterstützten Modelle finden Sie unter Native Bewertung mithilfe der T-SQL-Funktion PREDICT mit SQL Machine Learning.
Algorithmen, die in das Modellformat ONNX konvertiert werden können, werden unterstützt.
Algorithmen, die in das Modellformat ONNX konvertiert werden können, und Modelle, die Sie mithilfe eines der unterstützten Algorithmen aus dem RevoScaleR- oder dem revoscalepy-Paket erstellt haben, werden unterstützt. Eine Liste der derzeit unterstützten Algorithmen in RevoScaleR und revoscalepy finden Sie unter Native Bewertung mithilfe der T-SQL-Funktion PREDICT mit SQL Machine Learning.
Berechtigungen
Es sind zwar keine Berechtigungen für PREDICT erforderlich, jedoch benötigt der Benutzer EXECUTE-Berechtigungen für die Datenbank und Berechtigungen zum Abfragen von Daten, die als Eingaben verwendet werden. Der Benutzer muss außerdem das Modell aus einer Tabelle heraus lesen können, wenn das Modell in einer Tabelle gespeichert wurde.
Beispiele
Die folgenden Beispiele veranschaulichen die Syntax zum Aufrufen von PREDICT.
Verwenden von PREDICT in einer FROM-Klausel
In diesem Beispiel wird auf die PREDICT-Funktion in der FROM-Klausel einer SELECT-Anweisung verwiesen:
SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
DATA = dbo.mytable AS d) WITH (Score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT test_model FROM scoring_model WHERE model_id = 1);
SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;
Der Alias d, der für die Tabellenquelle im Parameter DATA angegeben ist, wird verwendet, um auf die Spalten zu verweisen, die zu dbo.mytable gehören. Der Alias p, der für die PREDICT-Funktion angegeben ist, wird verwendet, um auf die Spalten zu verweisen, die von der PREDICT-Funktion zurückgegeben werden.
- Das Modell wird als varbinary(max)- Spalte in der Tabelle gespeichert, die aufgerufen wird
Models. Weitere Informationen, z. B.IDunddescription, werden zur Identifikation des Modells in der Tabelle gespeichert. - Der Alias d, der für die Tabellenquelle im Parameter
DATAangegeben ist, wird verwendet, um auf die Spalten zu verweisen, die zudbo.mytablegehören. Die Namen der Eingabedatenspalten sollten mit den Namen der Eingaben für das Modell übereinstimmen. - Der Alias p, der für die
PREDICT-Funktion angegeben ist, wird verwendet, um auf die vorhergesagte Spalte zu verweisen, die von derPREDICT-Funktion zurückgegeben wird. Der Spaltenname sollte mit dem Namen der Ausgabe für das Modell übereinstimmen. - Alle Eingabedatenspalten und die vorhergesagten Spalten stehen zur Anzeige in der
SELECTAnweisung zur Verfügung.
Die vorherige Beispielabfrage kann umgeschrieben werden, um eine Sicht zu erstellen, indem MODEL als skalare Unterabfrage angegeben wird:
CREATE VIEW predictions
AS
SELECT d.*, p.Score
FROM PREDICT(MODEL = (SELECT test_model FROM scoring_model WHERE model_id = 1),
DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;
Kombinieren von PREDICT mit einer INSERT-Anweisung
Einer der gängigsten Anwendungsfälle für die Vorhersage ist das Generieren einer Bewertung für Eingabedaten und das anschließende Einfügen der vorhergesagten Werte in eine Tabelle. Im folgenden Beispiel wird davon ausgegangen, dass die aufrufende Anwendung eine gespeicherte Prozedur verwendet, um eine Zeile mit dem vorhergesagten Wert in eine Tabelle einzufügen:
DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');
INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d) WITH(score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');
INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH(score FLOAT) AS p;
- Die Ergebnisse von
PREDICTwerden in einer Tabelle namensPredictionResultsgespeichert. - Das Modell wird als varbinary(max)- Spalte in der Tabelle gespeichert, die aufgerufen wird
Models. Weitere Informationen, z. B. die ID und eine Beschreibung, können zur Identifikation des Modells in der Tabelle gespeichert werden. - Der für die
DATATabellenquelle im Parameter angegebene Aliasdwird verwendet, um auf die Spalten indbo.mytablezu verweisen. Die Namen der Eingabedatenspalten sollten mit den Namen der Eingaben für das Modell übereinstimmen. - Der für die
PREDICTFunktion angegebene Aliaspwird verwendet, um auf die vorhergesagte Spalte zu verweisen, die von derPREDICTFunktion zurückgegeben wird. Der Spaltenname sollte mit dem Namen der Ausgabe für das Modell übereinstimmen. - Alle Eingabespalten und die vorhergesagte Spalte sind für die Anzeige in der
SELECTAnweisung verfügbar.
Verwandte Inhalte
Weitere Informationen zu verwandten Konzepten finden Sie in den folgenden Artikeln: