Microsoft Azureコラム
Writer:佐久森
Azure Data Factoryとは?さまざまなデータの連携や統合管理をクラウドで実現
ICT(情報通信技術)の発展は、オンプレミスからクラウドなど、ビジネスに利用するシステムの多様化を加速しました。それは、ビジネスを効率化して便利にする一方で、部門やサービスごとに異なるシステムを利用していることが、データ型の不統一や分散の原因になっています。データを蓄積しても、一元的に管理しなければ効率よく分析して活用することは困難です。つまり、ICT利用の次のフェーズとして、分断化されたデータを連携し活用することが、企業活動における急務だといえるでしょう。そこで利用できるのがAzure Data Factoryです。本コラムでは、そもそもAzure Data Factoryとは何なのか、そしてAzure Data Factoryで利用できる代表的な機能や用語、使い方までを解説します。
ネクストステップにおすすめ
Azure Data Factoryとは
Azure Data Factoryとは、さまざまなデータを収集して連携できるデータ統合管理のクラウドサービスです。収集されたデータや蓄積データ(素材や原料)をすぐに製品化するラインをイメージするとわかりやすいでしょう。
Azure Data Factoryは、クラウドのデータ結合だけでなく、オンプレミスとクラウドを利用するハイブリッド運用でもデータの統合ができます。オンプレミスやSaaSなどのクラウドサービスに利用しているデータを一元管理したり、データの変換や管理画面の設定・管理をGUI操作のみで実現できます。
また、さまざまなシステムに連携して、データ分析に必要な情報を抽出するための一連の処理を自動化できますし、後述するETLやELTといったデータ統合にも活用できます。
ETL・ELTとは
ETLやELTは、データのExtract(抽出)、Transform(変換・加工)、Load(格納)の頭文字をとった用語で、これらの処理の順番に頭文字を並べたものです。
従来は一般的なストレージの容量も少なく、一度に集められるデータが少なかったため、データ抽出→変換・加工→格納の順序で処理をするのが一般的で、ETLが使われてきました。しかし、現在は、大容量のストレージが利用できるようになったため、加工・変換前の生データを保管できるようになったため、データの抽出→格納→変換・加工というELTの手法も使われるようになったのです。
Azure Data Factoryは、従来のETLはもちろん、柔軟なスケールアウトスケールアップが可能なためELTも数回のマウスクリックで利用できます。
Azure Data Factoryで未整理のデータを統合管理
ITやICTがビジネスにも普及したことで、あらゆる情報がデータ化されました。しかし、システムにはテキストデータや画像データ、映像データなどのさまざまなデータ形式が混在して蓄積されるということが多くあります。
近年ビジネスにも活用されるビッグデータは、さらに未整理のデータが混在しています。そこで、このような膨大なデータを分析・活用するために、さまざまなシステムから収集したデータを総合的に運用できる仕組みが必要になりました。このような背景から、データの抽出から変換、格納までを自動的に行えるAzure Data Factoryが注目されているのです。
Azure Data Factoryの代表的な機能と料金
それではAzure Data Factoryの代表的な機能を見ていきましょう。
Azure Data Factoryとは、主にオンプレミスやクラウドサービス、ビッグデータなどのさまざまなシステムからデータを集める機能です。
さまざまなシステムとの連携
Azure Data Factoryは、異なるシステムとの連携機能を持っています。
例えば、オンプレミスで管理する顧客情報やマーケティング情報、クラウドで管理する膨大なシステムログなどと連携可能です。データベースならば、リレーショナル、非リレーショナル、その他のストレージシステムを持つシステムと連携します。
データの収集
システムと連携した後、各種システムからデータを収集してデータストアに移動させます。例えば、 Azure Data Factoryで収集したデータを、クラウド内のストレージ(Azure Blob Storageなど)に格納することで、ストレージ容量を気にすることなく、大容量のデータ収集が可能になります。
Azure Blob Storage
データの変換・強化
収集されてストレージに格納されたデータを変換処理します。これにより、統一された形式のデータが使えるようになるので、グラフなどを作成できるようになります。
データ変換は自動的に行うこともできますが、手動で変換プログラムを作成することも可能です。また、外部アクティビティをサポートしているため、「HDInsight Hadoop」「Spark」「Data Lake Analytics」「Azure Machine Learning」など、目的別にデータを対応させることもできます。
モニター機能
Azure Data Factoryでアクティビティやパイプラインを構築して運用しているとき、状況をモニターできる機能です。アクティビティやパイプラインを監視すれば、データ統合の成功率や失敗率を確認できます。
Azure Data Factory料金
Azure Data Factoryは従量課金制となります。
最新の料金は公式サイトをご確認ください。
Azure Data Factoryで利用される主な用語
それでは、ここまでに出てきた用語も含め、Azure Data Factoryを知る上で必要な用語を確認していきましょう。
パイプライン
パイプラインでは以下の図のように、タスクの処理の順番や関連性を線でつないで可視化します。
パイプラインは、タスクとタスクを連携して実行する論理的なグループのことです。さまざまなアクティビティをパイプラインで1つの機能としてまとめることで、一連のタスクを一元的に実行・管理できます。
アクティビティ
アクティビティは、以下の図の「点線」と「→」で示されている一つひとつの処理ステップのことを指します。
アクティビティには、データ移動やデータ変換、制御アクティビティといった3つのアクティビティがサポートされています。
1つのアクティビティの中に複数のアクティビティを設定することは可能ですが、複雑になるため、上の図のように複数のアクティビティを設定してパイプラインで管理する方法がよいでしょう。
データセット
以下の図は、データストア内のデータ構造を示しています。
データセットとは、以下のようなデータストア内のデータを示します。
- テーブル
- ファイル
- フォルダ
- ドキュメント など
リンクサービス
以下の図は、外部リソースに接続するための接続情報のリンクを表しています。
リンクサービスでは、ユーザーは外部サービスとの接続のために接続プロトコルを考えたりプログラムを作成することなく、簡単に外部サービスとリンクできます。例えば、BLOBコンテナーやフォルダはAzure BLOBデータセットで指定してリンク(接続)すると便利です。
マッピングデータフロー(Data Flow)
以下の図は、データ処理の設計を可視化したものです。
マッピングデータフローは、データの結合や集計処理などのETL処理をGUIで視覚的に設計できます。これにより、ノンプログラミングでデータ変換ロジックの開発が可能です。
Azure Data Factoryの使い方
それでは、Azure Data Factoryの実際のオペレーションを見ていきましょう。
- WebブラウザーにてAzure Portalにアクセス(Microsoft Edge、Google Chromeに対応しています)
- Azure Portalのメニューから「リソースの作成」を選択
- 「統合」→「Data Factory」を選択
- 「Create Data Factory」ページにて、「Basics」タブにてデータファクトリを作成するサブスクリプションを選択
- 「リソースグループ」にて、ドロップダウンからのリスト選択、あるいは新規作成を選択して新しいリソースグループの名前を入力
- 「リージョン」にて、データファクトリの場所を選択
- 「名前」に、ユニークな名前を入力(グローバルにユニークである必要があるので、「This Data Factory name is not available」というエラーが出た場合には、その他の名前を入力してください)
- 「バージョン」にて「v2」を選択
- 「Next:Git configuration」タブより、「Configure Git Later」のチェックボックスをオンにする
- 「確認と作成」を選択し、検証に成功後「作成」を選択
- 「作成と監視」を選択し、ブラウザーの新規タブにてAzure Data Factoryユーザーインタフェースアプリケーションを起動
詳しい手順につきましては、Microsoftの公式サイトも確認してください。
まとめ
Azure Data Factoryでは、オンプレミスやクラウドサービス、あるいはビッグデータなどに存在するデータについて、「データの場所」や「データ型」などを意識せずにデータの収集から加工処理をクラウド基盤で行えます。GUIによって視覚的に操作できるため、どこにあるどのデータをどのように処理をするのかといったパイプラインも簡単に作成できます。また、ユーザーは外部サービスとの接続のためにプロトコルを考えたりプログラムを書いたりすることなく、簡単に外部リソースとリンクできるなど、データ連携を容易に行えるデータ連携基盤として利用できるものです。