よしたく blog

ほぼ週刊で記事を書いています

Azure Data Factoryで複数のExcelファイルを結合しCSVにする

今回はAzure Data Factoryを使って、複数のExcelファイルを結合して1つのCSVにする方法について記述する。

前提条件

Azure Data Lake Storage Gen2に「excel2csv」という名称のコンテナを作成する。 また、「excel2csv」コンテナの配下に「input」「output」という名称のフォルダを作成する。 「input」フォルダに結合したいExcelファイルを複数配置する。 「output」フォルダは結合されたCSVファイルが出力される場所になる。

f:id:yoshitaku_jp:20201208175458p:plain

「input」フォルダの中に、「excel1.xlsx」「excel2.xlsx」が存在している。

f:id:yoshitaku_jp:20201208175516p:plain 「excel1.xlsx」は次のようになっている。

f:id:yoshitaku_jp:20201208175545p:plain

「excel2.xlsx」は次のようになっている。

f:id:yoshitaku_jp:20201208175607p:plain

Linked Service作成

1 Azure Data Factoryにログインする。

2 工具箱マークの「manage」をクリックする。「Linked services」に移動し、「+ New」をクリックする。

f:id:yoshitaku_jp:20201208175632p:plain

3 「New linked service」から「Azure Data Lake Storage Gen2」を選択し、「Continue」をクリックする。

f:id:yoshitaku_jp:20201208175656p:plain

4 「excel2csv」コンテナを作成した、Azure Data Lake Storage Gen2との接続情報を設定する。完了したら「Create」をクリックする。

f:id:yoshitaku_jp:20201208175718p:plain

実装方法

1 鉛筆マークをクリックし、実際の処理を書いていく。まずはパイプラインを作成する f:id:yoshitaku_jp:20201208175737p:plain

2 「Activities」からData Flowを選択し、真ん中の空白部分へドラッグアンドドロップする

f:id:yoshitaku_jp:20201208175753p:plain

3 「Adding data flow」が表示される。ラジオボタンで「Create new data flow」を選択し、「Data flow」を選択、その後「OK」をクリックする。 f:id:yoshitaku_jp:20201208175809p:plain

Source設定

1 鉛筆マークのAuthorを選択すると、Data flowsが表示される。次に真ん中の「Add Source」をクリックする。

f:id:yoshitaku_jp:20201208175829p:plain

2 下部の「Source settings」の中から「Dataset」の「+ New」をクリックする。

f:id:yoshitaku_jp:20201208175850p:plain

3 「New dataset」にて「Azure Data Lake Storage Gen2」を選択し、「Continue」をクリックする。「Select format」にて、「Excel」を選択し、「Continue」をクリックする。 f:id:yoshitaku_jp:20201208175909p:plain

f:id:yoshitaku_jp:20201208175924p:plain 4 「Set properties」にて、「File path」を設定する。フォルダマークをクリックし、Excelファイルが配置されているフォルダを設定する。今回の場合は「input」フォルダを設定する。

f:id:yoshitaku_jp:20201208175940p:plain

Sink設定

1 「source1」の右下にある「+」ボタンをクリックし、「Sink」を選択する。 f:id:yoshitaku_jp:20201208175954p:plain

2 下部の「Source settings」の中から「Dataset」の「+ New」をクリックする。

f:id:yoshitaku_jp:20201208180011p:plain

3 「New dataset」にて「Azure Data Lake Storage Gen2」を選択し、「Continue」をクリックする。「Select format」にて、「CSV」を選択し、「Continue」をクリックする。

f:id:yoshitaku_jp:20201208180027p:plain

f:id:yoshitaku_jp:20201208180042p:plain

4 「Set properties」にて、「File path」を設定する。フォルダマークをクリックし、Excelファイルが配置されているフォルダを設定する。今回の場合は「input」フォルダを設定する。

f:id:yoshitaku_jp:20201208180100p:plain

5 下部を「Optimize」に切り替え、「Partition option」を「Single partition」に変更する。 f:id:yoshitaku_jp:20201208180114p:plain

6 「Trigger now」で実行する。

出力内容を確認する

1 コンテナ内の「output」フォルダに「part-merged.csv」ファイルが存在することを確認する。 f:id:yoshitaku_jp:20201208180128p:plain

2 ダウンロードし、中身を確認する。無事に結合されている。 f:id:yoshitaku_jp:20201208180141p:plain