次の方法で共有


チュートリアル: マッピング データ フローを使用したデータの変換

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

このチュートリアルでは、Azure Data Factory ユーザー インターフェイス (UX) を使用して、マッピング データ フローを使用して Azure Data Lake Storage (ADLS) Gen2 ソースから ADLS Gen2 シンクにデータをコピーおよび変換するパイプラインを作成します。 このチュートリアルの構成パターンは、マッピング データ フローを使用してデータを変換するときに拡張することができます

このチュートリアルでは、一般にデータ フローをマップすることを目的としています。 データ フローは、Azure Data Factory および Synapse パイプラインの両方で使用できます。 Azure Synapse Pipelines のデータ フローを初めて使用する場合は、 Azure Synapse パイプラインを使用したデータ フローに従ってください。

このチュートリアルでは、次の手順を実行します。

  • データ ファクトリを作成します。
  • Data Flow アクティビティを含むパイプラインを作成します。
  • 4 つの変換を使用して、マッピング データ フローを構築します。
  • パイプラインをテスト実行します。
  • Data Flow アクティビティを監視します。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。
  • Azure Data Lake Storage Gen2 アカウント。 ADLS ストレージを、ソースシンクのデータ ストアとして使用します。 ストレージ アカウントがない場合の作成手順については、Azure のストレージ アカウントの作成に関するページを参照してください。
  • ここから MoviesDB.csv をダウンロードしてください。 GitHub からファイルを取得するには、コンテンツを任意のテキスト エディターにコピーして、.csv ファイルとしてローカルに保存します。 ファイルをストレージ アカウントの 'sample-data' という名前のコンテナーにアップロードします。

Data Factory の作成

この手順では、データ ファクトリを作成し、Data Factory UX を開いて、データ ファクトリにパイプラインを作成します。

  1. Microsoft Edge または Google Chrome を開きます。 現在、Data Factory の UI がサポートされる Web ブラウザーは Microsoft Edge と Google Chrome だけです。

  2. 上部のメニューで、 リソースの作成>Analytics>Data Factory を選択します。

    [新規] ペインでの Data Factory の選択

  3. [新しいデータ ファクトリ] ページで、 [名前] に「ADFTutorialDataFactory」と入力します。

    Azure データ ファクトリの名前は グローバルに一意にする必要があります。 データ ファクトリの名前の値に関するエラー メッセージが表示された場合は、別の名前を入力してください。 (yournameADFTutorialDataFactory など)。 Data Factory アーティファクトの名前付け規則については、Data Factory の名前付け規則に関するページを参照してください。

    重複する名前に関する、新しい Data Factory のエラーメッセージ。

  4. データ ファクトリを作成する Azure サブスクリプションを選択します。

  5. [リソース グループ] で、次の手順のいずれかを行います。

    1. [Use existing (既存のものを使用)] を選択し、ドロップダウン リストから既存のリソース グループを選択します。

    2. [新規作成] を選択し、リソース グループの名前を入力します。

    リソース グループの詳細については、リソース グループを使用した Azure のリソースの管理に関するページを参照してください。

  6. [バージョン] で、 [V2] を選択します。

  7. [リージョン] で、データ ファクトリの場所を選択します。 サポートされている場所のみがドロップダウン リストに表示されます。 データ ファクトリによって使用されるデータ ストア (Azure Storage、SQL Database など) やコンピューティング (Azure HDInsight など) は、他のリージョンに存在していてもかまいません。

  8. [確認および作成] を選択し、次に [作成] を選択します。

  9. 作成が完了すると、その旨が通知センターに表示されます。 [リソースに移動] を選択して、Data factory ページに移動します。

  10. [ スタジオの起動 ] を選択して、別のタブで Data Factory スタジオを起動します。

Data Flow アクティビティを含むパイプラインの作成

この手順では、Data Flow アクティビティを含むパイプラインを作成します。

  1. Azure Data Factory のホーム ページで、 [Orchestrate](調整) を選択します。

    Azure Data Factory ホーム ページのスクリーンショット。

  2. これで、新しいパイプラインのウィンドウが開いています。 パイプラインのプロパティの [全般] タブで、パイプラインの名前「TransformMovies」と入力します。

  3. [アクティビティ] ウィンドウで、 [移動と変換] アコーディオンを展開します。 ウィンドウから Data Flow アクティビティをパイプライン キャンバスにドラッグ アンド ドロップします。

    Data Flow アクティビティをドロップできるパイプライン キャンバスを示すスクリーンショット。

  4. データ フロー アクティビティに DataFlow1 という名前を付けます。

  5. パイプライン キャンバスの上部のバーで、 [Data Flow のデバッグ] スライダーをオンにスライドします。 デバッグ モードを使用すると、ライブ Spark クラスターに対する変換ロジックの対話型テストが可能になります。 Data Flow クラスターのウォームアップには 5 から 7 分かかるため、ユーザーが Data Flow の開発を計画している場合は、最初にデバッグを有効にすることをお勧めします。 詳細については、デバッグ モードに関するページを参照してください。

    データフロー デバッグをオンにするスイッチを示すスクリーンショット。

