[Talend]私が考える可読性が高いTalendジョブのデザイン
はじめに
こんにちは。DI部の大高です。
今回は私が考える可読性が高いTalendジョブのデザインについてご紹介したいと思います。
個人的には約4年半程の付き合いとなるTalendですが、色々な方が作成したジョブを見る機会がありました。その中で、諸先輩方に教わったことや私が考える「読みやすいジョブ」という感覚をお伝えできればと思います。
あくまで私個人の考えなので、これが正解というものではないのですが「こうすると読みやすくなる」という一例として、ジョブを作成する際の参考になれば幸いです。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」です。
サンプルジョブ
よくありそうなジョブとして、以下のようなサンプルを作成しました。
ファイルからデータを取得して、DBのテーブルを更新するジョブです。また、エラー発生時にはエラー情報をメールで送信します。
全体の配置について
全体的な配置として、上から「エラー処理」、「Prejob」、「Postjob」、「主な処理」という流れです。
特にジョブ作成において事前処理、事後処理は基本的に発生すると思うので「Prejob」、「Postjob」が活用できると思います。ログ出力処理などをやっても良いと思います。
また、配置の方向としては「大きな処理の流れを上から下」へ、「個別の処理の流れを左から右へ」とすると読みやすいと思います。
ですので、基本的には「サブジョブ」として個別の処理を左から右へ作成して、「OnSubjobOk」で下方向へ次の大きな処理を流すイメージです。
コンポーネント間の間隔
これは個人の好みによるものも多いと思いますが、まず基本は等間隔に配置するものだと考えます。
その上で、私は左右のコンポーネント間隔でグリッドの四角を3つまたは4つ分あけて配置します。Rowの接続線に個別に名前を付けたい場合には、だいたい3つでは足りなくなるので4つぐらいあけています。
また、サブジョブ間の上下の間隔は1つあけて配置しています。
コンポーネントの名前
コンポーネントを配置すると自動で「[コンポーネント名]_1」のように命名されますが、コードの変数のように意味のある名前を付けるようにしています。
また、その際にはどうしても名前の長さによってコンポーネントが使うエリアが大きくなってしまうケースもあるので、その際にはコンポーネント名に「<br>」タグを挟むことによって、利用するエリアを3x3のエリアに収めるようにしています。
サブジョブのタイトルと色
サブジョブにはタイトルをつけることが出来るので、ぱっと見て何を処理しているか分かるようにタイトルを付けます。
処理の単位毎にサブジョブタイトルに「[0100]差分マスタデータでボトルマスタを更新」、「[0200]コミット」など番号を付けると更に分かりやすくなるかと思います。
また、色は基本的にはデフォルト設定にしますが、エラー処理など特殊な処理の場合には明示的に色を変更して分かりやすくします。
まとめ
以上、私が考える可読性が高いTalendジョブのデザインの紹介でした。
初めてジョブを作成する際など、簡単なガイドとして参考に頂ければ幸いです。
それでは。