プライマリ・コンテンツに移動

Oracle® Data Minerインストレーションおよび管理ガイド リリース17.4 E94575-01 |
| 目次 | 索引

前へ | 次 |

# 8 PL/SQL APIを使用したワークフローの管理

この章では、PL/SQL APIを使用してワークフローを管理する方法を説明します。

- PL/SQL APIについて
  Oracle Data Minerには、アプリケーションがOracle Data Minerプロジェクトとワークフローを直接管理できるようにする、リポジトリPL/SQL API一式が付属しています。
- PL/SQL API
  PL/SQL APIを使用してプロジェクトとワークフローを管理できます。
- リポジトリ・ビュー
  リポジトリ・ビューでは、ワークフローやプロジェクトに関連する情報の問合せ、およびステータスの監視を行うことができます。
- PL/SQL APIユースケース
  PL/SQL APIユースケースでは、PL/SQL APIを実行して構築ワークフローとAPPLYワークフローをスケジュールおよび実行する方法を示します。

## PL/SQL APIについて

Oracle Data Miner には、アプリケーションがOracle Data Minerプロジェクトとワークフローを直接管理できるようにする、リポジトリPL/SQL API一式が含まれます。

プロジェクトPL/SQL APIはODMR_PROJECTパッケージにあり、ワークフローPL/SQL APIはODMR_WORKFLOWパッケージにあります。どちらのパッケージも、Oracle Data Minerリポジトリ内のODMRSYSスキーマで定義されます。

PL/SQL APIを使用すると、次のことができます。

- Data Minerプロジェクトとワークフローの管理

- ワークフローのスケジュール

- ワークフローの実行

- プロジェクトおよびワークフロー情報の問合せ

- ワークフロー実行ステータスのモニター

- 生成された結果の問合せ

## PL/SQL API

PL/SQL APIを使用してプロジェクトとワークフローを管理できます。

PL/SQL APIを使用して、次のタスクを実行します。

- PROJECT_CREATE
  ファンクション`PROJECT_CREATE`は、入力したプロジェクト名を使用してプロジェクトを作成します。このファンクションは、プロジェクトIDを戻します。プロジェクトがすでに存在すると、例外が発生します。
- PROJECT_RENAME
  `PROJECT_RENAME`プロシージャは、既存のプロジェクトの名前を変更します。新しい名前を持つプロジェクトがすでに存在する場合は、例外が発生します。
- PROJECT_DELETE
  プロシージャ`PROJECT_DELETE`を使用すると、1つ以上のプロジェクトと、それに含まれるワークフローを削除できます。Oracle Data Minerでワークフローが実行中か開かれている場合は、例外が発生します。
- WF_RUN
  ワークフローを実行するファンクション`WF_RUN`には、名前、プロジェクトID、ワークフローおよび実行する特定のノードを受け入れるシグネチャが含まれます。
- WF_STOP
  プロシージャ`WF_STOP`を使用すると、実行するようにスケジュールされているワークフローを停止またはキャンセルできます。ワークフローがすでに実行中でないか、スケジュールされていない場合、例外が発生します。
- WF_RENAME
  プロシージャ`WF_RENAME`は、既存のワークフローの名前を変更します。
- WF_DELETE
  プロシージャ`WF_DELETE`は、ワークフローを、表、ビュー、モデル、テスト結果などの、生成されたすべてのオブジェクトごと削除します。ワークフローがすでに実行中か、Oracle Data Minerによって開かれている場合は、例外が発生します。
- WF_IMPORT
  `WF_IMPORT`ファンクションは、(Oracle Data Minerによってエクスポートされた)ワークフローを、指定したプロジェクトにインポートします。ワークフローは後方互換なので、古いバージョンのワークフローを新しいOracle Data Minerリポジトリにインポートできます。
- WF_EXPORT
  `WF_EXPORT`ファンクションは、指定したワークフローをエクスポートします。ワークフローがすでに実行中か、Oracle Data Minerによって開かれている場合は、例外が発生します。別の方法として、ワークフローがエクスポートするODMR_USER_PROJECT_WORKFLOWを問い合わせることができます。

### PROJECT_CREATE

ファンクション`PROJECT_CREATE`は、入力したプロジェクト名を使用してプロジェクトを作成します。このファンクションは、プロジェクトIDを戻します。プロジェクトがすでに存在すると、例外が発生します。

ファンクション:

    FUNCTION PROJECT_CREATE(p_project_name IN VARCHAR2,
    p_comment IN VARCHAR2 DEFAULT NULL) RETURN NUMBER

表8-1に、`PROJECT_CREATE`ファンクションで使用されるパラメータをリストします。

表8-1 PROJECT_CREATEファンクションのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_project_name` | 作成されたプロジェクトに名前を割り当てます。
`p_comment` | プロジェクトに適用するコメントを指定します。

### PROJECT_RENAME

`PROJECT_RENAME`プロシージャは、既存のプロジェクトの名前を変更します。新しい名前を持つプロジェクトがすでに存在する場合は、例外が発生します。

プロシージャ:

    PROCEDURE PROJECT_RENAME(p_project_id IN NUMBER, p_project_name IN VARCHAR2)

表8-2に、`PROJECT_RENAME`プロシージャで使用されるパラメータをリストします。

表8-2 PROJECT_RENAMEプロシージャのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_project_id` | 名前を変更するプロジェクトのプロジェクトIDを指定します。
`p_project_name` | プロジェクトの新しい名前を指定します。

### PROJECT_DELETE

プロシージャ`PROJECT_DELETE`を使用すると、1つ以上のプロジェクトと、それに含まれるワークフローを削除できます。Oracle Data Minerでワークフローが実行中か開かれている場合は、例外が発生します。

単一のプロジェクトを削除するプロシージャ:

    PROCEDURE PROJECT_DELETE(p_project_id IN NUMBER)

複数のプロジェクトを削除するプロシージャ:

    PROCEDURE PROJECT_DELETE(p_project_ids IN ODMR_OBJECT_IDS)

表8-3に、`PROJECT_DELETE`プロシージャで使用されるパラメータをリストします。