データ フロー キャンバスでの変換ロジックの作成

この手順では、ADLS ストレージの moviesDB.csv を取得し、1910 年から 2000 年までのコメディの平均評価を集計するデータ フローを構築します。 その後、このファイルを ADLS ストレージに書き戻します。

  1. キャンバスの下のパネルで、データ フロー アクティビティの [設定 ] に移動し、データ フロー フィールドの横にある [新規] を選択します。 これにより、データフロー キャンバスが開きます。

    パイプライン エディターからデータ フロー エディターを開く方法を示すスクリーンショット。

  2. [プロパティ] ペインの [全般] で、データ フローに TransformMovies という名前を付けます。

  3. データ フロー キャンバスで [Add Source](ソースの追加) ボックスを選択して、ソースを追加します。

    [変換元の追加] ボックスを示すスクリーンショット。

  4. ソースに MoviesDB という名前を付けます。 [新規] を選択して、新しいソース データセットを作成します。

    変換元の名前を指定した後で [新規] を選択する場所を示すスクリーンショット。

  5. [Azure Data Lake Storage Gen2] を選択します。 [続行] を選択します。

    Azure Data Lake Storage Gen2 のタイルの場所を示すスクリーンショット。

  6. [DelimitedText] を選択します。 [続行] を選択します。

    DelimitedText のタイルを示すスクリーンショット。

  7. データセットに MoviesDB という名前を付けます。 リンクされたサービスのドロップダウンで、 [新規] を選択します。

    [リンクされたサービス] ドロップダウン リストを示すスクリーンショット。

  8. リンクされたサービスの作成画面で、ADLS gen2 のリンクされたサービスに ADLSGen2 という名前を付けて、使用する認証方法を指定します。 次に、接続の資格情報を入力します。 このチュートリアルでは、アカウント キーを使用してストレージ アカウントに接続しています。 [テスト接続] を選択すると、資格情報が正しく入力されたことを確認できます。 完了したら、[作成] を選択します。

    Azure Data Lake Storage の新しいリンクされたサービスを作成するためのウィンドウのスクリーンショット。

  9. データセットの作成画面に戻ったら、 [ファイル パス] フィールドの下でファイルが配置されている場所を入力します。 このチュートリアルでは、moviesDB.csv ファイルはコンテナー sample-data に配置されています。 ファイルにはヘッダーが含まれているため、 [First row as header](最初の行をヘッダーにする) をオンにします。 ストレージ内のファイルからヘッダー スキーマを直接インポートするには、 [From connection/store](接続/ストアから) を選択します。 完了したら OK を選択します。

    データセットを作成するためのペインのスクリーンショット。

  10. デバッグ クラスターが起動している場合は、ソース変換の [データのプレビュー] タブに移動し、 [更新] を選択して、データのスナップショットを取得します。 データ プレビューを使用すると、変換が正しく構成されていることを確認できます。

    データをプレビューして変換が正しく構成されていることを確認できる場所を示すスクリーンショット。

  11. データ フロー キャンバス上のソース ノードの横にあるプラス アイコンを選択して、新しい変換を追加します。 最初に追加する変換は、フィルターです。

    データ フロー キャンバスのスクリーンショット。

  12. フィルター変換に FilterYears という名前を付けます。 [フィルター] の横にある式ボックスを選択し、[式ビルダーを開く] を選択します。 ここでは、フィルタリング条件を指定します。

    [フィルター適用] 式ボックスを示すスクリーンショット。

  13. データ フローの式ビルダーでは、さまざまな変換で使用する式を対話形式で作成できます。 式には、組み込み関数、入力スキーマの列、ユーザー定義のパラメーターを含めることができます。 式の作成方法の詳細については、Data Flow の式ビルダーに関するページを参照してください。

    このチュートリアルでは、1910 年から 2000 年の間に公開された、ジャンルがコメディの映画をフィルター処理します。 現在、年は文字列になっているため、toInteger() 関数を使用して整数に変換する必要があります。 以上演算子 (>=) と以下演算子 (<=) を使用して、年のリテラル値 1910 と 2000 に対する比較を行います。 これらの式を and (&&) 演算子を使用して結合します。 式は次のようになります。

    toInteger(year) >= 1910 && toInteger(year) <= 2000

    コメディ映画を見つけるには、rlike() 関数を使用して、ジャンル列でパターン 'Comedy' を検索します。 rlike 式を年の比較と結合すると、次の式が得られます。

    toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')

    デバッグ クラスターがアクティブな場合は、 [更新] を選択してロジックを確認し、使用された入力と比較した式の出力を確認できます。 データ フローの式言語を使用してこのロジックを実現する方法に対する正解は複数あります。

    フィルター式ビルダーのスクリーンショット。

    式の操作が完了したら、[Save and Finish]\(保存して終了する\) を選択します。

  14. フィルターが正しく機能していることを確認するには、データ プレビューをフェッチします。

    フェッチした [データのプレビュー] を示すスクリーンショット。

  15. 次に追加する変換は、 [Schema modifier](スキーマ修飾子) の下にある [集計] 変換です。

    集計スキーマ修飾子を示すスクリーンショット。

  16. 集計変換に AggregateComedyRatings という名前を付けます。 [グループ化] タブで、ドロップダウンから [year] を選択し、映画の公開年ごとに集計をグループ化します。

    [Aggregate Settings]\(集計の設定\) の下にある [グループ化] タブの年オプションを示すスクリーンショット。

  17. [集計] タブに移動します。左側のテキスト ボックスで、集計列に AverageComedyRating という名前を付けます。 式ビルダーを使用して集計式を入力するには、右側の式ボックスを選択します。

    [Aggregate Settings]\(集計の設定\) の下にある [集計] タブの年オプションを示すスクリーンショット。

  18. [Rating] の平均値を取得するには、avg() 集計関数を使用します。 Rating は文字列で、avg() で受け入れられるのは数値入力なので、toInteger() 関数を使用して値を数値に変換する必要があります。 式は次のようになります。

    avg(toInteger(Rating))

    完了したら、[Save and Finish]\(保存して終了する\) を選択します。

    保存された式を示すスクリーンショット。

  19. 変換出力を表示するには、 [Data Preview](データのプレビュー) タブに移動します。 yearAverageComedyRating の 2 つの列だけがあることに注目してください。

    集計プレビューを示すスクリーンショット。

  20. 次に、 [Destination](変換先) の下で [シンク] 変換を追加します。

    [Destination]\(変換先\) でシンク変換を追加する場所を示すスクリーンショット。

  21. シンクに Sink という名前を付けます。 [新規] を選択して、シンク データセットを作成します。

    シンクの名前を指定して新しいシンク データセットを作成できる場所を示すスクリーンショット。

  22. [Azure Data Lake Storage Gen2] を選択します。 [続行] を選択します。

    選択できる Azure Data Lake Storage Gen2 のタイルを示すスクリーンショット。

  23. [DelimitedText] を選択します。 [続行] を選択します。

    データセットの種類を選択するためのペインのスクリーンショット。

  24. シンク データセットに MoviesSink という名前を付けます。 リンクされたサービスの場合、手順 6 で作成した ADLS gen2 のリンクされたサービスを選択します。 データの書き込み先となる出力フォルダーを入力します。 このチュートリアルでは、コンテナー 'sample-data' 内のフォルダー ' output ' に書き込んでいます。 フォルダーは、事前に存在している必要はなく、動的に作成することができます。 [First row as header](最初の行をヘッダーにする) をオンに設定し、 [スキーマのインポート][なし] を選択します。 完了 を選択します。

    最初の行をヘッダーとして選択したシンク作成ページのスクリーンショット。

