Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2017 (14.x) och senare versioner
Azure SQL Managed Instance
Azure Synapse Analytics
Genererar ett förutsagt värde eller poäng baserat på en lagrad modell. Mer information finns i Intern bedömning med hjälp av funktionen PREDICT T-SQL.
Välj en produkt
På följande rad väljer du det produktnamn som du är intresserad av och endast den produktinformationen visas.
Anmärkning
PREDICT är inte tillgängligt i Azure SQL Database.
* SQL Server *
* SQL Managed Instance *
* Azure Synapse
Analys *
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 )
}
Arguments
MODELL
Parametern MODEL används för att ange den modell som används för bedömning eller förutsägelse. Modellen anges som en variabel eller en literal eller ett skalärt uttryck.
PREDICT stöder modeller som tränats med RevoScaleR - och revoscalepy-paketen .
Parametern MODEL används för att ange den modell som används för bedömning eller förutsägelse. Modellen anges som en variabel eller en literal eller ett skalärt uttryck.
I Azure SQL Managed Instance PREDICT har stöd för modeller som tränats med RevoScaleR och revoscalepy-paket .
Parametern MODEL används för att ange den modell som används för bedömning eller förutsägelse. Modellen anges som en variabel eller en literal eller ett skalärt uttryck eller en skalär underfråga.
I Azure Synapse Analytics PREDICT stöder modeller i ONNX-format (Open Neural Network Exchange). Mer information finns i ONNX.
DATA
Dataparametern används för att ange de data som används för bedömning eller förutsägelse. Data anges i form av en tabellkälla i frågan. Tabellkällan kan vara en tabell, ett tabellalias, ett CTE-alias, en vy eller en tabellvärdesfunktion.
RUNTIME = ONNX
Anger maskininlärningsmotorn som används för modellkörning. Parametervärdet RUNTIME är alltid ONNX. Parametern RUNTIME krävs för Azure Synapse Analytics. Argumentet RUNTIME = ONNX är endast tillgängligt i Azure Synapse Analytics.
MED ( <result_set_definition> )
WITH-satsen används för att ange schemat för utdata som returneras av PREDICT funktionen.
Förutom de kolumner som returneras av PREDICT själva funktionen är alla kolumner som ingår i dataindata tillgängliga för användning i frågan.
Returnera värden
Inget fördefinierat schema är tillgängligt. Innehållet i modellen verifieras inte och de returnerade kolumnvärdena verifieras inte heller.
- Funktionen
PREDICTskickar kolumner som indata. - Funktionen
PREDICTgenererar också nya kolumner, men antalet kolumner och deras datatyper beror på vilken typ av modell som användes för förutsägelse.
Eventuella felmeddelanden som rör data, modellen eller kolumnformatet returneras av den underliggande förutsägelsefunktionen som är associerad med modellen.
Anmärkningar
Funktionen PREDICT stöds i alla utgåvor av SQL Server 2017 eller senare i Windows och Linux.
Machine Learning Services behöver inte vara aktiverat för att använda PREDICT.
Algoritmer som stöds
Den modell som du använder måste ha skapats med någon av de algoritmer som stöds från RevoScaleR - eller revoscalepy-paketen . En lista över modeller som stöds finns i Intern bedömning med hjälp av funktionen PREDICT T-SQL.
Algoritmer som kan konverteras till ONNX-modellformat stöds.
Algoritmer som kan konverteras till ONNX-modellformat och modeller som du har skapat med någon av de algoritmer som stöds från RevoScaleR - eller revoscalepy-paket stöds. En lista över algoritmer som stöds för närvarande i RevoScaleR och revoscalepy finns i Intern bedömning med hjälp av funktionen PREDICT T-SQL.
Permissions
Inga behörigheter krävs för PREDICT. Användaren behöver EXECUTE dock behörighet för databasen och behörighet att köra frågor mot data som används som indata. Användaren måste också kunna läsa modellen från en tabell, om modellen har lagrats i en tabell.
Examples
I följande exempel visas syntaxen för att anropa PREDICT.
Använda PREDICT i en FROM-sats
Det här exemplet refererar till PREDICT funktionen i -instruktionen FROM i en SELECT -instruktion:
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;
Aliaset d som anges för tabellkällan i parametern DATA används för att referera till kolumnerna som tillhör dbo.mytable. Aliaset p som angetts för funktionen används för PREDICT att referera till kolumnerna som returneras av PREDICT funktionen.
- Modellen lagras som kolumnen varbinary(max) i tabellen med namnet
Models. Ytterligare information somIDochdescriptionsparas i tabellen för att identifiera modellen. - Aliaset d som anges för tabellkällan i parametern
DATAanvänds för att referera till kolumnerna som tillhördbo.mytable. Kolumnnamnen för indata ska matcha namnet på indata för modellen. - Aliaset p som angetts för funktionen används för
PREDICTatt referera till den förutsagda kolumn som returneras avPREDICTfunktionen. Kolumnnamnet ska ha samma namn som utdatanamnet för modellen. - Alla indatakolumner och de förutsagda kolumnerna är tillgängliga för visning i -instruktionen
SELECT.
Föregående exempelfråga kan skrivas om för att skapa en vy genom att MODEL ange som en skalär underfråga:
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;
Kombinera PREDICT med en INSERT-instruktion
Ett vanligt användningsfall för förutsägelse är att generera en poäng för indata och sedan infoga de förutsagda värdena i en tabell. I följande exempel förutsätts att det anropande programmet använder en lagrad procedur för att infoga en rad som innehåller det förutsagda värdet i en tabell:
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;
- Resultatet av
PREDICTlagras i en tabell med namnetPredictionResults. - Modellen lagras som kolumnen varbinary(max) i tabellen med namnet
Models. Ytterligare information, till exempel ID och beskrivning, kan sparas i tabellen för att identifiera modellen. - Det alias
dsom anges för tabellkällan i parameternDATAanvänds för att referera till kolumnerna idbo.mytable. Kolumnnamnen för indata ska matcha namnet på indata för modellen. - Det alias
psom anges för funktionen används förPREDICTatt referera till den förutsagda kolumn som returneras avPREDICTfunktionen. Kolumnnamnet ska ha samma namn som utdatanamnet för modellen. - Alla indatakolumner och den förutsagda kolumnen är tillgängliga för visning i -instruktionen
SELECT.
Relaterat innehåll
Läs mer om relaterade begrepp i följande artiklar: