4.4 Embedded R ExecutionのためのSQLおよびREST APIでのConda環境の使用

このトピックでは、Embedded R Execution用のSQLおよびREST APIでユーザー定義関数(UDF)を実行することによるconda環境の使用について説明します。

Embedded R Execution用のSQLおよびREST APIでのUDFの実行

conda環境は、OML4R R、SQLおよびREST APIで使用できます。Embedded R Execution用のSQLおよびREST APIを使用するには、次の情報が必要です。

  1. Autonomous DatabaseのOMLサービス・コンソールからのトークンURL。トークンURLを取得し、アクセス・トークンを設定する方法の詳細は、「アクセスおよび認可のプロシージャと関数」(Autonomous Database)を参照してください。

  2. Oracle Machine Learning for R (OML4R)スクリプト・リポジトリのユーザー定義R関数が含まれるスクリプト。スクリプトを作成してスクリプト・リポジトリに保存する方法の詳細は、「Rでのスクリプトの管理」を参照してください。

ノート:

OML4Rスクリプト実行エンドポイントをコールする際にconda環境を使用するには、SQLを使用する場合はenv_nameフィールドに、RESTを使用する場合はenvNameフィールドに、conda環境を指定します。

Embedded R Execution用のSQL APIを使用したR UDFの実行(同期モード)

rqEval2関数をコールするSELECT文を実行します。PAR_LST引数は、呼び出されたスクリプトでレンダリングされたイメージをWebサーバーが取得できるように、特殊な制御引数ore_graphics_flagtrueに指定します。OUT_FMT引数で、文字列'PNG'は、表が固定列(イメージ・バイト列を含む)が含まれる表でレスポンスを返すことを指定します。SCR_NAMEパラメータは、スクリプト・リポジトリに格納されている関数multi.forecastを指定します。ENV_NAMEは、スクリプトがコールされる環境名myrenvを指定します。

%script

SELECT name, id, value, dbms_lob.substr(image,100,1) image 
FROM table(rqEval2(
    par_lst => '{"ore_graphics_flag":true}',
    out_fmt => 'PNG',
    scr_owner=> NULL,
    scr_name => 'multi.forecast',
    env_name => 'myrenv'));

出力は、次のようなものです。

NAME ID VALUE IMAGE 
1 [[0.4425,8.8345,6.3514,0.1377,2.8709,0.2175,0.0039,"NA"],[6.849,26.4716,19.5012, 89504E470D0A1A0A0000000D49484452000001E0000001E008060000007DD4BE950000200049444154789CECDD7798646599F7F1EFA99C3B4D6402306406040902CA0A282A410517D41103088BA8BB882BAEAE2B665D71511731A02F8318D015C54436EF ---------------------------

Embedded R Execution用のREST APIを使用したR UDFの実行

次の例では、do-evalエンドポイントを使用して、Embedded R Execution用のOML4R REST APIからmulti.forecastという名前のスクリプトを実行します。環境名パラメータenvNamemyrenvに設定します。PNGイメージおよび関数からのデータをJSON形式で戻すには、graphicsFlagパラメータをtrueに設定します。

$ curl -i -X POST --header "Authorization: Bearer ${token}" --header 'Content-Type: application/json'
       --header 'Accept: application/json' -d '{"input":"DF", "envName":"myrenv", "graphicsFlag":true}'
       "${omlserver}/oml/api/r-scripts/v1/do-eval/multi.forecast"