表8-3 PROJECT_DELETEプロシージャのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_project_id` | 削除するプロジェクトのプロジェクトIDを指定します。
`p_project_ids` | 削除するプロジェクトのプロジェクトIDを指定します。

### WF_RUN

ワークフローを実行するファンクション`WF_RUN`には、名前、プロジェクトID、ワークフローおよび実行する特定のノードを受け入れるシグネチャが含まれます。

プロジェクトID、ワークフローIDおよびノードIDは、`ODMR_USER_WORKFLOW_NODES`ビューを使用して問い合わせることができます。

- WF_RUNパラメータ
  異なるパラメータの組合せを使用してWF_RUNファンクションを実行できます。
- プロジェクト名、ワークフロー名およびノード名を伴うWF_RUN
  プロジェクト名、ワークフロー名およびノード名のパラメータを伴う`WF_RUN`:
- プロジェクト名、ワークフロー名、ノード名および時間間隔を伴うWF_RUN
  プロジェクト名、ワークフロー名、ノード名および時間間隔を伴う`WF_RUN`:
- プロジェクトID、ワークフローID、ノードIDおよび時間間隔を伴うWF_RUN
  プロジェクトID、ワークフローID、ノードIDおよび時間間隔を伴う`WF_RUN`:
- プロジェクトID、ワークフローIDおよびノードIDを伴うWF_RUN
  プロジェクトID、ワークフローIDおよびノードIDのパラメータを伴う`WF_RUN`:

#### WF_RUNのパラメータ

異なるパラメータの組合せを使用してWF_RUNファンクションを実行できます。

- プロジェクト名、ワークフロー名およびノード名を伴う`WF_RUN`

- プロジェクトID、ワークフローIDおよびノードIDを伴う`WF_RUN`

- プロジェクト名、ワークフロー名、ノード名および時間間隔を伴う`WF_RUN`

- プロジェクトID、ワークフローID、ノードIDおよび時間間隔を伴う`WF_RUN`

`RERUN_WORKFLOW` RUNモードは、ノードの接続方法に関係なく、ワークフロー内のすべてのノードを実行します。ワークフローに2系統以上の別々のノードが含まれる場合、すべての系統が実行されますが、系統実行の順序は決まっていません。つまり、ユーザーは系統の実行順序を設定できません。

表8-4に、`WF_RUN`ファンクションで使用されるパラメータをリストします。

表8-4 WF_RUNファンクションのパラメータのリスト

パラメータ: | 説明
--- | ---
`P_PROJECT_NAME` | ワークフローが作成されたプロジェクト名を指定します。
`P_PROJECT_ID` | ワークフローが作成されたプロジェクトIDを指定します。
`P_WORKFLOW_NAME` | 実行するワークフロー名を指定します。
`P_WORKFLOW_ID` | 実行するワークフローIDを指定します。
`P_NODE_NAMES` | 実行するワークフローのノード名を指定します。
`P_NODE_IDS` | 実行するワークフローのノードIDを指定します。
`P_RUN_MODE` | `VALIDATE_ONLY`: 指定したノードの親ノードを検証します。 `RUN_NODE_ONLY`: 指定したノードを実行します。ノードがすでに実行されている場合、再び実行されることはありません。親ノードが実行されなかった場合は実行され、それ以外の場合は無視されます。 `RERUN_NODE_ONLY`: 指定したノードのステータスをREADY状態にリセットします。続いてそれらのノードが再び実行されます。 `RERUN_NODE_CHILDREN`: 指定したノードと子ノードのステータスをREADY状態にリセットします。続いてそれらのノードが再び実行されます。 `RERUN_NODE_PARENTS`: 指定したノードと親ノードのステータスをREADY状態にリセットします。続いてそれらのノードが再び実行されます。 `RERUN_WORKFLOW`: すべてのノードのステータスをREADY状態にリセットします。続いてノードが実行されます(ワークフロー実行を完了)。注意: `p_node_names`は無視されます。
`P_MAX_NUM_THREADS` | すべてのワークフロー全体のパラレル・モデル・ビルドの最大数を指定します。決定済システムにはNULLを指定します。システムに豊富なリソースがある場合のみこのパラメータを使用し、それ以外の場合は、この値をNULLに設定してデフォルト値を使用します。
`P_SCHEDULE` | Schedulerで定義された既存のスケジュール・オブジェクトを指定します。`P_SCHEDULE`に値が指定されていない場合、ワークフローは可能な限り早く実行するようにスケジュールされます。
`P_START_DATE` | このワークフローが初めて開始するようにスケジュールされている日付と時刻を指定します。`P_START_DATE`と`P_REPEAT_INTERVAL`がNULLに設定されている場合、ワークフローは可能な限り早く実行するようにスケジュールされます。
`P_REPEAT_INTERVA`L | ワークフローが繰返し間隔を指定します。反復間隔は、カレンダ式またはPL/SQL式を使用して指定できます。指定した式を評価して、ワークフローの次回実行時を決定します。`P_REPEAT_INTERVAL`を指定しない場合、ワークフローは、指定した開始日に1回のみ実行されます。
`P_END_DATE` | ワークフローが期限切れになり、実行できなくなる日付と時刻を指定します。`P_END_DATE`の値が指定されない場合、ジョブは無期限に繰り返されます。
`P_JOB_CLASS` | ワークフローを実行する既存のジョブ・クラスを指定します。`P_JOB_CLASS`の値が指定されていない場合、デフォルトのジョブ・クラスが使用されます。

#### プロジェクト名、ワークフロー名およびノード名を伴うWF_RUN

プロジェクト名、ワークフロー名およびノード名のパラメータを伴う`WF_RUN`:

    FUNCTION WF_RUN(P_PROJECT_NAME IN VARCHAR2,
                                    P_WORKFLOW_NAME IN VARCHAR2,
                                    P_NODE_NAMES IN ODMR_OBJECT_NAMES,
                                    P_RUN_MODE IN VARCHAR2 DEFAULT 'RUN_NODE_ONLY',
                                    P_MAX_NUM_THREADS IN NUMBER DEFAULT NULL,
                                    P_SCHEDULE IN VARCHAR2 DEFAULT NULL,
                                    P_JOB_CLASS IN VARCHAR2 DEFAULT NULL
    RETURN VARCHAR2

#### プロジェクト名、ワークフロー名、ノード名および時間間隔を伴うWF_RUN

名前のパラメータと開始および終了日付を伴う`WF_RUN`ファンクション:

    FUNCTION WF_RUN(P_PROJECT_NAME IN VARCHAR2,
                       P_WORKFLOW_NAME IN VARCHAR2,
                       P_NODE_NAMES IN ODMR_OBJECT_NAMES,
                       P_RUN_MODE IN VARCHAR2 DEFAULT 'RUN_NODE_ONLY',
                       P_MAX_NUM_THREADS IN NUMBER DEFAULT NULL,
                       P_START_DATE IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       P_REPEAT_INTERVAL IN VARCHAR2 DEFAULT NULL,
                       P_END_DATE IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       P_JOB_CLASS IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2

#### プロジェクトID、ワークフローID、ノードIDおよび時間間隔を伴うWF_RUN

IDと開始および終了日付のパラメータを伴う`WF_RUN`ファンクション:

    FUNCTION WF_RUN(P_PROJECT_ID IN NUMBER,
                    P_WORKFLOW_ID IN NUMBER,
                    P_NODE_IDS IN ODMR_OBJECT_IDS,
                    P_RUN_MODE IN VARCHAR2 DEFAULT 'RUN_NODE_ONLY',
                    P_MAX_NUM_THREADS IN NUMBER DEFAULT NULL,
                    P_START_DATE IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                    P_REPEAT_INTERVAL IN VARCHAR2 DEFAULT NULL,
                    P_END_DATE IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                    P_JOB_CLASS IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2

#### プロジェクトID、ワークフローIDおよびノードIDを伴うWF_RUN

プロジェクトID、ワークフローIDおよびノードIDのパラメータを伴う`WF_RUN`ファンクション:

    FUNCTION WF_RUN(P_PROJECT_ID IN NUMBER,
                                     P_WORKFLOW_ID IN NUMBER,
                                     P_NODE_IDS IN ODMR_OBJECT_IDS,
                                     P_RUN_MODE IN VARCHAR2 DEFAULT 'RUN_NODE_ONLY',
                                     P_MAX_NUM_THREADS IN NUMBER DEFAULT NULL,
                                     P_SCHEDULE IN VARCHAR2 DEFAULT NULL,
                                     P_JOB_CLASS IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR

### WF_STOP

プロシージャ`WF_STOP`を使用すると、実行するようにスケジュールされているワークフローを停止またはキャンセルできます。ワークフローがすでに実行中でないか、スケジュールされていない場合、例外が発生します。

プロシージャは次のとおりです。

    PROCEDURE WF_STOP(p_workflowId IN NUMBER)

表8-5に、`WF_STOP`プロシージャで使用されるパラメータをリストします。

表8-5 WF_STOPプロシージャのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_workflow_id` | ワークフローを取り消すために、ワークフローIDを指定してください。

