はじめに
前回「Azure Data Factoryを触ってみる #Azureリレー」でAzure Data Factoryを紹介しました。この記事では応用編ということで、実際に触ってみた時により実用的なことや一歩高度なことをするために知っておきたい機能を6つ紹介します。
1. 変数
パイプラインの途中でアクションから使用できる変数を定義することができます。
プログラミングでいうグローバル変数ですね。パイプラインの途中で参照したり代入するときは動的なコンテンツで使うことができ、定数やステータスなどを管理するのに非常に便利です。
また、一時的な変数の作成や値の設定だけであればアクションで用意されている「変数の追加」や「変数の設定」から行うことができます。

2. 条件分岐
パイプラインの中で複数の処理に分岐させたり失敗した時に次の処理に移るといった条件分岐ができます。
通常、ブロックのおしりに付いている緑のポチををドラッグ&ドロップすることで処理をつなげるのが直感的な操作だと思います。一方で、ブロックの右下にあるアイコンをクリックすると次の処理に移る条件が選べます。
この仕様はPower Automateなどと同じだと思うのですが、気付きにくい割に重要な機能だと思います。

3. タイムアウトとリトライ
タイムアウトとリトライは一部のアクションで「全般」オプションに用意されています。
文字通りですが、「タイムアウト」がそのアクションを中断する時間で、d.hh:mm:ss
の形式で設定ができます。 「再試行」が失敗した時に繰り返す回数、「再試行のサイクル間隔(秒)」がリトライするまでに空ける時間です。

4. 監視
Data Factory Studioの右側[モニター] > [アラートとメトリクス]からパイプラインの挙動を監視するアラートルールを作成することができます。

アラートルールは、発火する条件とその時に実行されるアクションの組み合わせでできます。

このアラートルールで、先ほどのリトライやタイムアウトと併せて知っておきたい発火条件を一つだけ紹介します。
それは「Elapsed Time Pipeline Runs Metrics」です。
これはパイプラインの実行が一定時間を超えたことを検知するメトリックです。一見タイムアウトと同じようなものに思えますが、こちらはパイプラインの実行時間を監視しており、さらに一定時間を超えた時でも処理を中断せずにアラートルールのアクションを実行します。
アラートルールを作りパイプラインで「経過時間のメトリクス」を設定すると、このメトリクスを検知できるようになります。

5. コード管理
Data FactoryはJSONの入出力に対応しています。右上の[{}
(コード)]から今捜査中のリソースのJSONを表示することができ、左側リソースの三点リーダーから選択できる「サポート ファイルのダウンロード」からファイルをダウンロードすることができます。
また、GitHub連携も最近できるようになりました。Azure DevOpsのPipelineと連携して、コードベースでData Factoryを管理できる点は、より複雑な処理を行ったり中長期的にチームで管理する上では非常に大事な機能ですね。

6. ブロックの整理
これはかなりおまけです。ブロックプログラミングの良いところでもあり悪いところでもあるんですが、ドラッグ&ドロップでアクションをどんどん置いていくと、画面が散らかって非常に見づらくなってしまいます。そんなとき、画面右端にあるアイコンでフロー全体を画面にちょうど収まるように拡大縮小したり、整列させることができます。


まとめ
紹介した機能は、私自身必要になった時に都度調べながら知ったのですが、どれももっと早く知っていればと思うものばかりだったのでまとめてみました。最後まで読んでいただいた方は色々な使い道が見えてきたのではないでしょうか。前回の記事にData Factoryの環境構築手順も紹介しているので、興味が湧いた方は是非触ってみてください。