PREDICT (Transact-SQL)
Применимо к: SQL Server 2017 (14.x) и более поздних версий Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics
Создает предсказанное значение или оценки на основе хранимой модели. Дополнительные сведения см.в разделе Native scoring using the PREDICT T-SQL function (Собственная оценка с использованием функции PREDICT T-SQL).
Выберите продукт
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
* SQL Server *
* База данных SQL *
* Управляемый экземпляр SQL *
* Azure Synapse
Analytics *
Синтаксис
PREDICT
(
MODEL = @model | model_literal,
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 = @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 )
}
Аргументы
MODEL
Параметр MODEL
используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная или литерал или скалярное выражение.
Функция PREDICT
поддерживает модели, обученные с помощью пакетов RevoScaleR и revoscalepy.
Параметр MODEL
используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная или литерал или скалярное выражение.
В Управляемом экземпляре SQL Azure PREDICT
поддерживает модели в формате Open Neural Network Exchange (ONNX) или модели, обученные с помощью пакетов RevoScaleR и revoscalepy.
Важно!
Поддержка ONNX в доступна PREDICT
в предварительной версии в Управляемый экземпляр SQL Azure.
Параметр MODEL
используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная, литерал, скалярное выражение или скалярный вложенный запрос.
В Azure Synapse Analytics PREDICT
поддерживает модели в формате Open Neural Network Exchange (ONNX).
Данные
Параметр DATA используется для указания данных, используемых для оценки и прогнозирования. Данные указываются в виде источника таблицы в запросе. Источник таблицы может быть таблицей, псевдонимом таблицы, псевдонимом обобщенного табличного выражения, представлением или функцией с табличным значением.
RUNTIME = ONNX
Важно!
Аргумент RUNTIME = ONNX
доступен только в Azure SQL Edge, Azure Synapse Analytics и доступен в предварительной версии в Управляемый экземпляр SQL Azure.
Указывает подсистему машинного обучения, используемую для выполнения модели. Параметр RUNTIME
всегда имеет значение ONNX
. В SQL Azure для пограничных вычислений и Azure Synapse Analytics этот параметр является обязательным. В Управляемом экземпляре SQL Azure этот параметр является необязательным и требуется только при использовании моделей ONNX.
WITH ( <result_set_definition> )
Предложение WITH используется для указания схемы выходных данных, возвращаемых функцией PREDICT
.
Помимо столбцов, возвращаемых самой функцией PREDICT
, в запросе можно использовать все столбцы, которые являются частью входных данных.
Возвращаемые значения
Предопределенные схемы недоступны. Содержимое модели не проверяется, возвращаемые значения столбцов тоже не проверяются.
- Функция
PREDICT
проходит через столбцы в качестве входных данных. - Функция
PREDICT
также создает новые столбцы, но число столбцов и типы данных зависят от типа модели, использованной для прогнозирования.
Сообщения об ошибках, связанные с данными, моделью или форматом столбца, выводятся функцией прогнозирования, связанной с моделью.
Remarks
Функция PREDICT
поддерживается во всех выпусках SQL Server 2017 и более поздних версий на Windows и Linux. Для использования функции PREDICT
не требуется включать Службы машинного обучения.
Поддерживаемые алгоритмы
Используемая модель должна быть создана с помощью одного из поддерживаемых алгоритмов из пакета RevoScaleR или revoscalepy. Список поддерживаемых в настоящее время моделей см. в разделе Собственная оценка с помощью функции T-SQL PREDICT.
Поддерживаются алгоритмы, которые можно преобразовать в формат модели ONNX.
Поддерживаются алгоритмы, которые можно преобразовать в формат модели ONNX, а также модели, созданные с использованием одного из поддерживаемых алгоритмов из пакетов RevoScaleR или revoscalepy. Список поддерживаемых в настоящее время алгоритмов в пакетах RevoScaleR и revoscalepy см. в разделе Собственная оценка с помощью функции T-SQL PREDICT.
Разрешения
Для PREDICT
разрешения не требуются, но пользователю нужно разрешение EXECUTE
на базу данных и разрешение на запрос любых данных, используемых в качестве входных. У пользователя должна быть возможность чтения модели из таблицы, если модель хранится в таблице.
Примеры
В следующих примерах демонстрируется синтаксис вызова PREDICT
.
Использование PREDICT в предложении FROM
Этот пример ссылается на функцию PREDICT
в предложении FROM
инструкции 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;
Псевдоним d, указанный для табличного источника в параметре DATA
, используется для ссылки на столбцы, принадлежащие таблице dbo.mytable
. Псевдоним p, указанный для функции PREDICT
, используется для ссылки на столбцы, возвращаемые функцией PREDICT
.
- Модель хранится в виде
varbinary(max)
столбца в таблице с именемModels
. Дополнительные сведения, такие какID
иdescription
, сохраняются в таблице для идентификации модели. - Псевдоним d, указанный для табличного источника в параметре
DATA
, используется для ссылки на столбцы, принадлежащие таблицеdbo.mytable
. Имена столбцов входных данных должны соответствовать именам входных данных для модели. - Псевдоним p, указанный для функции
PREDICT
, используется для ссылки на прогнозируемый столбец, возвращаемый функциейPREDICT
. Имя столбца должно совпадать с именем выходных данных для модели. - Все столбцы входных данных и прогнозируемые столбцы доступны для вывода в инструкции SELECT.
Предыдущий пример запроса можно переписать для создания представления, указав MODEL
в качестве скалярного вложенного запроса:
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 с инструкцией INSERT
Прогнозирование часто используется для формирования оценки входных данных и последующей вставки прогнозируемых значений в таблицу. В следующем примере предполагается, что вызывающее приложение использует хранимую процедуру, чтобы вставить в таблицу строку, содержащую прогнозируемое значение:
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;
- Результаты
PREDICT
хранятся в таблице с именемPredictionResults
. - Модель хранится в виде
varbinary(max)
столбца в таблице с именемModels
. Дополнительные сведения, такие как идентификатор и описание, сохраняются в этой таблице для идентификации модели. - Псевдоним d, указанный для источника таблицы в параметре
DATA
, используется для ссылки на столбцы в таблицеdbo.mytable
. Имена столбцов входных данных должны соответствовать именам входных данных для модели. - Псевдоним p, указанный для функции
PREDICT
, используется для ссылки на прогнозируемый столбец, возвращаемый функциейPREDICT
. Имя столбца должно совпадать с именем выходных данных для модели. - Все входные и прогнозируемые столбцы доступны для вывода в инструкции SELECT.
Дальнейшие действия
Дополнительные сведения о связанных понятиях см. в следующих статьях:
- Native scoring using the PREDICT T-SQL function (Собственная оценка с использованием функции PREDICT T-SQL)
- RevoScaleR (пакет R в Службах машинного обучения SQL Server)
- Revoscalepy (пакет Python в Службах машинного обучения SQL Server)
- OPENXML (Transact-SQL)
- Дополнительные сведения о моделях ONNX
- STRING_SPLIT (Transact-SQL)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по