マッピングデータフローで csv ファイルを Delta 形式に変換してみた

はじめに

この記事は株式会社ナレッジコミュニケーションが運営する クラウドAI by ナレコム Advent Calendar 2022 の 13日目にあたる記事になります。
本記事では Azure Data Factory のマッピングデータフローを使用して、csv 形式のファイルを Delta 形式に変換します。

マッピングデータフローとは

マッピングデータフローとは Azure Data Factory 上で使うことができるデータ変換機能です。
GUI ベースでデータ変換のフローを作成することができます。
作成したデータフローは Azure Data Factory のパイプライン内のアクティビティとして使用可能です。

Delta とは

Delta は Data bricks 社が提供するオープンソースのフォーマットです。 Delta で構築されたテーブルは Delta テーブルと呼ばれ、以下のような優れた機能があります。

  • ACID トランザクション
    • データの信頼が担保される
      • 操作が中断された場合でも一貫性が保たれるためデータ破損が防がれる
      • 複数の操作が同時実行されても互いに影響を与えることができない
  • ストリーミングとバッチ処理の統合
    • ストリーミング処理とバッチ処理を同一環境上で行うことができる
  • タイムトラベル機能
    • テーブルに対して何か変更があった際にバージョン管理を行うため、変更前の任意のタイミングに戻ることが可能
  • スキーマ強制
    • テーブルスキーマに合致しないテーブルへの書き込みは拒否されるため、データの品質を維持できる

操作手順

では実際にマッピングデータフローを操作してみます。
今回使用するデータは以下のようなデータを持つ CSV ファイルです。
image.png

まず Data Factoty で新規でパイプラインを作成し、データフローのオブジェクトを配置します。
配置したら、設定のところから[ 開く]を選択し、データフローを開きます。
image.png

使用するソースの種類や参照先などを設定します。
image.png
次に日付データを年、月、日に分けて、カラムとしてそれらを追加する処理を行います。
image.png
式ビルダーを利用することで簡単に変換をすることが可能です。
image.png

最後に書き込み先の設定をします。今回は Delta 形式に変換するので[ インラインデータセットの種類 ]のところで Delta を選択します。
image.png
パイプラインの画面に戻り、[ デバック ]を選択します。[ 出力 ]の[ 状態 ]の部分が成功となれば、正しく構築できています。
image.png
書き込み先を見てみると、たしかにログファイルと Parquet ファイルが出力されています。
image.png
image.png

おわりに

マッピングデータフローを使用してデータの変換を行うことができました。GUI ベースで行うことができるので、エンジニアではない方でもとっつきやすいツールかと思います。ぜひ取り入れてみてください。

参考資料

データ フローのマッピング – Azure Data Factory

https://learn.microsoft.com

Delta Lake とは – Azure Databricks

https://learn.microsoft.com

この記事を書いた人

azure-recipe-user