これで、データ フローの構築が完了しました。 これをパイプラインで実行する準備ができました。

Data Flow を実行して監視する

パイプラインを発行する前にデバッグすることができます。 この手順では、データ フロー パイプラインのデバッグ実行をトリガーします。 データのプレビューではデータが書き込まれませんが、デバッグ実行によってシンクの変換先にデータが書き込まれます。

  1. パイプライン キャンバスに移動します。 [デバッグ] を選択して、デバッグ実行をトリガーします。

    [デバッグ] が強調して示されているパイプライン キャンバスを示すスクリーンショット。

  2. Data Flow アクティビティのパイプライン デバッグでは、アクティブなデバッグ クラスターが使用されますが、それでも初期化には少なくとも 1 分かかります。 進行状況は [出力 ] タブで追跡できます。実行が成功したら、実行にカーソルを合わせ、眼鏡アイコンを選択して監視ウィンドウを開きます。

    完了したパイプラインの状態のスクリーンショット (出力アクションが強調表示されています)。

  3. 監視ウィンドウで、 [ステージ] ボタンを選択して、各変換ステップで費やされた行数と時間を確認します。

    [ステージ] ボタンが強調表示された監視ウィンドウを示すスクリーンショット。

    各変換ステップで費やされた行数と時間を確認できる監視ウィンドウのスクリーンショット。

  4. 変換を選択すると、データの列とパーティション分割に関する詳細情報が表示されます。

    モニタリング変換ペインのスクリーンショット。

このチュートリアルに正しく従った場合は、シンク フォルダーに 83 行と 2 列が書き込まれているはずです。 BLOB ストレージをチェックすることで、データが正しいことを確認できます。

このチュートリアルのパイプラインでは、1910 年から 2000 年のコメディの平均評価を集計し、そのデータを ADLS に書き込むデータ フローを実行します。 以下の方法を学習しました。

  • データ ファクトリを作成します。
  • Data Flow アクティビティを含むパイプラインを作成します。
  • 4 つの変換を使用して、マッピング データ フローを構築します。
  • パイプラインをテスト実行します。
  • Data Flow アクティビティを監視します。

データ フローの式言語の詳細を確認します。