やっほー、yokochanです!
今回はMatillionで使える便利な機能「Shared Job」について紹介します。
“Shared Job” とは?
文字通り訳すと「共有ジョブ」となります。
具体的には、作成した一連のワークフローを1つのコンポーネントとしてまとめて他のジョブでも使用できるようにしたものです。
公式ドキュメントはこちら
言葉で説明されてもなかなかイメージできないので実際の例で考えてみることにします。
どんな時に使う?
例えば、以下のような場面を考えてみましょう。
ジョブを実行して失敗したときに、エラーログ履歴の蓄積とメール通知を行いたい。
今運用している20個のジョブで共通して上記の処理は行いたい。
こうした場面で20個のジョブすべてに対してエラーログ履歴の蓄積するフローとメール通知のフローを作るのは非常に面倒ですし、ジョブ内のコンポーネントが増えて見づらくなります。
そこで「Shared Job」を使ってこれらの処理を1つのコンポーネントにまとめておくと、それぞれのジョブでコンポーネントを1つ置くだけになるので、楽にスッキリしたワークフローが作れます。
とにかく、いろんなジョブで使えて共通化しておくと便利だなという処理はShared Jobにしておくと良いので、
- あるシステムからデータを取得する処理
- バックアップデータの出力処理
などもShared Jobが使えるでしょう。
Shared Jobが使用できるのはOrchestrationのみです。
Transactionで作った共通の計算処理などをShared Job化することはできません。
実際の使い方
実際のMatillionの画面でShared Jobをどのように使うのか見てみましょう。
Step.1:共通処理となるOrchestrationジョブを作成
今回の例では単にメール通知を送るフローをShared Jobにすることとします。
以下のようなOrchstrationジョブを作成します。
たいていの共通化する処理は変数で値を持つことが多いので、この時点で変数で持たせるべき値は設定しておきます。
変数の設定の説明は今回は割愛します。(変数の説明も記事にしたら下に貼っておきます……)
Step2:Shared Jobを作る
ジョブができたらShared Jobにしましょう。そこまで難しくはありません。
サイドバーのジョブ一覧からShared Job化するジョブを右クリックするとメニューが表示されます。
その中の「Genarate Shared Job」を選択
するとポップアップが現れるので、必要項目を入力します。
入力項目の説明
New Shared Job | 新規作成か既存のジョブに基づいて作成するか選択します。 |
---|---|
Existing | 既存からコピーを選択した場合はコピーするジョブを選択します。 |
Package | 保存先を入力します。 Shared Jobはフォルダの階層構造で保存できるようになっており、「.」で区切って入力することでフォルダの階層を作ることができます。 |
Name | Shared Jobの名前を入力します。 |
Revision | バージョン管理のための番号です。 新規作成の場合のデフォルトは1です。 |
Icon | コンポーネントのアイコンを指定します。 好きな画像をアップロードしてアイコンにできます。 何も指定しなくても問題ありません。 |
Description | Shared Jobの内容の説明を入力します。 |
Root Job | Shared Jobの元となるジョブを指定します。 デフォルトでは右クリックしたジョブが指定されているので、基本的には変える必要はありません。 |
Additional Jobs | Root Job内に含まれる別のジョブを指定します。 ここで指定されていないジョブはRoot Jobが呼び出しても動きません。 デフォルトではRoot Jobで指定したジョブに含まれるものが指定されているので、基本的に変える必要はありません。 |
次に変数がある場合は、変数の設定画面に移ります。
Name | 変数名を入力します。 ここはRoot Jobに存在している変数名を入力します。 |
---|---|
Display Name | Shared Jobとして使用する際に表示する名前を入力します。 |
Required | 変数ごとに有効/無効の設定ができます。 デフォルトではすべての変数が有効になっています。 |
この設定をして、OKを押せばShared Jobは完成です!
Step3:作成したShared Jobを使う
では作ったジョブを実際に使ってみましょう。
新しくOrchestrationジョブを開きます。
左下の「Shared Jobs」という項目を開くと先ほど作成したShared Jobが存在しているはずです。
作ったジョブが見つかればあとは普通にいつも通りコンポーネントを使う感覚でキャンバスにドラッグ&ドロップします。
設定した変数などがあれば、ジョブに合わせて変数を指定してあげて完成です。
結論
Shared Jobを使えばMatillionの開発効率が向上しそう!
それではみなさま良きMatillionライフを~
参考にした動画