### WF_RENAME

プロシージャ`WF_RENAME`は、既存のワークフローの名前を変更します。

このプロシージャでは、次の条件下で例外が発生します。

- 新しい名前を持つワークフローがすでに存在する場合

- ワークフローがすでに実行中か、Oracle Data Minerによって開かれている場合

ワークフローの名前を変更するプロシージャ:

    PROCEDURE WF_RENAME(p_workflowId IN NUMBER,
                                      p_workflow_name IN VARCHAR2,
                                      p_mode IN CHAR DEFAULT 'R')

表8-6に、`WF_RENAME`プロシージャで使用されるパラメータをリストします。

表8-6 WF_RENAMEプロシージャのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_workflow_id` | 名前を変更するワークフローIDを指定します。
`p_workflow_name` | 新しいワークフロー名を指定します。
`p_mode` | このパラメータは内部で使用します。

### WF_DELETE

プロシージャ`WF_DELETE`は、ワークフローを、表、ビュー、モデル、テスト結果などの、生成されたすべてのオブジェクトごと削除します。ワークフローがすでに実行中か、Oracle Data Minerによって開かれている場合は、例外が発生します。

プロシージャ:

    PROCEDURE WF_DELETE(p_workflowId IN NUMBER)

表8-7に、`WF_DELETE`プロシージャで使用されるパラメータをリストします。

表8-7 WF_DELETEプロシージャのパラメータのリスト

パラメータ: | 説明
--- | ---
`p_workflow_id` | 削除するワークフローのIDを指定します。

### WF_IMPORT

`WF_IMPORT`ファンクションは、(Oracle Data Minerによってエクスポートされた)ワークフローを、指定したプロジェクトにインポートします。ワークフローは後方互換なので、古いバージョンのワークフローを新しいOracle Data Minerリポジトリにインポートできます。

このファンクションは、インポート時に、ワークフローにリポジトリ内の既存のワークフローとのオブジェクト名競合があるかどうかを検出します。`p_force`パラメータは、インポートを終了するかどうかを決定します。

例外は、次の条件下で発生します。

- プロジェクトが存在しない場合

- ワークフロー・メタデータが無効か、現在のリポジトリと互換性がない場合

- 同じ名前を持つワークフローがすでに存在する場合

ファンクション:

    FUNCTION WF_IMPORT(p_project_id IN NUMBER,
                           p_workflow_name IN VARCHAR2,
                           p_workflow_data IN XMLType,
                           p_comment IN VARCHAR2,
                           p_force IN BOOLEAN DEFAULT FALSE) RETURN NUMBER;

表8-8に、`WF_IMPORT`ファンクションで使用されるパラメータをリストします。

表8-8 WF_IMPORTプロシージャのファンクションのリスト

パラメータ: | 説明
--- | ---
`p_project_id` | ワークフローをインポートするプロジェクトのIDを指定します。
`p_workflow_name` | インポートするワークフローを指定します。
`p_workflow_data` | ワークフロー・メタデータを指定します。このワークフローは、Oracle Data Minerによって事前にエクスポートされている必要があり、ワークフロー・バージョンはリポジトリがサポートするものより新しくない必要があります。
`p_comment` | ワークフローに適用されるコメントを指定します。
`p_force` | ワークフローに、リポジトリ内の既存のワークフローとのオブジェクト名競合がある場合に、強制的にインポートするかどうかを決定します。適用できる値は次のとおりです。 `p_force = FALSE`の場合、競合するオブジェクト名のリストを持つ例外が発生します。 `p_force = TRUE`の場合、ワークフローのインポートが進行します。

### WF_EXPORT

`WF_EXPORT`ファンクションは、指定したワークフローをエクスポートします。ワークフローがすでに実行中か、Oracle Data Minerによって開かれている場合は、例外が発生します。別の方法として、ワークフローがエクスポートするODMR_USER_PROJECT_WORKFLOWを問い合わせることができます。

ファンクション:

    FUNCTION WF_EXPORT(p_workflow_id IN NUMBER) RETURN XMLType;

表8-9に、`WF_EXPORT`ファンクションで使用されるパラメータをリストします。

表8-9 WF_EXPORTプロシージャのファンクションのリスト

パラメータ: | 説明
--- | ---
`p_workflow_id` | エクスポートするワークフローのIDを指定します。

関連項目

- ODMR_USER_PROJECT_WORKFLOW

## リポジトリ・ビュー

リポジトリ・ビューでは、ワークフローやプロジェクトに関連する情報の問合せ、およびステータスの監視を行うことができます。

リポジトリ・ビューを使用すると、次のことが可能です。

- ワークフローとプロジェクトの情報を問い合せます

- ワークフロー実行ステータスのモニター

- 生成された結果の問合せ

次のリポジトリAPIまたはビューが利用できます。

- ODMR_USER_PROJECT_WORKFLOW
  特定のプロジェクトまたはすべてのプロジェクトに属するすべてのワークフローを問い合せるには、`ODMR_USER_PROJECT_WORKFLOW`リポジトリ・ビューを使用します。このビューは、ワークフローに関する情報、たとえばステータス、作成時刻、更新時刻などを提供します。
- ODMR_USER_WORKFLOW_ALL
  個々のワークフローの完了後にワークフロー・ノードのステータスを問い合せるには、`ODMR_USER_WORKFLOW_ALL`リポジトリ・ビューを使用します。
- ODMR_USER_WORKFLOW_LOG
  ワークフロー実行のログを問い合せるには、`ODMR_USER_WORKFLOW_LOG`リポジトリ・ビューを使用します。
- ODMR_USER_WORKFLOW_NODES
  ノード名、ノード・ステータス、ノードIDなど、ワークフローの一部である個々のノードに関する情報を問い合せるには、`ODMR_USER_WORKFLOW_NODES`リポジトリ・ビューを使用します。
- ODMR_USER_WORKFLOW_MODELS
  ワークフローの特定の構築またはモデル・ノードに属するマイニング・モデルを問い合せるには、`ODMR_USER_WORKFLOW_MODELS`リポジトリ・ビューを使用します。
- ODMR_USER_WF_CLAS_TEST_RESULTS
  最後のワークフロー実行で特定のマイニング・モデルのために生成された分類結果を問い合せるには、`ODMR_USER_WF_CLAS_TEST_RESULTS`リポジトリ・ビューを使用します。
- ODMR_USER_WF_REGR_TEST_RESULTS
  最後のワークフロー実行で特定のマイニング・モデルのために生成された回帰結果を問い合せるには、`ODMR_USER_WF_REGR_TEST_RESULTS`リポジトリ・ビューを使用します。
- ODMR_USER_WF_TEST_RESULTS
  `ODMR_USER_WF_CLAS_TEST_RESULTS`と`ODMR_USER_WF_REGR_TEST_RESULTS`の結合結果を問い合せるには、`ODMR_USER_WF_TEST_RESULTS`リポジトリ・ビューを使用します。
- ODMR_USER_WORKFLOW_ALL_POLL
  `ODMR_USER_WORKFLOW_ALL_POLL`ビューを使用してOracle Data Minerワークフローのステータスをポーリングすることで、Oracle Schedulerビューの使用を最小限に抑えることができます。

### ODMR_USER_PROJECT_WORKFLOW

特定のプロジェクトまたはすべてのプロジェクトに属するすべてのワークフローを問い合わせるには、`ODMR_USER_PROJECT_WORKFLOW`リポジトリ・ビューを使用します。このビューは、ワークフローに関する情報、たとえばステータス、作成時刻、更新時刻などを提供します。

8-10に、このビューの詳細を示します。

表8-10 ODMR_USER_PROJECT_WORKFLOWリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | これは、ワークフローが作成されたプロジェクトのIDです。
PROJECT_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されたプロジェクトの名前です。
PJ_CREATION_TIME | TIMESTAMP (6) | これは、プロジェクト作成時刻です。
PJ_LAST_UPDATED_TIME | TIMESTAMP (6) | プロジェクトの最終更新日タイム・スタンプ。
PJ_COMMENTS | VARCHAR2 (4000 CHAR) | これらは、プロジェクトに関連したコメントです(存在する場合)。
WORKFLOW_ID | NUMBER | これは、ワークフローIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
WORKFLOW_DATA | XMLTYPE | これは、XML形式のワークフロー・メタデータです。
CHAIN_NAME | VARCHAR (128 CHAR) | これは内部使用専用です。
STATUS | VARCHAR (30 CHAR) | INACTIVE: ワークフローがアイドル状態にあることを示します。 ACTIVE: ワークフローが実行中であることを示します。 QUEUED: ワークフローが実行キュー内にあることを示します。 STOPPING: ワークフローが停止されていることを示します。 STOPPED: 実行中ワークフローが停止していることを示します。 SCHEDULED: ワークフローが実行されるようにスケジュールされていることを示します。
WF_CREATION_TIME | TIMESTAMP (6) | これは、ワークフロー作成のタイム・スタンプです。
WF_LAST_UPDATED_TIME | TIMESTAMP (6) | これは、ワークフロー最終更新日のタイム・スタンプです。
WF_COMMENTS | VARCHAR2 (4000 CHAR) | これらは、ワークフローに関連したコメントです(存在する場合)。

### ODMR_USER_WORKFLOW_ALL

個々のワークフローの完了後にワークフロー・ノードのステータスを問い合わせるには、`ODMR_USER_WORKFLOW_ALL`リポジトリ・ビューを使用します。

たとえば、最後のワークフロー実行で失敗したノードと、それに関連するエラー詳細を問い合わせることができます。8-11に、このビューの詳細を示します。

表8-11 ODMR_USER-WORKFLOW_ALLリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
WORKFLOW_ID | NUMBER | これは、ワークフローのIDです。
WF_JOB_NAME | VARCHAR2 (261) | これは、ワークフローを実行するSchedulerジョブです。
LOG_DATE | TIMESTAMP (6)WITH TIME ZONE | これは、ログ・エントリのタイム・スタンプです。
LOG_ID | NUMBER | これは、ログ・エントリIDです。
NODE_ID | VARCHAR2 (261) | これは、ワークフロー・ノードIDです。
SUBNODE_ID | VARCHAR2 (261) | これは、ワークフロー・サブ・ノードです。たとえば、構築ノード内のモデル・ノード。
NODE_STATUS | VARCHAR2 (11) | RUNNING: ノードが実行中であることを示します。 SUCCEEDED: ノード実行が正常に完了したことを示します。 FAILED: ノードが失敗し、未完了であることを示します。 NOT_STARTED: ノードが実行の待機中であることを示します。 SCHEDULED: ノードが実行されるようにスケジュールされていることを示します。 PAUSED: ノードが一時停止されていることを示します。これは、例外です。 STOPPED: ノード実行が停止していることを示します。 STALLED: ノードが停止したことを示します。これは、例外です。
SUBNODE_STATUS | VARCHAR2 (30) | NODE_STATUSと同じ
NODE_START_TIME | TIMESTAMP (6)WITH TIME ZONE | これは、ノード開始のタイム・スタンプです。
NODE_RUN_TIME | INTERVAL DAY (9) TO SECOND (6) | これは、ノード実行時刻です。
ERROR_CODE | NUMBER | これは、ノードによって戻されるエラー・コードです。
LOG_MESSAGE | VARCHAR2 (4000 CHAR) | これは、ノードによって生成されるログ・メッセージです。

### ODMR_USER_WORKFLOW_LOG

ワークフロー実行のログを問い合わせるには、`ODMR_USER_WORKFLOW_LOG`リポジトリ・ビューを使用します。

Oracle Data Minerは、このビューを使用してワークフロー・イベント・ログを抽出、表示します。8-12に、このビューの詳細を示します。

表8-12 ODMR_USER_WORKFLOW_LOGリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
LOG_ID | NUMBER | これは、ログ・エントリIDです。
JOB_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローを実行するSchedulerジョブです。
PROJ_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されたプロジェクトです。
PRO_ID | NUMBER | これは、ワークフローが作成されたプロジェクトIDです。
WF_NAME | VARCHAR2 (128 CHAR) | これは、ワークフロー名です。
WF_ID | NUMBER | これは、ワークフローIDです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ワークフロー内のノードの名前です。
NODE_ID | VARCHAR2 (30) | これは、ノードIDです。
SUBNODE_NAME | VARCHAR2 (128 CHAR) | これは、ワークフロー・サブ・ノード名です。たとえば、構築ノードのモデル名。
SUBNODE_ID | VARCHAR2 (30) | これはワークフロー・サブ・ノードのIDです。たとえば、構築ノードのモデルID。
LOG_TIMESTAMP | TIMESTAMP (6)WITH TIME ZONE | これは、ログ・エントリのタイム・スタンプです。
LOG_DURATION | INTERVAL DAY (3) TO SECOND (0) | これは、ログ・エントリ期間です(単位は日数と秒数)。
LOG TYPE | VARCHAR2 (30 CHAR) | WARN: 警告を示します。 ERR: エラーを示します。 INFO: 情報内容を示します。
LOG SUBTYPE | VARCHAR2 (30 CHAR) | START: タスクの開始を示します。 END: タスクの終了を示します。
LOG_MESSAGE | NVARCHAR2 (2000) | これは、ノードによって生成されるログ・メッセージです。
LOG_MESSAGE_DETAILS | VARCHAR2 (4000 CHAR) | これは、ノードによって生成されるログ・メッセージの詳細です。
LOG_TASK | VARCHAR2 (30 CHAR) | ノードが実行中のとき、次のタスクのうち1つ以上を実行します。 PROJECT WORKFLOW NODE SUBNODE VALIDATE SAMPLE CACHE STATISTICS FEATURES DATAPREP BUILD TEST APPLY TRANSFORM TEXT BUILDTEXT APPLYTEXT OUTPUT CLEANUP CREATE EXPLORE STATISTICS CREATE HISTOGRAM CREATE SAMPLE DATA CREATE HISTOGRAM SAMPLE CREATE DATA GUIDE CREATE PROJECT DELETE PROJECT RENAME PROJECT SET COMMENT CREATE WORKFLOW RUN WORKFLOW RENAME WORKFLOW DELETE WORKFLOW IMPORT WORKFLOW EXPORT WORKFLOW

### ODMR_USER_WORKFLOW_NODES

ノード名、ノード・ステータス、ノードIDなど、ワークフローの一部である個々のノードに関する情報を問い合わせるには、`ODMR_USER_WORKFLOW_NODES`リポジトリ・ビューを使用します。

8-13に、このビューの詳細を示します。

表8-13 ODMR_USER_WORKFLOW_NODESリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | これは、ワークフローが作成されたプロジェクトのIDです。
PROJECT_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されたプロジェクトの名前です。
WORKFLOW_ID | NUMBER | これは、ワークフローのIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
NODE_TYPE | VARCHAR2 (30 CHAR) | これは、ノード・タイプです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ノードの名前です。
NODE_ID | NUMBER | これは、ノードのIDです。
NODE_STATUS | VARCHAR2 (10 CHAR) | INVALID: ノードが有効でなく、実行できないことを示します。 WARNING: ノードは実行されたが警告があったことを示します。 READY: ノードがいつでも実行できることを示します。 FAILURE: ノード実行が失敗したことを示します。 COMPLETE: ノード実行が正常に完了したことを示します。

### ODMR_USER_WORKFLOW_MODELS

ワークフローの特定の構築またはモデル・ノードに属するマイニング・モデルを問い合わせるには、`ODMR_USER_WORKFLOW_MODELS`リポジトリ・ビューを使用します。

8-14に、このビューの詳細を示します。

表8-14 ODMR_USER_WORKFLOW_MODELSリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | これは、ワークフローが作成されたプロジェクトIDです。
PROJECT_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されたプロジェクトの名前です。
WORKFLOW_ID | NUMBER | これは、ワークフローのIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
NODE_TYPE | VARCHAR2 (30 CHAR) | これは、ノード・タイプです。
NODE_ID | NUMBER | これは、ワークフロー・ノードIDです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ワークフロー・ノードの名前です。
NODE_STATUS | VARCHAR2 (30 CHAR) | INVALID: ノードが有効でなく、実行できないことを示します。 WARNING: ノードは実行されたが警告があったことを示します。 READY: ノードがいつでも実行できることを示します。 FAILURE: ノード実行が失敗したことを示します。 COMPLETE: ノード実行が正常に完了したことを示します。
MODEL_TYPE | VARCHAR2 (30 CHAR) | これは、モデル・タイプです。たとえば、Naive Bayesモデル。
MODEL_ID | NUMBER | これは、モデルのIDです。
MODEL_NAME | VARCHAR2 (128 CHAR) | これは、モデルの名前です。
MODEL_STATUS | VARCHAR2 (30 CHAR) | ノード・ステータスと同じ。
MODEL_CREATIONDATE | VARCHAR2 (30 CHAR) | これは、モデルが作成された日付です。

### ODMR_USER_WF_CLAS_TEST_RESULTS

最後のワークフロー実行で特定のマイニング・モデルのために生成された分類結果を問い合せるには、`ODMR_USER_WF_CLAS_TEST_RESULTS`リポジトリ・ビューを使用します。

8-15に、このビューの詳細を示します。

表8-15 ODMR_USER_WF_CLAS_TEST_RESULTS

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | これは、ワークフローが作成されたプロジェクトのIDです。
PROJECT_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されたプロジェクトの名前です。
WORKFLOW_ID | NUMBER | これは、ワークフローのIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
NODE_TYPE | VARCHAR2 (30 CHAR) | これは、ノード・タイプです。
NODE_ID | NUMBER | これは、ノードのIDです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ノードの名前です。
NODE_STATUS | VARCHAR2 (10 CHAR) | INVALID: ノードの実行準備ができていないことを示します。 WARNING: ノードは完全に実行されたが警告があったことを示します。 READY: ノードがいつでも実行できることを示します。 FAILURE: ノード実行が失敗したことを示します。 COMPLETE: ノードが正常に実行されたことを示します。
MODEL_ID | NUMBER | これは、モデルのIDです。
MODEL_NAME | VARCHAR2 (128 CHAR) | これは、モデルの名前です。
MODEL_STATUS | VARCHAR2 (10 CHAR) | WARNING: モデルは実行されたが警告があったことを示します。 READY: モデルがいつでも実行できることを示します。 FAILURE: モデル実行が失敗したことを示します。 COMPLETE: モデル実行が正常に完了したことを示します。
RESULT_CREATIONDATE | VARCHAR2 (30 CHAR) | これは、結果の作成日付です。
TEST_METRICS | VARCHAR2 (128 CHAR) | 予測信頼度、精度などを含むテスト・メトリック結果表。
CONFUSION_MATRIX | VARCHAR2 (128 CHAR) | コンフュージョン・マトリックス結果表。
LIFTS | DM_NESTED_CATEGORICALS | DM_NESTED_CATEGORICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、リフト結果表を含みます
ROCS | DM_NESTED_CATEGORICALS | DM_NESTED_CATEGORICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、ROC結果表を含みます
ROC_AREA | DM_NESTED_NUMERICALS | DM_NESTED_NUMERICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、曲線の下のROC領域を含みます

### ODMR_USER_WF_REGR_TEST_RESULTS

最後のワークフロー実行で特定のマイニング・モデルのために生成された回帰結果を問い合わせるには、`ODMR_USER_WF_REGR_TEST_RESULTS`リポジトリ・ビューを使用します。

8-16に、このビューの詳細を示します。

表8-16 ODMR_USER_WF_REGR_TEST_RESULTSリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | これは、ワークフローが作成されるプロジェクトのIDです。
PROJECT_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローが作成されるプロジェクトの名前です。
WORKFLOW_ID | NUMBER | これは、ワークフローIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
NODE_TYPE | VARCHAR2 (30 CHAR) | これは、ノードのタイプです。たとえば、構築ノード、モデル・ノードなど。
NODE_ID | NUMBER | これは、ノードのIDです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ノードの名前です。
NODE_STATUS | VARCHAR2 (10 CHAR) | INVALID: ノードの実行準備ができていないことを示します。 WARNING: ノードは完全に実行されたが警告があったことを示します。 READY: ノードがいつでも実行できることを示します。 FAILURE: ノード実行が失敗したことを示します。 COMPLETE: ノードが正常に実行されたことを示します。
MODEL_ID | NUMBER | これは、モデルのIDです。
MODEL_NAME | VARCHAR2 (128 CHAR) | これは、モデルの名前です。
MODEL_STATUS | VARCHAR2 (10 CHAR) | WARNING: モデルは実行されたが警告があったことを示します。 READY: モデルがいつでも実行できることを示します。 FAILURE: モデル実行が失敗したことを示します。 COMPLETE: モデル実行が正常に完了したことを示します。
RESULT_CREATIONDATE | VARCHAR2 (30 CHAR) | これは、結果の作成日付です。
TEST_METRICS | VARCHAR2 (128 CHAR) | これは、予測信頼度、2乗平均平方根誤差などを含むテスト・メトリック結果表です。
RESIDUAL_PLOT | VARCHAR2 (128 CHAR) | これは、テスト残差プロット表です。

### ODMR_USER_WF_TEST_RESULTS

`ODMR_USER_WF_CLAS_TEST_RESULTS`と`ODMR_USER_WF_REGR_TEST_RESULTS`の結合結果を問い合わせるには、`ODMR_USER_WF_TEST_RESULTS`リポジトリ・ビューを使用します。

8-17に、このビューの詳細を示します。

表8-17 ODMR_USER_WF_TEST_RESULTSリポジトリ・ビュー

列 | データ型 | 説明
--- | --- | ---
PROJECT_ID | NUMBER | ワークフローが作成されるプロジェクトのプロジェクトID。
PROJECT_NAME | VARCHAR2 (128 CHAR) | ワークフローが作成されるプロジェクトの名前。
WORKFLOW_ID | NUMBER | これは、ワークフローIDです。
WORKFLOW_NAME | VARCHAR2 (128 CHAR) | これは、ワークフローの名前です。
NODE_TYPE | VARCHAR2 (30 CHAR) | これは、ノードのタイプです。たとえば、構築ノード、モデル・ノードなど。
NODE_ID | NUMBER | これは、ノードのIDです。
NODE_NAME | VARCHAR2 (128 CHAR) | これは、ノードの名前です。
NODE_STATUS | VARCHAR2 (10 CHAR) | INVALID: ノードの実行準備ができていないことを示します。 WARNING: ノードは完全に実行されたが警告があったことを示します。 READY: ノードがいつでも実行できることを示します。 FAILURE: ノード実行が失敗したことを示します。 COMPLETE: ノードが正常に実行されたことを示します。
MODEL_ID | NUMBER | これは、モデルのIDです。
MODEL_NAME | VARCHAR2 (128 CHAR) | これは、モデルの名前です。
MODEL_STATUS | VARCHAR2 (10 CHAR) | WARNING: モデルは実行されたが警告があったことを示します。 READY: モデルがいつでも実行できることを示します。 FAILURE: モデル実行が失敗したことを示します。 COMPLETE: モデル実行が正常に完了したことを示します。
RESULT_CREATIONDATE | VARCHAR2 (30 CHAR) | これは、結果の作成日付です。
TEST_METRICS | VARCHAR2 (128 CHAR) | これは、予測信頼度、2乗平均平方根誤差などを含むテスト・メトリック結果表です。
CONFUSION_MATRIX | VARCHAR2 (128 CHAR) | これは、テスト・コンフュージョン・マトリックス結果表です。
LIFTS | DM_NESTED_CATEGORICALS | DM_NESTED_CATEGORICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、リフト結果表を含みます
ROCS | DM_NESTED_CATEGORICALS | DM_NESTED_CATEGORICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、ROC結果表を含みます
ROC_AREA | DM_NESTED_NUMERICALS | DM_NESTED_NUMERICALの表。ここで、 ATTRIBUTE_NAMEは、ターゲット・クラスを含みます VALUEは、曲線の下のROC領域を含みます
RESIDUAL_PLOT | VARCHAR2 (128 CHAR) | これは、テスト残差プロット表です。

### ODMR_USER_WORKFLOW_ALL_POLL

`ODMR_USER_WORKFLOW_ALL_POLL`ビューを使用してOracle Data Minerワークフローのステータスをポーリングすることで、Oracle Schedulerビューの使用を最小限に抑えることができます。

ただし、ワークフロー・ジョブのステータスを特定するにはOracle Schedulerビューを使用する必要があります。`ODMR_USER_WORKFLOW_ALL_POLL`リポジトリ・ビューでは、失敗したワークフローのステータスに関する完全な情報を提供できます。ワークフロー・ステータスをポーリングするためのリポジトリ・ビューODMR_USER_WORKFLOW_ALL_POLLには、次のリポジトリ・プロパティが含まれます。

- `POLLING_IDLE_RATE:` 実行中と検出されるワークフローが存在しない場合に、クライアントがデータベースをポーリングする比率を決定します。

- `POLLING_ACTIVE_RATE:` 実行中と検出されるワークフローが存在する場合に、クライアントがデータベースをポーリングする比率を決定します。

- `POLLING_IDLE_ENABLED:` スケジュールされたワークフロー・ジョブへの自動更新を決定します。

- `POLLING_COMPLETED_WINDOW:` 完了したワークフローをポーリング問合せの結果に含めるために必要な時間を指定します。

- `PURGE_WORKFLOW_SCHEDULER_JOBS:` Data Minerワークフローの実行によって生成された古いOracle Schedulerオブジェクトをパージします。

- `PURGE_WORKFLOW_EVENT_LOG:` 各ワークフローのワークフロー実行をイベント・ログにいくつ保持するかを制御します。この制限内に収まるように、古いワークフローのイベントはパージされます。

関連項目

- システム管理用のOracle Data Minerリポジトリ・プロパティのサマリー

## PL/SQL APIユース・ケース

PL/SQL APIユースケースでは、PL/SQL APIを実行して構築ワークフローとAPPLYワークフローをスケジュールおよび実行する方法を示します。

発生例を次に示します。

- PL/SQLユースケースの前提
  PL/SQL APIユースケースは2つの事前定義済ワークフロー上に作成され、SQL Developerのインストール場所から利用できます。
- APPLYワークフローをスケジュールおよび実行するユースケース
  このユースケースでは、WF_RUN_APIを実行するようにスケジュールされたAPPLYワークフローの系統を実行する方法を示します。
- 構築ワークフローをスケジュールおよび実行するユースケース
  このユースケースでは、ワークフローの系統でWF_RUN_APIを実行し、ステータスをポーリングして、イベント・ログからノード障害を出力する方法を示します。

### PL/SQLユースケースの前提

PL/SQL APIユースケースは2つの事前定義済ワークフロー上に作成され、SQL Developerのインストール場所から利用できます。

事前定義済ワークフロー

2つの事前定義済ワークフロー・ファイルは、次のとおりです。

- `apply_workflow.xml`: build_workflowによって構築されたモデルを参照するモデル・ノードを使用します。続いて、それを使用してスコアリングします。

- `build_workflow.xml`: サーバー・ベクター・マシン分類モデルを構築し、続いてモデルの詳細または係数を表に格納します。

デモ・ファイルの場所

事前定義済ワークフローを含むワークフロー・ファイル`apply_workflow.xml`と`build_workflow.xml`は、SQL Developerインストールした場所、`sqldeveloper home\dataminer\demos\workflows`から利用できます。

### APPLYワークフローをスケジュールおよび実行するユースケース

このユースケースでは、WF_RUN_APIを実行するようにスケジュールされたAPPLYワークフローの系統を実行する方法を示します。

系統を実行するには、INSUR_CUST_LTV_SAMPLE APPLYノードを指定して、RERUN_NODE_CHILDREN実行モードを使用します。例に示したように、ユースケースは次のことを行います。

- ESTゾーンの2014/12/31の零時から2015/12/31まで、毎日実行するようにAPPLYワークフローをスケジュールします。

- `WF_RUN API`を実行します

- `ODMR_USER_PROJECT_WORKFLOW`ビューからワークフローのステータスをポーリングします

- 失敗したノードを出力します

例8-1 APPLYワークフロー、ポーリング状態および印刷ノードの障害のスケジュールと実行

    CONNECT DMUSER/DMUSER
    SET SERVEROUTPUT ON
    DECLARE
        v_jobId VARCHAR2(30) := NULL;
        v_status VARCHAR2(30) := NULL;
        v_projectName VARCHAR2(30) := 'Project';
        v_workflow_name VARCHAR2(30) := 'apply_workflow';
        v_node VARCHAR2(30) := 'INSUR_CUST_LTV_SAMPLE APPLY';
        v_run_mode VARCHAR2(30) := ODMRSYS.ODMR_WORKFLOW.RERUN_NODE_CHILDREN;
        v_failure NUMBER := 0;
        v_nodes ODMRSYS.ODMR_OBJECT_NAMES := ODMRSYS.ODMR_OBJECT_NAMES();
    BEGIN
        v_nodes.extend();
        v_nodes(v_nodes.count) := v_node;
        v_jobId := ODMRSYS.ODMR_WORKFLOW.WF_RUN(p_project_name => v_projectName,
                           p_workflow_name => v_workflow_name,
                           p_node_names => v_nodes,
                           p_run_mode => v_run_mode,
                           p_start_date => '31-DEC-14 12.00.00 AM AMERICA/NEW_YORK',
                           p_repeat_interval => NULL,
                           p_end_date => NULL));
        DBMS_OUTPUT.PUT_LINE('Job: '||v_jobId);
        -- wait for workflow to run to completion
        LOOP
          SELECT STATUS INTO v_status FROM ODMR_USER_PROJECT_WORKFLOW
          WHERE WORKFLOW_NAME = v_workflow_name;
          IF (v_status IN ('SCHEDULED', 'RUNNING')) THEN
             DBMS_LOCK.SLEEP(10); -- wait for 10 secs
          ELSE
            EXIT; -- workflow run completes
          END IF;
        END LOOP;
        -- print all failed nodes (see example above)
      EXCEPTION WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('Error: '||SUBSTR(DBMS_UTILITY.FORMAT_ERROR_STACK(), 1, 4000));
    END;

- スコアリング結果の問合せ
  ワークフロー実行が正常に完了したら、スコアリング結果を問い合せることができます。

関連項目

- WF_RUN
- PL/SQLユースケースの前提

#### スコアリング結果の問合せ

ワークフロー実行が正常に完了したら、スコアリング結果を問い合せることができます。

スコアリング結果を問い合わせる手順:

    SELECT * FROM SCORED_CUSTOMERS_TBL

図8-1に示すように、問合せの出力は表形式で表示されます。

図8-1 スコアリング結果の問合せ出力

「図8-1 スコアリング結果の問合せ出力」の説明

### 構築ワークフローをスケジュールおよび実行するユースケース

このユースケースでは、ワークフローの系統でWF_RUN_APIを実行し、ステータスをポーリングして、イベント・ログからノード障害を出力する方法を示します。

実行モード`RERUN_NODE_ONLY`または`RERUN_NODE_PARENTS`を使用して、ワークフローの系統でWF_RUN_APIを実行できます。

2つの実行モードを使用してWF_RUN_APIを実行する方法では同じ結果が生成され、系統内の4つのノードすべてが実行されます。方法は次のとおりです。

- 系統内のすべてのノードを選択して、`RERUN_NODE_ONLY`実行モードを使用します。

- `MODEL_COEFFICIENTS`ノードを選択して、`RERUN_NODE_PARENTS`実行モードを使用します。

例8-2に示したように、ユースケースは次のことを行います。

- ESTゾーンの2014/12/31の零時から2015/12/31まで、毎月、月の最終日(BYMONTHDAY=-1)に実行するワークフローをスケジュールします。

- WF_RUN APIを実行します。このユースケースでは、API `WF_RUN with Project Name、Workflow Name Node Name and Time Interval`が、ワークフローの実行をスケジュールします。

- `ODMR_USER_PROJECT_WORKFLOW`ビューからワークフローのステータスをポーリングして、ワークフロー実行が完了したかどうかを判定します。

- イベント・ログから、すべてのノード障害を、エラー・メッセージとともに出力します。

例8-2 ワークフロー、ポーリング状態および印刷ノードの障害のスケジュールと実行

    CONNECT DMUSER/DMUSER
    SET SERVEROUTPUT ON
    DECLARE
       v_jobId VARCHAR2(30) := NULL;
       v_status VARCHAR2(30) := NULL;
       v_projectName VARCHAR2(128) := 'Project';
       v_workflow_name VARCHAR2(128) := 'build_workflow';
       v_node VARCHAR2(30) := 'MODEL_COEFFCIENTS';
       v_run_mode VARCHAR2(30) := ODMRSYS.ODMR_WORKFLOW.RERUN_NODE_PARENTS;
       v_failure NUMBER := 0;
       v_nodes ODMRSYS.ODMR_OBJECT_NAMES := ODMRSYS.ODMR_OBJECT_NAMES();
    BEGIN
       v_nodes.extend();
       v_nodes(v_nodes.count) := v_node;
       v_jobId := ODMRSYS.ODMR_WORKFLOW.WF_RUN(p_project_name => v_projectName,
               p_workflow_name => v_workflow_name,
               p_node_names => v_nodes,
               p_run_mode => v_run_mode,
               p_start_date => '31-DEC-14 12.00.00 AM AMERICA/NEW_YORK',
               p_repeat_interval => NULL,
               p_end_date => NULL);
       DBMS_OUTPUT.PUT_LINE('Job: '||v_jobId);
       -- wait for workflow to run to completion
    LOOP
       SELECT STATUS INTO v_status FROM ODMR_USER_PROJECT_WORKFLOW
       WHERE WORKFLOW_NAME = v_workflow_name;
       IF (v_status IN ('SCHEDULED', 'RUNNING')) THEN
          DBMS_LOCK.SLEEP(10); -- wait for 10 secs
       ELSE
          EXIT; -- workflow run completes
       END IF;
    END LOOP;
    -- print all failed nodes from the event log
    FOR wf_log IN (
       SELECT node_id, node_name, subnode_id, subnode_name, log_message, log_message_ details
       FROM ODMR_USER_WORKFLOW_LOG
       WHERE job_name=v_jobId and log_type='ERR' and log_message IS NOT NULL)
    LOOP
       DBMS_OUTPUT.PUT_LINE('Node Id: '||wf_log.node_id||', '||'Node Name: '||wf_log.node_name);
       IF (wf_log.subnode_id IS NOT NULL) THEN
          DBMS_OUTPUT.PUT_LINE(
             'Subnode Id: '||wf_log.subnode_id||', '||'Subnode Name: '||wf_log.subnode_name);
       END IF;
       DBMS_OUTPUT.PUT_LINE('Message: '||wf_log.log_message);
       v_failure := v_failure + 1;
     END LOOP;
    IF (v_failure = 0) THEN
       DBMS_OUTPUT.PUT_LINE('Workflow Status: SUCCEEDED');
     ELSE
       DBMS_OUTPUT.PUT_LINE('Workflow Status: FAILURE');
     END IF;
    EXCEPTION WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE('Error: '||SUBSTR(DBMS_UTILITY.FORMAT_ERROR_STACK(), 1, 4000));
    END;

- MODEL_COEFFICIENT表の問合せ
  問合せを実行して、MODEL_COEFFICIENT表からデータを取得できます。
- 名前付きオブジェクトの問合せ
  ワークフロー実行が正常に完了した後、表作成ノード内の表またはビュー、構築ノード内のモデルなど、ワークフローによって生成されたすべての名前付きオブジェクトを問い合せることができます。
- テスト結果の問合せ
  `ODMR_USER_WF_CLAS_TEST_RESULTS`および`ODMR_USER_WF_REGR_TEST_RESULTS`リポジトリ・ビューからコンフュージョン・マトリックスとテスト・メトリックのテスト結果を問い合せることができます。

関連項目

- WF_RUN
- WF_RUNファンクション
- ODMR_USER_PROJECT_WORKFLOW

#### MODEL_COEFFICIENT表の問合せ

問合せを実行して、MODEL_COEFFICIENT表からデータを取得できます。

MODEL_COEFFICIENTS表からのデータを問い合わせるには、次の問合せを実行します。

    SELECT * FROM MODEL_COEFFCIENTS

図8-2に示すように、この問合せの出力は表形式で表示されます。

図8-2 MODEL_COEFFICIENT表の問合せ出力

「図8-2 MODEL_COEFFICIENT表の問合せ出力」の説明

#### 名前付きオブジェクトの問合せ

ワークフロー実行が正常に完了した後、表作成ノード内の表またはビュー、構築ノード内のモデルなど、ワークフローによって生成されたすべての名前付きオブジェクトを問い合わせることができます。

次の問合せは、モデルCLAS_SVM_MODEL_2の情報を戻します。

    SELECT * FROM USER_MINING_MODELS WHERE MODEL_NAME = 'CLAS_SVM_MODEL_2

問合せ結果を図8-3に示します。

図8-3 名前付きオブジェクトの問合せ出力

「図8-3 名前付きオブジェクトの問合せ出力」の説明

#### テスト結果の問合せ

`ODMR_USER_WF_CLAS_TEST_RESULTS`および`ODMR_USER_WF_REGR_TEST_RESULTS`リポジトリ・ビューからコンフュージョン・マトリックスとテスト・メトリックのテスト結果を問い合せることができます。

次からテスト結果を問い合わせることができます。

- `ODMR_USER_WF_CLAS_TEST_RESULTS`リポジトリ・ビュー

- `ODMR_USER_WF_REGR_TEST_RESULTS`リポジトリ・ビュー

この項には、次を問い合わせる例が記載されています。

- テスト・メトリックとコンフュージョン・マトリックスの結果の問合せ: 例8-3

- テスト・メトリックの問合せ: 例8-4

- コンフュージョン・マトリックスの問合せ: 例8-5

- リフト表結果の問合せ: 例8-6

例8-3 テスト・メトリックとコンフュージョン・マトリックスの結果の問合せ

    SELECT TEST_METRICS, CONFUSION_MATRIX FROM ODMR_USER_WF_CLAS_TEST_RESULTS WHERE WORKFLOW_NAME = 'build_workflow' AND NODE_NAME = 'Class Build'

この問合せの出力を次の図に示します。この問合せは、`ODMR_USER_WF_CLAS_TEST_RESULTS`からテスト・メトリックとコンフュージョン・マトリックスを取得します。

図8-4 テスト・メトリックとコンフュージョン・マトリックスの問合せの出力

「図8-4 テスト・メトリックとコンフュージョン・マトリックスの問合せの出力」の説明

例8-4 TEST_METRICSの問合せ

    SELECT * FROM ODMR$18_51_18_106346IFHRNMF

この問合せの出力を次のスクリーンショットに示します。テスト・メトリックODMR$18_51_18_106346IFHRNMFを問い合わせます。メトリック名、メトリックVARCHAR値およびメトリックNUM値をフェッチします。

図8-5 TEST METRICSの問合せの出力

「図8-5 TEST METRICSの問合せの出力」の説明

例8-5 CONFUSION_MATRIXの問合せ

    SELECT * FROM ODMR$18_51_17_954530VMUXPWL

この問合せの出力を次のスクリーンショットに示します。コンフュージョン・マトリックスODMR$18_51_17_954530VMUXPWLを問い合わせます。実際のターゲット名と予測されたターゲット値をフェッチします。

図8-6 CONFUSION_MATRIXの問合せの出力

「図8-6 CONFUSION_MATRIXの問合せの出力」の説明

例8-6 CLAS_SVM_MODEL_2からのリフト表の問合せ

    SELECT
    MODEL_NAME, a.ATTRIBUTE_NAME "target value", a.VALUE "lift result table"
    FROM
    ODMR_USER_WF_CLAS_TEST_RESULTS, TABLE(LIFTS) a
    WHERE
    WORKFLOW_NAME = 'build_workflow' AND NODE_NAME = 'Class Build' AND ATTRIBUTE_NAME='Yes'

この問合せの出力を次のスクリーンショットに示します。CLAS_SVM_MODEL_2からリフト結果表を問い合わせています。

図8-7 CLAS_SVM_MODEL_2からのリフト結果表の問合せの出力

「図8-7 CLAS_SVM_MODEL_2からのリフト結果表の問合せの出力」の説明

関連項目

- リポジトリ・ビュー