Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2017 (14.x) en latere versies
Van Azure SQL Managed Instance
Azure Synapse Analytics
Genereert een voorspelde waarde of scores op basis van een opgeslagen model. Zie Systeemeigen scoren met behulp van de functie PREDICT T-SQL voor meer informatie.
Een product selecteren
Selecteer in de volgende rij de productnaam waarin u geïnteresseerd bent en alleen de informatie van dat product wordt weergegeven.
Opmerking
PREDICT is niet beschikbaar in Azure SQL Database.
* SQL Server *
* SQL Managed Instance *
* Azure Synapse
Analyse *
Syntaxis
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
MODEL
De MODEL parameter wordt gebruikt om het model op te geven dat wordt gebruikt voor scoren of voorspellingen. Het model wordt opgegeven als een variabele of een letterlijke of scalaire expressie.
PREDICT ondersteunt modellen die zijn getraind met revoScaleR en revoscalepy-pakketten .
De MODEL parameter wordt gebruikt om het model op te geven dat wordt gebruikt voor scoren of voorspellingen. Het model wordt opgegeven als een variabele of een letterlijke of scalaire expressie.
In Azure SQL Managed Instance worden modellen ondersteund die PREDICT zijn getraind met behulp van revoScaleR en revoscalepy-pakketten .
De MODEL parameter wordt gebruikt om het model op te geven dat wordt gebruikt voor scoren of voorspellingen. Het model wordt opgegeven als een variabele of een letterlijke of een scalaire expressie of een scalaire subquery.
In Azure Synapse Analytics PREDICT ondersteunt u modellen in de ONNX-indeling (Open Neural Network Exchange). Zie ONNX voor meer informatie.
GEGEVENS
De parameter DATA wordt gebruikt om de gegevens op te geven die worden gebruikt voor scoren of voorspellingen. Gegevens worden opgegeven in de vorm van een tabelbron in de query. Tabelbron kan een tabel,tabelalias, CTE-alias, weergave of tabelwaardefunctie zijn.
RUNTIME = ONNX
Geeft de machine learning-engine aan die wordt gebruikt voor modeluitvoering. De RUNTIME parameterwaarde is altijd ONNX. De RUNTIME parameter is vereist voor Azure Synapse Analytics. Het RUNTIME = ONNX argument is alleen beschikbaar in Azure Synapse Analytics.
WITH ( <result_set_definition> )
De WITH-component wordt gebruikt om het schema op te geven van de uitvoer die door de PREDICT functie wordt geretourneerd.
Naast de kolommen die door de PREDICT functie zelf worden geretourneerd, zijn alle kolommen die deel uitmaken van de gegevensinvoer beschikbaar voor gebruik in de query.
Retourwaarden
Er is geen vooraf gedefinieerd schema beschikbaar; de inhoud van het model wordt niet gevalideerd en de geretourneerde kolomwaarden worden ook niet gevalideerd.
- De
PREDICTfunctie doorloopt kolommen als invoer. - De
PREDICTfunctie genereert ook nieuwe kolommen, maar het aantal kolommen en de bijbehorende gegevenstypen is afhankelijk van het type model dat is gebruikt voor voorspelling.
Foutberichten met betrekking tot de gegevens, het model of de kolomindeling worden geretourneerd door de onderliggende voorspellingsfunctie die aan het model is gekoppeld.
Opmerkingen
De PREDICT functie wordt ondersteund in alle edities van SQL Server 2017 of hoger in Windows en Linux.
Machine Learning Services hoeft niet te worden ingeschakeld voor gebruik PREDICT.
Ondersteunde algoritmen
Het model dat u gebruikt, moet zijn gemaakt met behulp van een van de ondersteunde algoritmen van revoScaleR of revoscalepy-pakketten . Zie Systeemeigen scoren met de functie PREDICT T-SQL voor een lijst met momenteel ondersteunde modellen.
Algoritmen die kunnen worden geconverteerd naar de ONNX-modelindeling , worden ondersteund.
Algoritmen die kunnen worden geconverteerd naar de indeling van het ONNX-model en de modellen die u hebt gemaakt met behulp van een van de ondersteunde algoritmen van de RevoScaleR of revoscalepy-pakketten worden ondersteund. Zie Systeemeigen scoren met de functie PREDICT T-SQL voor een lijst met momenteel ondersteunde algoritmen in RevoScaleR en revoscalepy.
Permissions
Er zijn geen machtigingen vereist voor PREDICT; de gebruiker heeft echter toestemming nodig EXECUTE voor de database en toestemming om query's uit te voeren op gegevens die worden gebruikt als invoer. De gebruiker moet ook het model uit een tabel kunnen lezen als het model is opgeslagen in een tabel.
Voorbeelden
In de volgende voorbeelden ziet u de syntaxis voor aanroepen PREDICT.
PREDICT gebruiken in een FROM-component
In dit voorbeeld wordt verwezen naar de PREDICT functie in de FROM component van een SELECT instructie:
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;
De alias d die is opgegeven voor de tabelbron in de DATA parameter, wordt gebruikt om te verwijzen naar de kolommen die behoren tot dbo.mytable. De alias p die voor de PREDICT functie is opgegeven, wordt gebruikt om te verwijzen naar de kolommen die door de PREDICT functie worden geretourneerd.
- Het model wordt opgeslagen als varbinary(max) kolom in de tabel met de naam
Models. Aanvullende informatie zoalsIDendescriptionwordt opgeslagen in de tabel om het model te identificeren. - De alias d die is opgegeven voor de tabelbron in de
DATAparameter, wordt gebruikt om te verwijzen naar de kolommen die behoren totdbo.mytable. De kolomnamen voor invoergegevens moeten overeenkomen met de naam van invoer voor het model. - De alias p die is opgegeven voor de
PREDICTfunctie, wordt gebruikt om te verwijzen naar de voorspelde kolom die door dePREDICTfunctie wordt geretourneerd. De kolomnaam moet dezelfde naam hebben als de uitvoernaam voor het model. - Alle invoergegevenskolommen en de voorspelde kolommen zijn beschikbaar om weer te geven in de
SELECTinstructie.
De voorgaande voorbeeldquery kan opnieuw worden geschreven om een weergave te maken door op te geven MODEL als een scalaire subquery:
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;
PREDICT combineren met een INSERT-instructie
Een veelvoorkomende use-case voor voorspelling is het genereren van een score voor invoergegevens en het invoegen van de voorspelde waarden in een tabel. In het volgende voorbeeld wordt ervan uitgegaan dat de aanroepende toepassing een opgeslagen procedure gebruikt om een rij met de voorspelde waarde in een tabel in te voegen:
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;
- De resultaten worden
PREDICTopgeslagen in een tabel met de naamPredictionResults. - Het model wordt opgeslagen als varbinary(max) kolom in de tabel met de naam
Models. Aanvullende informatie, zoals id en beschrijving, kan worden opgeslagen in de tabel om het model te identificeren. - De alias
ddie is opgegeven voor de tabelbron in deDATAparameter, wordt gebruikt om te verwijzen naar de kolommen indbo.mytable. De kolomnamen voor invoergegevens moeten overeenkomen met de naam van invoer voor het model. - De alias
pdie voor dePREDICTfunctie is opgegeven, wordt gebruikt om te verwijzen naar de voorspelde kolom die door dePREDICTfunctie wordt geretourneerd. De kolomnaam moet dezelfde naam hebben als de uitvoernaam voor het model. - Alle invoerkolommen en de voorspelde kolom zijn beschikbaar om in de
SELECTinstructie weer te geven.
Verwante inhoud
Meer informatie over gerelateerde concepten vindt u in de volgende artikelen: