ジョブスケジューラは、バックグラウンドで、またはバッチプロセスの一部として、他のプログラムの実行を制御するコンピュータプログラムです。このワークロードの自動化は通常、リソースを使い果たしたり他のアプリケーションに干渉したりすることなく、従来のバックグラウンドデータ処理をリアルタイムのビジネスアクティビティと統合できるように調整されます。ジョブスケジューラは、ワークフローのインターフェイスを自動化し、実行を送信および監視し、関連のないジョブの実行順序をキューに入れて、操作が正しい順序で処理され、特定の条件に従うようにします。
データベースプロセスを自動化するための一般的なツールは、Oracleの組み込みのジョブスケジューラです。 SQLプロシージャとユーティリティ操作を自動化するだけでなく、Oracleの効率に影響を与えるサードパーティのプロセスにも使用できます。 Oracle DBAは、定期的にIRI FACT、IRI CoSort、およびSQL * Loaderを使用して、データベースレイヤーから変換のオーバーヘッドを取り除き、大量のETLおよびオフラインの再編成操作全体のワークフローを改善します。これらのツールは、Eclipse™上に構築されたGUI環境であるIRIWorkbenchでOracleのJobSchedulerと組み合わせてスケジュールできるようになりました。
コマンドライン、Oracleフロントエンド、またはEclipse™のIRIのいずれであっても、Oracle DBAは、相互に依存するETLステップをスケジュールしたり、IRIソフトウェアを使用してアンロード/ソート/リロード(再編成)操作を設定したりできるようになりました。 Oracle Job Schedulerを使用すると、DBMS_SCHEDULER、DBA、およびデータウェアハウスアーキテクトは、FACT抽出、CoSortソート/変換/レポート、および/または一括ロードをいつ開始するかを指定し、これらのプロセス間の依存関係を指定できます。
Oracle Job Schedulerは、ユーザーがさまざまなタスクを管理および計画するのに役立つため、手動による介入は必要ありません。ジョブスケジューラを使用するには、3つの小さなスクリプトが必要です。
•ETLプロセスをアセンブルする手順
•Javaプログラムからメッセージをキャプチャする機能
•ETLステップへのコマンドライン呼び出しを処理するJavaプログラム:FACT(E)、CoSort SortCL(T)、およびOracle SQL * Loader(L)
スクリプトの準備ができたら、ユーザーは目的の作業を自動化する手順を作成できます。ユーザーは、手順が開始される日時を指定できます。ユーザーは、ジョブを実行する頻度(毎週、毎日、毎時、または30秒ごとまでの特定の日時)を指定することもできます。
スケジューラーは、ステップが正しい順序で実行されるようにステップを管理します。カスタムチェックを定義して、前のステップが成功するか特定の基準を満たさない限り、次のステップが開始されないようにすることもできます。
この例では、以下のユーザーは手順「runFlow」を選択して、毎週火曜日の午前8時、および毎週金曜日の午後3時に定義されたステップを開始しています。
DECLARE
JobNo user_jobs.job%TYPE;
v_date1 date:=to_date( '20130312 080000'、'yyyymmdd hh24miss');
v_date2 date:=to_date( '20130315 150000 ′、'yyyymmdd hh24miss');
BEGIN
dbms_job.submit(JobNo、–Job ID
' begin runFlow; end;'、—実行するプロシージャ
v_date1、— start実行中
'SYSDATE+ 7'—ジョブの間隔
);
COMMIT;
dbms_job.submit(JobNo、–Job ID
'begin runFlow; end; '、—実行するプロシージャ
v_date2、—実行を開始
' SYSDATE + 7'—ジョブの間隔
);
COMMIT;
END;
この方法でETLプロセスを自動化することには、特にDBMS_SCHEDULERに既に精通しているOracleDBAにとって大きなメリットがあります。この方法により、コストのかかるETLまたはジョブスケジューリングパッケージの費用を節約し、人的エラーの可能性を最小限に抑え、手動による介入の必要性を排除できます。統合を使用して、オフラインの再編成とELT関連の手順を自動化することもできます。
Oracle Job SchedulerでのIRIジョブ・ステップの実装について質問がある場合、またはホワイトペーパーの例が必要な場合は、お問い合わせください。