Azure Data Factoryとは
こんにちは。 Blog復帰(?)一回目の記事は、最近お気に入りの製品「Azure Data Factory」について記そうと思います。 今回はAzure Data Factoryとは何か、また、その製品を理解する上で基礎となる部分に関してを説明します。 なお、本記事は2018年6月にGA(一般公開)となったData Factoryのバージョン2をベースにしています。
Azure Data Factory
Microsoftが提供するパブリッククラウドAzure環境上で利用できるフルマネージドのデータ統合(ETL)サービスです。(以下、ADFとします)
オンプレミス、クラウドと環境を問わない各種データソースからのデータロード、加工、出力を管理でき、データ統合を支援するツールです。
主な利用用途
分単位、時間単位、日次、月次処理等の定期的な周期で実施されるデータ移動、データ加工処理の自動化を行うために使われ、以下の利用用途が想定されます。
- オンプレミス環境上のデータソース(ファイルサーバ、DB等)からクラウド環境上の各種ストレージへのデータ移行
- AWSのS3からAzureのBlobストレージへのデータ移行
- 各種センサデバイスから収集されるデータのクレンジング、データウェアハウスへの流し込み
データソース
データソースとして接続できる環境は2018年7月時点で約70種以上あります。
Azure環境の各製品はもちろん、オンプレミス上に構築されたDB、ファイルシステム、AWS等その他パブリッククラウド上の製品とも連携することが可能となっています。
筆者自身が未検証のためまだ内容をよく理解できていませんが、PayPalサービスとの連携も現在プレビュー機能として可能となっており、今後も連携できる製品、サービスは増加していくことが見込まれています。
連携できる製品については下記の公式ドキュメントをご参照ください。
Azure Data Factory のデータセットとリンクされたサービス
ADFの構成要素
ADFを理解する上で押さえておくべき用語がいくつかあります。 下記をまずは理解しておくことが重要と考えます。
- LinkedService
- DataSet
- Activity
- Trigger
- Pipeline
LinkedService
各種データソースへの接続情報の定義を示します。
ex)
- SQL Databaseへの接続情報(url,user,pw)
- Blobストレージへの接続情報(接続文字列)
- オンデマンドHDInsightへの接続情報(ノード構成等)
DataSet
データストア(入力、出力データ)に関するデータ構造に関する情報の定義を示します。
ex)
Activity
データセットに対して実行するアクション設定を示します。
ex)
- データ移動(データソースからターゲットへのデータコピー)
- データ変換(HDInsight等でのHive, sparkを利用したデータ加工処理)
- フローの制御(※V2から追加されたアクティビティ
以下は制御アクティビティからいくつか抜粋- IF(アクティビティ実施結果の分岐)
- ForEach(配列に対して繰り返し処理の実施)
- WEB(REST呼び出しによるデータ取得等)
制御アクティビティを利用することで、メール送信サービス(SendGrid)と連携しメール送信APIを叩いてメールを送信することも可能です。そのうち構築手順を記そうと思います。
Trigger
2018年6月にGA(一般公開)となったADFの新バージョンV2より新たに登場した機能であり、処理の起動タイミングに関する設定を示します。
ex)
- スケジュール トリガー
実時間のスケジュールによってパイプラインを起動するトリガー - タンブリング ウィンドウ トリガー
状態を保持しながら定期的に実行されるトリガー - イベントベースのトリガー
Blobストレージ上でBlobが格納or削除されたイベントに応答するトリガー
Pipeline
各データセットとアクティビティを組み合わせ論理的にグループ化した一連の処理セットです。
まとめ
ADFを理解する上で基礎となる各用語についてを記しました。
次は2018年6月末にGA(一般公開)されたADFの新バージョンV2の特徴に関して説明しようと思います。