Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2017 (14.x) e versioni
successive di Istanza
gestita di SQLdiAzure Azure Synapse Analytics
Genera un valore o punteggi stimati in base a un modello archiviato. Per altre informazioni, vedere Assegnazione di punteggi nativi tramite la funzione T-SQL PREDICT.
Selezionare un prodotto
Nella riga seguente selezionare il nome del prodotto a cui si è interessati. Verranno visualizzate solo le informazioni per tale prodotto.
Annotazioni
PREDICT non è disponibile nel database SQL di Azure.
* SQL Server *
* Istanza gestita di SQL *
* Azure Synapse
Analitica*
Sintassi
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 )
}
Argomenti
MODEL
Il parametro MODEL viene usato per specificare il modello usato per l'assegnazione dei punteggi o la stima. Il modello viene specificato come variabile, valore letterale o espressione scalare.
PREDICT supporta i modelli sottoposti a training usando i pacchetti RevoScaleR e revoscalepy.
Il parametro MODEL viene usato per specificare il modello usato per l'assegnazione dei punteggi o la stima. Il modello viene specificato come variabile, valore letterale o espressione scalare.
In Istanza PREDICT gestita di SQL di Azure supporta i modelli sottoposti a training usando i pacchetti RevoScaleR e revoscalepy .
Il parametro MODEL viene usato per specificare il modello usato per l'assegnazione dei punteggi o la stima. Il modello viene specificato come variabile, valore letterale, espressione scalare o una sottoquery scalare.
In Azure Synapse Analytics, PREDICT supporta i modelli in formato Open Neural Network Exchange (ONNX). Per altre informazioni, vedere ONNX.
DATI
Il parametro DATA viene usato per specificare i dati usati per l'assegnazione dei punteggi o la stima. I dati vengono specificati nella query sotto forma di un'origine di tabella. L'origine di tabella può essere una tabella, un alias di tabella, un alias di espressione di tabella comune, una vista o una funzione con valori di tabella.
RUNTIME = ONNX
Indica il motore di Machine Learning usato per l'esecuzione del modello. Il valore del parametro RUNTIME è sempre ONNX. Il RUNTIME parametro è obbligatorio per Azure Synapse Analytics. L'argomento RUNTIME = ONNX è disponibile solo in Azure Synapse Analytics.
WITH ( <result_set_definition> )
La clausola WITH viene usata per specificare lo schema dell'output restituito dalla funzione PREDICT.
Oltre alle colonne restituiti dalla funzione PREDICT stessa, tutte le colonne che fanno parte dell'input di dati sono disponibili per l'uso nella query.
Valori restituiti
Non è disponibile uno schema predefinito. Non vengono convalidati né il contenuto del modello né i valori di colonna restituiti.
- La funzione
PREDICTinteressa le colonne come input. - La funzione
PREDICT, poi, genera nuove colonne. Il numero delle colonne e i tipi di dati corrispondenti dipendono dal tipo di modello usato per la stima.
Eventuali messaggi di errore correlati ai dati, al modello o al formato delle colonne vengono restituiti dalla funzione di stima sottostante associata al modello.
Osservazioni:
La funzione PREDICT è supportata da tutte le edizioni di SQL Server 2017 o versione successiva in Windows e in Linux. Non è necessario abilitare Machine Learning Services per usare PREDICT.
Algoritmi supportati
Il modello da usare deve essere stato creato con uno degli algoritmi supportati del pacchetto RevoScaleR o revoscalepy. Per un elenco dei modelli attualmente supportati, vedere Assegnazione dei punteggi nativa tramite la funzione T-SQL PREDICT.
Sono supportati gli algoritmi che possono essere convertiti nel formato dei modelli ONNX.
Sono supportati gli algoritmi che possono essere convertiti nel formato dei modelli ONNX e dei modelli creati usando uno degli algoritmi supportati dai pacchetti RevoScaleR e revoscalepy. Per un elenco degli algoritmi attualmente supportati in RevoScaleR e revoscalepy, vedere Assegnazione di punteggi nativa tramite la funzione PREDICT T-SQL.
Autorizzazioni
Per PREDICT non sono necessarie autorizzazioni specifiche. L'utente, tuttavia, ha bisogno dell'autorizzazione EXECUTE per il database e dell'autorizzazione per eseguire query su tutti i dati usati come input. Se il modello è stato archiviato in una tabella, l'utente deve anche essere in grado di leggerlo dalla tabella.
Esempi
Gli esempi seguenti illustrano la sintassi per chiamare la funzione PREDICT.
Uso di PREDICT in una clausola FROM
Questo esempio fa riferimento alla funzione PREDICT nella clausola FROM di un'istruzione SELECT:
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;
L'alias d specificato per l'origine di tabella nel parametro DATA viene usato per fare riferimento alle colonne appartenenti a dbo.mytable. L'alias p specificato per la funzione PREDICT viene usato per fare riferimento alle colonne restituite dalla funzione PREDICT.
- Il modello viene archiviato come colonna varbinary(max) nella tabella denominata
Models. Altre informazioni,IDad esempio edescription, vengono salvate nella tabella per identificare il modello. - L'alias d specificato per l'origine di tabella nel parametro
DATAviene usato per fare riferimento alle colonne appartenenti adbo.mytable. I nomi delle colonne di dati di input devono corrispondere ai nomi degli input relativi al modello. - L'alias p specificato per la funzione
PREDICTviene usato per fare riferimento alla colonna stimata restituita dalla funzionePREDICT. Il nome della colonna deve corrispondere al nome di output del modello. - Tutte le colonne di dati di input e le colonne stimate sono disponibili per la visualizzazione nell'istruzione
SELECT.
La query di esempio precedente può essere riscritta per creare una vista specificando MODEL come sottoquery scalare:
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;
Combinazione di PREDICT con un'istruzione INSERT
Un caso d'uso comune per la stima consiste nella generazione di un punteggio per i dati di input e quindi nell'inserimento dei valori stimati in una tabella. L'esempio seguente presuppone che l'applicazione chiamante usi una stored procedure per inserire una riga contenente il valore stimato in una tabella:
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;
- I risultati di
PREDICTvengono archiviati in una tabella denominataPredictionResults. - Il modello viene archiviato come colonna varbinary(max) nella tabella denominata
Models. Nella tabella è possibile salvare informazioni aggiuntive come l'ID e la descrizione per identificare il modello. - L'alias
dspecificato per l'origine tabella nelDATAparametro viene usato per fare riferimento alle colonne indbo.mytable. I nomi delle colonne di dati di input devono corrispondere ai nomi degli input relativi al modello. - L'alias
pspecificato per laPREDICTfunzione viene usato per fare riferimento alla colonna stimata restituita dallaPREDICTfunzione . Il nome della colonna deve corrispondere al nome di output del modello. - Tutte le colonne di input e la colonna stimata sono disponibili per la visualizzazione nell'istruzione
SELECT.
Contenuti correlati
Altre informazioni sui concetti correlati sono disponibili negli articoli seguenti: