LoginSignup
3
1

More than 5 years have passed since last update.

Azure AutomationをData Factoryのパイプラインの中で実行する

Last updated at Posted at 2018-12-04

はじめに

Azure AutomationのPowerShellでAzure Analysis Services(AAS)を自動更新する方法について 書いた が、実際に企業のシステムの中で使おうとした場合、業務システムやその他社内外の新しいデータを取得して、データ分析に適したデータのフォーマットや、データウェアハウスのスキーマに合わせた変換を行って最新化したうえで、モデルの更新処理をしなければならない。このため、単純なAzure Automationのスケジュール実行では片手落ちである。

Data Factory はこれらのデータの抽出・変換・ロードのいわゆるETL処理を含んだ、データのオーケストレーションを自動化し、モニタリングするPaaSである。このData Factoryのパイプライン内のアクティビティとして、Azure Automationを実行できれば上記を満たすことができと考えた。が、、、しかし、Data Factoryのもつアクティビティの中に、Azure Automationは存在しなかった。そのため、Azure AutomationのWebhook機能を使って、Data FactoryのWebアクティビティからRunbookをコールするという形で実装する。

Webhookの作成

Azure Automationで実行したいRunbookを選び、"Webhook"メニューを選択。

Create a new webhook画面で以下のように必要情報を設定する。URL欄に記載されているURLを必ずコピーして、メモ帳かなんかに張り付けておくこと。準備完了したら"OK" > "Create"と進む。

Data Factoryのアクティビティ設定

Data Factoryの細かい設定のところはここでは割愛し、Webhookをコールするアクティビティを作成するところをメモとして残す。

Data FactoryのAuthor & Monitorツールから設定を行う。
Webアクティビティは"General"のカテゴリ内に入っている。ここから"Web"をドラッグ&ドロップしてキャンパスに貼り付ける。
image.png

今回はCopyアクティビティでいろんなところからデータをかき集めてきて、ストレージに保存し、Databricksでデータを変換し、SQL Data Warehouseのデータを更新し、最後にAASのモデルを処理したかったので、一番最後のアクティビティとして、以下のように貼り付けて構成した。
image.png

Webアクティビティの設定はシンプルで、Generalの部分は変更したのはNameだけ。

Settingsの部分で、URL欄にAzure Automation RunbookのURLを貼り付け、MethodをPOSTに設定。
Bodyは今回のコールには不要だったのだが、入力しないとData FactoryのConfigのValidationで叱られるので、"body"とだけ入れておいた。

設定はこれだけで完了となる。あとはパイプラインをPublishして実行し、エラー無く完了&データが正常に更新されていることが確認できればOK。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1