次の方法で共有


Azure Database for PostgreSQL と Azure Machine Learning Services を統合する

Azure AI 拡張機能を使うと、Azure Machine Learning オンライン エンドポイントにデプロイされた機械学習モデルを SQL 内から呼び出すことができます。 これらのモデルは、Azure Machine Learning カタログのものでも、トレーニングされてデプロイされたカスタム モデルでも構いません。

前提条件

Note

Azure Machine Learning のサンプルを調べることができます。

Azure Machine Learning のエンドポイントを構成する

Azure Machine Learning スタジオの [エンドポイント]>[エンドポイントの選択]>[使用] で、オンライン エンドポイントのエンドポイント URI とキーを見つけることができます。 これらの値を使って、オンライン推論エンドポイントを使うように azure_ai 拡張機能を構成します。

select azure_ai.set_setting('azure_ml.scoring_endpoint','<URI>');
select azure_ai.set_setting('azure_ml.endpoint_key', '<Key>');

azure_ml.invoke

オンライン エンドポイントで Azure Machine Learning モデルのデプロイを呼び出して、入力データのスコアを付けます。

azure_ml.invoke(input_data jsonb, timeout_ms integer DEFAULT NULL, throw_on_error boolean DEFAULT true, deployment_name text DEFAULT NULL)

引数

input_data

モデルの要求ペイロードを含む jsonbJSON。

deployment_name

Azure Machine Learning オンライン推論エンドポイントにデプロイされたモデルに対応するデプロイの text

timeout_ms

integer DEFAULT NULL 操作停止後のタイムアウト時間 (ミリ秒単位)。 モデルのデプロイ自体に、ユーザー定義関数のタイムアウト パラメーターより小さいタイムアウト値を指定できます。 このタイムアウトを超えると、スコア付け操作は失敗します。

throw_on_error

boolean DEFAULT true エラーが発生すると、関数から例外がスローされ、ラップしていたトランザクションがロールバックされます。

max_attempts

integer DEFAULT 1 拡張機能が何らかの再試行可能なエラーで失敗した場合に、Azure Machine Learning エンドポイントの呼び出しを再試行する回数。

retry_delay_ms

integer DEFAULT 1000 拡張機能が何らかの再試行可能なエラーで失敗した場合に、Azure Machine Learning エンドポイントを呼び出すまでに待機する時間 (ミリ秒)。

返り値の種類

JSONB で呼び出されたモデルに対する jsonb スコアリング出力。

機械学習モデルを呼び出す

これは、input_data でモデルを呼び出し、jsonb ペイロードを返します。

-- Invoke model, input data depends on the model.
  SELECT * FROM azure_ml.invoke('
  {
    "input_data": [
      [1,2,3,4,5,6,7,8],
      [-1,-2,-3,-4,-5,-6,-7,-8]
    ],
    "params": {}
  }', deployment_name=>'Housingprediction' )

-- Get JSON elements from model output
SELECT jsonb_array_elements(invoke.invoke) as MedianHousePrediction
FROM azure_ml.invoke('
{
  "input_data": [
    [1,2,3,4,5,6,7,8],
    [-1,-2,-3,-4,-5,-6,-7,-8]
  ],
 "params": {}
}', deployment_name=>'Housingprediction' )