9.6.2.6 rqRowEval2関数
関数rqRowEval2
は、Oracle Autonomous Databaseで使用すると、データを一連の行にチャンク化した後、各チャンクに対してユーザー定義R関数を実行します。
関数rqRowEval2
は、INP_NAM
パラメータで指定されたデータをユーザー定義のR関数に渡します。PAR_LST
パラメータを使用して、R関数に引数を渡すことができます。ROW_NUM
パラメータは、R関数の各呼出しに渡す必要のある行数を指定します。最後のチャンクの行数は、指定した数より少なくなる可能性があります。
rqRowEval2
関数ではデータ・パラレル実行がサポートされており、1つ以上のRエンジンにより同じR関数(タスク)が個々の独立したデータ・チャンクで実行されます。Oracle Databaseは、データベース・サーバー・マシンで実行されるRエンジン(複数の場合もある)の管理および制御を処理し、自動的にデータをチャンク化して、パラレルで実行されるRエンジンに渡します。Oracle Databaseでは行のすべてのチャンクに対するR関数の実行完了が保証されており、完了しない場合はrqRowEval2
関数によってエラーが返されます。
OUT_FMT
パラメータを使用して、戻り値の形式を定義します。
構文
rqRowEval2(
INP_NAM VARCHAR2,
PAR_LST VARCHAR2,
OUT_FMT VARCHAR2,
ROW_NUM NUMBER,
SCR_NAME VARCHAR2,
SCR_OWNER VARCHAR2 DEFAULT NULL,
ENV_NAME VARCHAR2 DEFAULT NULL
)
パラメータ
表9-20 rqRowEval2関数のパラメータ
パラメータ | 説明 |
---|---|
|
指定された表またはビューに対する読取りアクセス権が必要です。 |
|
たとえば、R関数でレンダリングされたイメージを取得するには、次を使用します。
関連項目: 特殊な制御引数。 |
|
ファンクションによって返される出力の形式。次のいずれかになります。
関連項目: 出力形式。 |
|
チャンク内の行の数。Rスクリプトは各チャンクで実行されます。 |
|
OML4Rスクリプト・リポジトリ内のユーザー定義R関数の名前。 |
|
登録済Rスクリプトの所有者。デフォルト値はNULL です。NULL の場合、ユーザーのスクリプト・リポジトリでRスクリプトを検索します。
|
|
指定されたユーザー定義R関数の実行時に使用されるconda環境の名前。 |
戻り値
関数rqRowEval2
は、OUT_FMT
パラメータ値で指定された構造を持つ表を返します。
例
例9-42 rqRowEval2関数の使用
この例では、ユーザー定義関数を作成し、その関数をOML4Rスクリプト・リポジトリに保存します。
PL/SQLブロックによって、スクリプトscoreLM
が作成され、スクリプト・リポジトリに追加されます。
%script
BEGIN
sys.rqScriptCreate('scoreLM',
'function(dat, dsname){
ore.load(dsname)
dat$Petal.Length_pred <- predict(mod, newdata=dat)
dat[,c("Petal.Length_pred","Petal.Length","Species")]}',
v_global => FALSE,
v_overwrite => TRUE);
END;
/
結果は次のとおりです:
PL/SQL procedure successfully completed.
---------------------------
例9-43 JSON出力
PAR_LST
引数は、特殊な制御引数ore_service_levelでMEDIUM
サービス・レベルを使用することを指定します。OUT_FMT引数で、文字列'JSON'は、返される表にJSON文字列であるCLOBが含まれることを指定します。SCR_NAME
パラメータは、コールするR関数としてスクリプト・リポジトリ内のscoreLM関数を指定します。JSON出力はCLOBです。set long [length]をコールすると、詳細な出力を取得できます。
%script
set long 1000
SELECT * FROM table(rqRowEval2(
inp_nam => 'IRIS',
par_lst => '{"dsname":"ds-1", "ore_parallel_flag":true, "ore_service_level":"MEDIUM"}',
out_fmt => 'JSON',
row_num => 5,
scr_name => 'scoreLM'));
結果は次のとおりです:
---------------------------
NAME VALUE
[{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1},{"Petal.Length_pred":1.3066,"Species":"setosa","Petal.Length":1.1},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.2},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.2},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.7525,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.7525,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.9755,"Species":"setosa","Petal.Length":1.3},{"Petal.Length_pred":1.3066,"Species":"setosa","Petal.Length":1.4},{"Petal.Length_pred":1.3066,"Species":"setosa","Petal.Length":1.4},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1.4},{"Petal.Length_pred":1.5295,"Species":"setosa","Petal.Length":1
例9-44 リレーショナル
Select
文を実行して、リレーショナル
出力を取得します。
%script
SELECT * FROM table(rqRowEval2(
inp_nam => 'IRIS',
par_lst => '{"dsname":"ds-1", "ore_parallel_flag":true, "ore_service_level":"MEDIUM"}',
out_fmt => '{"Petal.Length_pred":"NUMBER", "Petal.Length":"NUMBER", "Species":"VARCHAR2(10)"}',
row_num => 5,
scr_name => 'scoreLM'));
結果は次のとおりです:
Petal.Length_pred Petal.Length Species
1.5295 1 setosa
1.3066 1.1 setosa
1.5295 1.2 setosa
1.5295 1.2 setosa
1.5295 1.3 setosa
1.5295 1.3 setosa
1.5295 1.3 setosa
1.5295 1.3 setosa
1.7525 1.3 setosa
1.7525 1.3 setosa
1.9755 1.3 setosa
1.3066 1.4 setosa
1.3066 1.4 setosa
1.5295 1.4 setosa
Petal.Length_pred Petal.Length Species
1.5295 1.4 setosa
1.5295 1.4 setosa
1.5295 1.4 setosa
1.5295 1.4 setosa
1.5295 1.4 setosa
1.5295 1.4 setosa
1.5295 1.4 setosa
1.7525 1.4 setosa
1.7525 1.4 setosa
1.7525 1.4 setosa
1.3066 1.5 setosa
1.3066 1.5 setosa
1.5295 1.5 setosa
1.5295 1.5 setosa
Petal.Length_pred Petal.Length Species
1.5295 1.5 setosa
1.5295 1.5 setosa
1.5295 1.5 setosa
1.5295 1.5 setosa
1.5295 1.5 setosa
1.7525 1.5 setosa
1.9755 1.5 setosa
1.9755 1.5 setosa
1.9755 1.5 setosa
1.5295 1.6 setosa
1.5295 1.6 setosa
1.5295 1.6 setosa
1.5295 1.6 setosa
1.5295 1.6 setosa
Petal.Length_pred Petal.Length Species
1.9755 1.6 setosa
2.4215 1.6 setosa
1.5295 1.7 setosa
1.7525 1.7 setosa
1.9755 1.7 setosa
2.1985 1.7 setosa
1.5295 1.9 setosa
1.9755 1.9 setosa
3.5365 3 versicolor
3.3135 3.3 versicolor
3.3135 3.3 versicolor
3.3135 3.5 versicolor
3.3135 3.5 versicolor
3.9825 3.6 versicolor
Petal.Length_pred Petal.Length Species
3.3135 3.7 versicolor
3.5365 3.8 versicolor
3.5365 3.9 versicolor
3.7595 3.9 versicolor
4.2055 3.9 versicolor
3.3135 4 versicolor
3.7595 4 versicolor
3.9825 4 versicolor
3.9825 4 versicolor
3.9825 4 versicolor
3.3135 4.1 versicolor
3.9825 4.1 versicolor
3.9825 4.1 versicolor
3.7595 4.2 versicolor
Petal.Length_pred Petal.Length Species
3.9825 4.2 versicolor
3.9825 4.2 versicolor
4.4285 4.2 versicolor
3.9825 4.3 versicolor
3.9825 4.3 versicolor
3.7595 4.4 versicolor
3.9825 4.4 versicolor
4.2055 4.4 versicolor
4.2055 4.4 versicolor
4.8745 4.5 virginica
3.9825 4.5 versicolor
4.4285 4.5 versicolor
4.4285 4.5 versicolor
4.4285 4.5 versicolor
Petal.Length_pred Petal.Length Species
4.4285 4.5 versicolor
4.4285 4.5 versicolor
4.6515 4.5 versicolor
3.9825 4.6 versicolor
4.2055 4.6 versicolor
4.4285 4.6 versicolor
3.7595 4.7 versicolor
4.2055 4.7 versicolor
4.2055 4.7 versicolor
4.4285 4.7 versicolor
4.6515 4.7 versicolor
5.0975 4.8 virginica
5.0975 4.8 virginica
4.2055 4.8 versicolor
Petal.Length_pred Petal.Length Species
5.0975 4.8 versicolor
5.0975 4.9 virginica
5.0975 4.9 virginica
5.5434 4.9 virginica
4.4285 4.9 versicolor
4.4285 4.9 versicolor
4.4285 5 virginica
5.3204 5 virginica
5.5434 5 virginica
4.8745 5 versicolor
4.4285 5.1 virginica
5.0975 5.1 virginica
5.3204 5.1 virginica
5.3204 5.1 virginica
Petal.Length_pred Petal.Length Species
5.5434 5.1 virginica
6.2124 5.1 virginica
6.4354 5.1 virginica
4.6515 5.1 versicolor
5.5434 5.2 virginica
6.2124 5.2 virginica
5.3204 5.3 virginica
6.2124 5.3 virginica
5.7664 5.4 virginica
6.2124 5.4 virginica
5.0975 5.5 virginica
5.0975 5.5 virginica
5.7664 5.5 virginica
4.2055 5.6 virginica
Petal.Length_pred Petal.Length Species
5.0975 5.6 virginica
5.7664 5.6 virginica
5.9894 5.6 virginica
6.4354 5.6 virginica
6.4354 5.6 virginica
5.7664 5.7 virginica
6.2124 5.7 virginica
6.6584 5.7 virginica
4.6515 5.8 virginica
5.0975 5.8 virginica
5.9894 5.8 virginica
5.7664 5.9 virginica
6.2124 5.9 virginica
5.0975 6 virginica
Petal.Length_pred Petal.Length Species
6.6584 6 virginica
5.3204 6.1 virginica
6.2124 6.1 virginica
6.6584 6.1 virginica
5.0975 6.3 virginica
5.5434 6.4 virginica
5.7664 6.6 virginica
5.5434 6.7 virginica
5.9894 6.7 virginica
6.2124 6.9 virginica
150 rows selected.
---------------------------