Udostępnij przez


PREDICT (Transact-SQL)

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje usługi Azure SQL Managed InstanceAzure Synapse Analytics

Generuje przewidywaną wartość lub wyniki na podstawie przechowywanego modelu. Aby uzyskać więcej informacji, zobacz Natywne ocenianie przy użyciu funkcji PREDICT T-SQL.

Wybieranie produktu

W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.

Uwaga / Notatka

PREDICT nie jest dostępna w usłudze Azure SQL Database.

Ważna

Składnia PREDICT różni się w zależności od produktu. Użyj selektora produktów, aby wyświetlić poprawną składnię dla platformy. W szczególności usługa Azure Synapse Analytics wymaga argumentu RUNTIME = ONNX , który nie jest używany w programie SQL Server ani w usłudze Azure SQL Managed Instance.

* SQL Server *  

* Zarządzana instancja SQL *  

* Azure Synapse
Analiza *
 

Składnia

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

Użyj parametru MODEL , aby określić model oceniania lub przewidywania. Określ model jako zmienną, literał lub wyrażenie skalarne.

PREDICT obsługuje modele trenowane przy użyciu pakietów RevoScaleR i revoscalepy .

Użyj parametru MODEL , aby określić model oceniania lub przewidywania. Określ model jako zmienną, literał lub wyrażenie skalarne.

W usłudze Azure SQL Managed Instance PREDICT obsługuje modele trenowane przy użyciu pakietów RevoScaleR i revoscalepy .

Użyj parametru MODEL , aby określić model oceniania lub przewidywania. Określ model jako zmienną, literał, wyrażenie skalarne lub podzapytywanie skalarne.

W usłudze Azure Synapse Analytics PREDICT obsługuje modele w formacie Open Neural Network Exchange (ONNX). Aby uzyskać więcej informacji, zobacz ONNX.

DANE

Parametr DATA określa dane dotyczące oceniania lub przewidywania. Określ dane w postaci źródła tabeli w zapytaniu. Źródłem tabeli może być tabela, alias tabeli, alias CTE, widok lub funkcja wartości tabeli.

RUNTIME = ONNX

Wskazuje aparat uczenia maszynowego używany do wykonywania modelu. Wartość parametru RUNTIME to zawsze ONNX. Parametr RUNTIME jest wymagany dla usługi Azure Synapse Analytics. Argument RUNTIME = ONNX jest dostępny tylko w usłudze Azure Synapse Analytics.

WITH ( <result_set_definition> )

Użyj klauzuli WITH, aby określić schemat danych wyjściowych zwracanych przez PREDICT funkcję.

Oprócz kolumn zwracanych przez PREDICT samą funkcję wszystkie kolumny będące częścią danych wejściowych są dostępne do użycia w zapytaniu.

Wartości zwracane

Nie jest dostępny wstępnie zdefiniowany schemat; zawartość modelu nie jest weryfikowana, a zwrócone wartości kolumn nie są weryfikowane.

  • Funkcja PREDICT przekazuje kolumny jako dane wejściowe.
  • Funkcja PREDICT generuje również nowe kolumny, ale liczba kolumn i ich typów danych zależy od typu modelu używanego do przewidywania.

Wszelkie komunikaty o błędach związane z danymi, modelem lub formatem kolumny są zwracane przez podstawową funkcję przewidywania skojarzona z modelem.

Uwagi

Funkcja jest obsługiwana PREDICT we wszystkich wersjach programu SQL Server 2017 lub nowszych w systemach Windows i Linux. Usługi Machine Learning Services nie muszą być włączone do korzystania z programu PREDICT.

Obsługiwane algorytmy

Używany model musi zostać utworzony przy użyciu jednego z obsługiwanych algorytmów z pakietów RevoScaleR lub revoscalepy . Aby uzyskać listę aktualnie obsługiwanych modeli, zobacz Natywne ocenianie przy użyciu funkcji PREDICT T-SQL.

Obsługiwane są algorytmy, które można przekonwertować na format modelu ONNX .

Obsługiwane są algorytmy, które można przekonwertować na format modelu ONNX i modele utworzone przy użyciu jednego z obsługiwanych algorytmów z pakietów RevoScaleR lub revoscalepy . Aby uzyskać listę aktualnie obsługiwanych algorytmów w programie RevoScaleR i revoscalepy, zobacz Native scoring using the PREDICT T-SQL function (Ocenianie natywne przy użyciu funkcji PREDICT T-SQL).

Permissions

W przypadku PREDICTbazy danych nie są wymagane żadne uprawnienia. Użytkownik musi EXECUTE mieć uprawnienia do bazy danych i uprawnienia do wykonywania zapytań dotyczących danych używanych jako danych wejściowych. Użytkownik musi również mieć możliwość odczytania modelu z tabeli, jeśli model został zapisany w tabeli.

Przykłady

W poniższych przykładach pokazano składnię wywoływania metody PREDICT.

Używanie funkcji PREDICT w klauzuli FROM

Ten przykład odwołuje się do PREDICT funkcji w FROM klauzuli instrukcji 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;

Alias d określony dla źródła tabeli w parametrze DATA odwołuje się do kolumn należących do dbo.mytable. Alias p określony dla PREDICT funkcji odwołuje się do kolumn zwracanych przez PREDICT funkcję.

  • Model jest przechowywany jako kolumna varbinary(max) w tabeli o nazwie Models. Dodatkowe informacje, takie jak ID i description , są zapisywane w tabeli w celu zidentyfikowania modelu.
  • Alias d określony dla źródła tabeli w parametrze DATA odwołuje się do kolumn należących do dbo.mytable. Nazwy kolumn danych wejściowych powinny być zgodne z nazwą danych wejściowych modelu.
  • Alias p określony dla PREDICT funkcji odwołuje się do przewidywanej kolumny zwróconej PREDICT przez funkcję. Nazwa kolumny powinna mieć taką samą nazwę jak nazwa danych wyjściowych modelu.
  • Wszystkie kolumny danych wejściowych i przewidywane kolumny są dostępne do wyświetlenia w instrukcji SELECT .

Poprzednie przykładowe zapytanie można przepisać, aby utworzyć widok, określając MODEL jako podzapytywanie skalarne:

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;

Łączenie instrukcji PREDICT z instrukcją INSERT

Typowym przypadkiem użycia przewidywania jest wygenerowanie wyniku dla danych wejściowych, a następnie wstawienie przewidywanych wartości do tabeli. W poniższym przykładzie przyjęto założenie, że aplikacja wywołująca używa procedury składowanej do wstawiania wiersza zawierającego przewidywaną wartość do tabeli:

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;
  • Wyniki PREDICT są przechowywane w tabeli o nazwie PredictionResults.
  • Model jest przechowywany jako kolumna varbinary(max) w tabeli o nazwie Models. Dodatkowe informacje, takie jak identyfikator i opis, można zapisać w tabeli w celu zidentyfikowania modelu.
  • Alias d określony dla źródła tabeli w parametrze DATA odwołuje się do kolumn w pliku dbo.mytable. Nazwy kolumn danych wejściowych powinny być zgodne z nazwą danych wejściowych modelu.
  • Alias p określony dla PREDICT funkcji odwołuje się do przewidywanej kolumny zwróconej PREDICT przez funkcję. Nazwa kolumny powinna mieć taką samą nazwę jak nazwa danych wyjściowych modelu.
  • Wszystkie kolumny wejściowe i przewidywana kolumna są dostępne do wyświetlenia w instrukcji SELECT .

Dowiedz się więcej o powiązanych pojęciach w następujących artykułach: