はじめに
Oracle Data Integration (以下 ODI とします) タスクを自動で実行するためには、スケジュール機能を利用して実行いたします
しかし、下記に記載しますとおり、スケジュールは30分未満の間隔で実行することはできません
30分未満の間隔でトリガーするスケジュールは作成できません。許可されるのは30分以上の間隔のみです。
引用元: https://docs.oracle.com/ja-jp/iaas/data-integration/using/create-schedule.htm
そこで、本記事では15分間隔でタスクを実行する方法をご紹介したいと思います
注意事項
ODIでタスクを実行する際には、キューイング、実行、完了とステータスが変化しますが、他のタスク実行状況などにより、キューイングに数十秒を要することがあります
あまりにも短時間で実行するスケジュール設定にしてしまうと、前のタスクが完了する前に次のタスクが実行されてしまうなど、同時実行状態となってしまいますので、
そのため、タスクの1回あたりの実行時間や同時実行される可能性を考慮して間隔を決定していただければと思います
事前準備
タスクの作成
本記事では、以下のように2つのソースを結合して出力するタスクを使用いたします
※タスクの内容は本記事の主旨とは関係がなく、正常に実行できるタスクであればどのような処理内容であっても問題ございません
※上記に記載した注意事項のように、タスクの処理時間は考慮していただく必要がございます
設定方法
スケジュールの作成
本記事では、実行時間を 0, 15, 30, 45 分に実行する設定として作成いたします
- 名前: 任意の名前
- 識別子: 任意の識別子
- 説明: 空欄
- 頻度: 毎時
- 繰り返し間隔: 1
- 分: 0
同様に分の値を 15, 30, 45 として計4つ作成します
タスク・スケジュールの作成
事前準備で作成したタスクに、上記で作成したスケジュールをそれぞれ設定します
0, 15, 30, 45分に実行されるスケジュールが設定され、次回実行も15分間隔になっていることがわかります
実行確認
タスク・スケジュールで確認した次回実行の時間(15分間隔)で実行されています
まとめ
単純にスケジュール部分のドキュメントのみを確認してしまうと、最短実行間隔は30分であるように感じてしまいます
しかし、タスクに設定するタスク・スケジュールを複数設定することで、15分間隔のような実行間隔も設定することが可能となります
特に、公開済タスクの実行スケジュールには、
スケジュールおよびタスク・スケジュールを使用して、公開済のタスクを特定の日時および特定の頻度間隔で自動実行できます。スケジュールは複数のタスク・スケジュールに関連付けることができますが、タスク・スケジュールは1つの既存のスケジュールにのみ関連付ける必要があります。
と記載がありますが、タスクに対して複数のタスク・スケジュールを関連付けられるような記述は見当たりませんでした
そのため、実際にODIを利用していただければタスクに複数のタスク・スケジュールを関連付けられると気づくことができますが、ドキュメントを確認するのみではこのような設定が可能であるとは理解しづらいかと思います
以上のように、ドキュメントからは読み取りにくい設定ではありますが、簡単に柔軟な設定が可能となりますので、設定できる実行間隔が長すぎると感じられているのであれば、ご一考いただけますと幸いです