Azure Data Factoryってどんなサービス?

技術系

Azure Data Factory とは、SQLデータベースやファイルシステムなどの様々なデータソースからデータを取得し、クレンジングしたのちに、データストアに格納するといったデータの移動・変換を自動化するサービスのことです。
Microsoft SQL Serverのオンプレミスデータはもちろん、Azure SQL Database、Azure Blob StorageやAzure Table Storageといったクラウドデータについても統合することができます。

工場のように、原材料(データ)を集めて、製品(新しいデータ)を作るイメージから、DataFactory(データの工場)と名付けられました。

4つの概念

[リンクサービス]
外部リソースに接続するために必要な情報を定義するもので、データストアやコンピューティングサービスなどあらゆるリソースへの接続情報を保持しています。利用可能なデータストアは、オンプレミスのファイルシステム、SQL ServerやOracle Databaseをはじめとする各種RDBMS、Azureストレージ、Azure SQL Databaseなどがあります。

[データセット]
リンクサービスが参照するデータストアに格納されている入力/出力データを表します。フォルダ名やテーブル名といったデータ構造を示し、利用する実データを指定します。

[アクティビティ]
データに対して実行するアクションを定義します。データセット間のデータコピーから、Azure HDInsightを活用したデータ変換/分析まで、データ変換や分析のためのさまざまなアクティビティがあります。

[パイプライン]
複数のアクティビティを論理的にまとめて管理するグループです。1つのアクティビティには複数の処理を指定できますが、それをすると管理が煩雑になってしまいます。そこで1つの処理を行うアクティビティを複数用意し、それらをパイプラインにまとめて管理します。

どんな場面で役立つ?

AzureDataFactoryが最も活躍するのは、AzureのHadoopサービスであるAzureHDInsightと連携させたデータ分析処理です。
AzureDataFactoryのリンクサービスで提供されている「オンデマンドHDInsight」を利用すれば、AzureポータルからHDInsightの利用を開始することなく、AzureDataFactoryがHDInsightを自動的に作成・実行・削除するような使い方も可能です。

例えば、レストラン向けに注文用のタブレット端末を製造・販売する米Ziosk社では、蓄積された来店客の操作ログデータを集計して、メニューをレコメンドするシステム基盤にAzureDataFactoryを活用しています。複数のサービスをつなぐための仕組みを作り込むことなく、データソースの情報の取得・分析を自動化できることが、AzureDataFactoryを採用した理由です。

Azure DataFactoryにかかる費用

初期費用は不要で、料金は使用した分だけ発生します。

料金は、以下の要素で構成されます。

・パイプラインオーケストレーションと実行
 実行した回数にかかるコスト(オーケストレーション)
  パイプライン内のアクティビティ、トリガー (パイプラインの実行を開始するもの(時間やイベント等))、デバッグ実行の総数によって決定します。
  例えば、1日1回にAzureストレージからDBにデータをコピーするパイプラインの場合、トリガー x 1、コピーアクティビティ x 1 = 2 実行 / 日

・Data Flow の実行とデバッグ
 コンピューティングの最適化 → 仮想コア時間あたり \21.532
 汎用 → 仮想コア時間あたり \30.604
 メモリの最適化 → 仮想コア時間あたり \38.388

・Data Factory の操作
 読み取り/書き込み → \56/50,000 変更エンティティまたは参照エンティティ
 監視 → \28/50,000 取得実行レコード

・非アクティブなパイプライン
 トリガーに関連付けられていないか、1 か月間で一度も実行されなかったパイプラインは、非アクティブであると見なされます。非アクティブなパイプラインについては、月額 \89.600 の料金がかかります。

【参考】
https://azure.microsoft.com/ja-jp/pricing/details/data-factory/

単純なデータ移動のみの処理は、本当にAzureDataFactoryが必要か判断する必要があります。
複数のデータソースを統合できることがポイントなので、単一のデータソースの場合は、AzureDataFactoryはオーバースペックである可能性が高いです。
また、小規模データソースの変換も同じくオーバースペックとなる可能性があります。

まとめると「便利だけと、費用もそこそこかかるから、必要かどうかよく検討しよう」です。

イメージをつかむのに役立つサイト

Azure Data Factory を使用して Azure Blob Storage から Azure SQL Database のデータベースにデータをコピーする
https://docs.microsoft.com/ja-jp/azure/data-factory/tutorial-copy-data-portal

データのコピー ツールを使用して SQL Server データベースから Azure Blob Storage にデータをコピーする
https://docs.microsoft.com/ja-jp/azure/data-factory/tutorial-hybrid-copy-data-tool

タイトルとURLをコピーしました