Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2017 (14.x) e versões
posteriores Azure SQL Managed Instance
Azure Synapse Analytics
Gera um valor previsto ou pontuações com base em um modelo armazenado. Para obter mais informações, consulte Pontuação nativa usando a função PREDICT T-SQL.
Selecione um produto
Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.
Observação
PREDICT não está disponível na Azure SQL Database.
Importante
A PREDICT sintaxe varia consoante o produto. Use o seletor de produtos para ver a sintaxe correta para a sua plataforma. Em particular, o Azure Synapse Analytics requer o RUNTIME = ONNX argumento, que não é usado no SQL Server nem no Azure SQL Managed Instance.
* Servidor SQL *
* Instância gerenciada SQL *
* Sinapse do Azure
Análise *
Sintaxe
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
MODELO
Use o MODEL parâmetro para especificar o modelo de pontuação ou previsão. Especifique o modelo como uma variável, uma expressão literal ou escalar.
PREDICT suporta modelos treinados usando os pacotes RevoScaleR e revoscalepy .
Use o MODEL parâmetro para especificar o modelo de pontuação ou previsão. Especifique o modelo como uma variável, uma expressão literal ou escalar.
Na Instância Gerenciada SQL do Azure, PREDICT dá suporte a modelos treinados usando os pacotes RevoScaleR e revoscalepy .
Use o MODEL parâmetro para especificar o modelo de pontuação ou previsão. Especifique o modelo como uma variável, um literal, uma expressão escalar ou uma subconsulta escalar.
No Azure Synapse Analytics, PREDICT dá suporte a modelos no formato ONNX (Open Neural Network Exchange ). Para obter mais informações, consulte ONNX.
DADOS
O parâmetro DATA especifica os dados para pontuação ou previsão. Especifique os dados sob a forma de uma fonte de tabela na consulta. A fonte da tabela pode ser uma tabela, alias de tabela, alias CTE, vista ou função com valores de tabela.
TEMPO de EXECUÇÃO = ONNX
Indica o mecanismo de aprendizado de máquina usado para a execução do modelo. O valor do RUNTIME parâmetro é sempre ONNX. O RUNTIME parâmetro é necessário para o Azure Synapse Analytics. O RUNTIME = ONNX argumento só está disponível no Azure Synapse Analytics.
COM ( <result_set_definition> )
Use a cláusula WITH para especificar o esquema da saída devolvida pela PREDICT função.
Além das colunas retornadas pela PREDICT própria função, todas as colunas que fazem parte da entrada de dados estão disponíveis para uso na consulta.
Valores de retorno
Não existe nenhum esquema pré-definido disponível; O conteúdo do modelo não é validado e os valores das colunas devolvidos também não são validados.
- A
PREDICTfunção passa por colunas como entrada. - A
PREDICTfunção também gera novas colunas, mas o número de colunas e os seus tipos de dados depende do tipo de modelo utilizado para a previsão.
Quaisquer mensagens de erro relacionadas aos dados, ao modelo ou ao formato de coluna são retornadas pela função de previsão subjacente associada ao modelo.
Observações
A PREDICT função é suportada em todas as edições do SQL Server 2017 ou posterior, no Windows e Linux.
Os Serviços de Aprendizagem Automática não precisam de estar ativados para usar PREDICT.
Algoritmos suportados
O modelo que você usa deve ter sido criado usando um dos algoritmos suportados dos pacotes RevoScaleR ou revoscalepy . Para obter uma lista de modelos atualmente suportados, consulte Pontuação nativa usando a função PREDICT T-SQL.
Algoritmos que podem ser convertidos para o formato de modelo ONNX são suportados.
Algoritmos que podem ser convertidos para o formato de modelo ONNX e modelos que você criou usando um dos algoritmos suportados dos pacotes RevoScaleR ou revoscalepy são suportados. Para obter uma lista dos algoritmos atualmente suportados no RevoScaleR e no revoscalepy, consulte Pontuação nativa usando a função PREDICT T-SQL.
Permissions
Não são necessárias permissões para PREDICTisso, no entanto, o usuário precisa EXECUTE de permissão no banco de dados e permissão para consultar quaisquer dados que sejam usados como entradas. O usuário também deve ser capaz de ler o modelo de uma tabela, se o modelo tiver sido armazenado em uma tabela.
Examples
Os exemplos a seguir demonstram a sintaxe para chamar PREDICT.
Usando PREDICT em uma cláusula FROM
Este exemplo faz referência à PREDICTFROM função na cláusula de uma SELECT instrução:
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;
O alias d especificado para a fonte da tabela no DATA parâmetro refere-se às colunas pertencentes a dbo.mytable. O alias p especificado para a PREDICT função faz referência às colunas devolvidas pela PREDICT função.
- O modelo é armazenado como coluna varbinary(max) na tabela chamada
Models. Informações adicionais, comoIDedescriptionsão salvas na tabela para identificar o modelo. - O alias d especificado para a fonte da tabela no
DATAparâmetro refere-se às colunas pertencentes adbo.mytable. Os nomes das colunas de dados de entrada devem corresponder ao nome das entradas para o modelo. - O alias p especificado para a
PREDICTfunção faz referência à coluna prevista devolvida pelaPREDICTfunção. O nome da coluna deve ter o mesmo nome que o nome de saída do modelo. - Todas as colunas de dados de entrada e as colunas previstas estão disponíveis para exibição na
SELECTinstrução.
A consulta de exemplo anterior pode ser reescrita para criar um modo de exibição especificando MODEL como uma subconsulta escalar:
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;
Combinando PREDICT com uma instrução INSERT
Um caso de uso comum para previsão é gerar uma pontuação para dados de entrada e, em seguida, inserir os valores previstos em uma tabela. O exemplo a seguir pressupõe que o aplicativo de chamada usa um procedimento armazenado para inserir uma linha contendo o valor previsto em uma tabela:
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;
- Os resultados de
PREDICTsão armazenados em uma tabela chamadaPredictionResults. - O modelo é armazenado como coluna varbinary(max) na tabela chamada
Models. Informações adicionais, como ID e descrição, podem ser salvas na tabela para identificar o modelo. - O alias
despecificado para a fonte da tabela noDATAparâmetro faz referência às colunas emdbo.mytable. Os nomes das colunas de dados de entrada devem corresponder ao nome das entradas para o modelo. - O alias
pespecificado para aPREDICTfunção refere-se à coluna prevista devolvida pelaPREDICTfunção. O nome da coluna deve ter o mesmo nome que o nome de saída do modelo. - Todas as colunas de entrada e a coluna prevista estão disponíveis para exibição na
SELECTinstrução.
Conteúdo relacionado
Saiba mais sobre conceitos relacionados nos seguintes artigos: