Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2017 (14.x) a novější verze
Azure SQL Managed Instance
Azure Synapse Analytics
Vygeneruje predikovanou hodnotu nebo skóre na základě uloženého modelu. Další informace naleznete v tématu Nativní bodování pomocí funkce PREDICT T-SQL.
Výběr produktu
V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.
Poznámka:
PREDICT není k dispozici ve službě Azure SQL Database.
* SQL Server *
Azure Synapse
analýzy
* SQL Managed Instance *
Azure Synapse
analýzy
* Azure Synapse
Analýza *
Syntaxe
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
Parametr MODEL se používá k určení modelu použitého pro bodování nebo predikci. Model je určen jako proměnná, literál nebo skalární výraz.
PREDICT podporuje modely natrénované pomocí balíčků RevoScaleR a revoscalepy .
Parametr MODEL se používá k určení modelu použitého pro bodování nebo predikci. Model je určen jako proměnná, literál nebo skalární výraz.
Ve službě Azure SQL Managed Instance PREDICT podporuje modely natrénované pomocí balíčků RevoScaleR a revoscalepy .
Parametr MODEL se používá k určení modelu použitého pro bodování nebo predikci. Model je určen jako proměnná, literál nebo skalární výraz nebo skalární poddotaz.
Ve službě Azure Synapse Analytics PREDICT podporuje modely ve formátu Open Neural Network Exchange (ONNX). Další informace najdete v tématu ONNX.
DATA
Parametr DATA slouží k určení dat používaných pro bodování nebo predikci. Data se zadává ve formě zdroje tabulky v dotazu. Zdrojem tabulky může být tabulka, alias tabulky, alias CTE, zobrazení nebo funkce s hodnotou tabulky.
RUNTIME = ONNX
Označuje modul strojového učení používaný ke spuštění modelu. Hodnota parametru RUNTIME je vždy ONNX. Parametr RUNTIME se vyžaduje pro Azure Synapse Analytics. Argument RUNTIME = ONNX je k dispozici pouze ve službě Azure Synapse Analytics.
WITH ( <result_set_definition> )
Klauzule WITH slouží k určení schématu výstupu vráceného PREDICT funkcí.
Kromě sloupců vrácených PREDICT samotnou funkcí jsou všechny sloupce, které jsou součástí vstupu dat, k dispozici pro použití v dotazu.
Návratové hodnoty
Není k dispozici žádné předdefinované schéma; obsah modelu není ověřen a vrácené hodnoty sloupců se ani neověřují.
- Funkce
PREDICTprochází sloupci jako vstup. - Funkce
PREDICTtaké generuje nové sloupce, ale počet sloupců a jejich datových typů závisí na typu modelu, který byl použit pro predikci.
Všechny chybové zprávy související s daty, modelem nebo formátem sloupce vrátí podkladová prediktivní funkce přidružená k modelu.
Poznámky
Funkce PREDICT je podporována ve všech edicích SQL Serveru 2017 nebo novějších ve Windows a Linuxu.
Služba Machine Learning Services nemusí být povolená pro použití PREDICT.
Podporované algoritmy
Model, který použijete, musí být vytvořen pomocí jednoho z podporovaných algoritmů z balíčků RevoScaleR nebo revoscalepy . Seznam aktuálně podporovaných modelů najdete v tématu Nativní bodování pomocí funkce PREDICT T-SQL.
Podporují se algoritmy, které lze převést na formát modelu ONNX .
Podporují se algoritmy, které lze převést na formát modelu ONNX a modely, které jste vytvořili pomocí jednoho z podporovaných algoritmů z balíčků RevoScaleR nebo revoscalepy . Seznam aktuálně podporovaných algoritmů v RevoScaleR a revoscalepy najdete v tématu Nativní bodování pomocí funkce PREDICT T-SQL.
Povolení
Nejsou vyžadována PREDICTžádná oprávnění , ale uživatel potřebuje EXECUTE oprávnění k databázi a oprávnění dotazovat se na všechna data, která se používají jako vstupy. Uživatel musí být také schopen číst model z tabulky, pokud byl model uložen v tabulce.
Examples
Následující příklady ukazují syntaxi volání PREDICT.
Použití funkce PREDICT v klauzuli FROM
Tento příklad odkazuje na PREDICT funkci v FROM klauzuli SELECT příkazu:
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;
Alias d zadaný pro zdroj tabulky v parametru DATA slouží k odkazování na sloupce patřící do dbo.mytable. Alias p zadaný pro PREDICT funkci slouží k odkazování na sloupce vrácené PREDICT funkcí.
- Model je uložen jako sloupec varbinary(max) v tabulce s názvem
Models. Další informace, napříkladIDadescriptionjsou uloženy v tabulce k identifikaci modelu. - Alias d zadaný pro zdroj tabulky v parametru
DATAslouží k odkazování na sloupce patřící dodbo.mytable. Názvy vstupních datových sloupců by se měly shodovat s názvem vstupů modelu. - Alias p zadaný pro
PREDICTfunkci slouží k odkazování na předpovězený sloupec vrácenýPREDICTfunkcí. Název sloupce by měl mít stejný název jako název výstupu modelu. - Všechny vstupní sloupce dat a predikované sloupce jsou k dispozici k zobrazení v
SELECTpříkazu.
Předchozí ukázkový dotaz lze přepsat a vytvořit zobrazení zadáním MODEL skalárního poddotazu:
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;
Kombinování funkce PREDICT s příkazem INSERT
Běžným případem použití pro predikci je vygenerovat skóre vstupních dat a pak vložit předpovězené hodnoty do tabulky. Následující příklad předpokládá, že volající aplikace používá uloženou proceduru k vložení řádku obsahujícího předpovězenou hodnotu do tabulky:
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;
- Výsledky
PREDICTjsou uloženy v tabulce s názvemPredictionResults. - Model je uložen jako sloupec varbinary(max) v tabulce s názvem
Models. Další informace, jako je ID a popis, lze uložit do tabulky a identifikovat model. - Alias
dzadaný pro zdroj tabulky v parametruDATAslouží k odkazování na sloupce vdbo.mytable. Názvy vstupních datových sloupců by se měly shodovat s názvem vstupů modelu. - Alias
pzadaný proPREDICTfunkci slouží k odkazování na předpovězený sloupec vrácenýPREDICTfunkcí. Název sloupce by měl mít stejný název jako název výstupu modelu. - Všechny vstupní sloupce a predikovaný sloupec jsou k dispozici pro zobrazení v
SELECTpříkazu.
Související obsah
Další informace o souvisejících konceptech najdete v následujících článcích: