kt.log

Import Excel files into Azure Synapse Analytics Dedicated SQL Pool using Mapping Data Flow

本記事では、Excel ファイル (拡張子 .xlsx) を Azure Synapse Analytics専用SQLプール に取り込む方法をご紹介します。
今回の処理は基本的に Synapse Studio 上で行います。Synapse Studio は Azure Synapse Analytics のリソースから起動することができます。

前提

  • Microsoft Azure に利用可能なサブスクリプションを持っている
  • Azure Portal で操作を行う
  • Azure Synapse Analytics および Azure Data Lake Storage Gen2 のリソースが作成されている
  • インポートする Excel ファイルが用意されている

免責

手順

データと環境の準備

Azure Data Lake Storage Gen2 上に Excel ファイルをアップロードする

今回は Azure Portal 上からアップロードしました。

Azure Data Lake Storage Gen2 を Azure Synapse Analytics にリンクする

Synapse Studio > 管理 > 外部接続 > リンクサービス > +新規 から、当該 Azure Data Lake Storage Gen2 をリンクします。

当該 Excel ファイルの統合データセットを作成する

Synapse Studio > データ > + > リンク済み > 統合データセット > Azure Data Lake Storage Gen2 > Excel から、リンクされたサービスである当該 Azure Data Lake Storage Gen2 上の Excel ファイルを統合データセットとして取り込みます。

専用SQLプールを作成する

Synapse Studio > 管理 > Analytics プール > SQL プール > +新規 から、専用SQLプールを作成します。

マッピングデータフローの作成

Synapse Studio > 開発 > + > データフロー から、マッピングデータフローを作成します。

ソースに当該 Excel ファイルの統合データセットを指定する

取り込むカラムを選択してカラム名を指定する

データベースに取り込む必要のあるカラムを残して、他を削除します。今回はデモとして4カラムだけ残しました。
また、今回のデータは先頭行がカラム名になっており、日本語です。データベースのテーブル定義は普通はマルチバイト文字を使わないので、ASCIIのカラム名を指定します。

専用SQLプールにシンクする設定をする

実行の準備

パイプラインを作成する

Synapse Studio > 統合 > + からパイプラインを作成します。このパイプラインは上記のマッピングデータフローを実行するだけのものです。

専用SQLプール上にスキーマを作成する

実行する前に、専用SQLプールにスキーマを作成しておきます。

実行(デバッグ実行)

今回はデバッグ実行をしました。成功しています。

専用SQLプールに対して SELECT 文を発行して、データが取り込まれていることを確認します。

結果のアイテムが ?? 等となっていますが、照合順序の設定ミスかもしれません。とはいえ、データは取り込まれているように見受けられます。

まとめ

Excel ファイルを Azure Synapse Analytics の 専用SQLプールに取り込む方法をご紹介しました。
例えば、業務用の Excel ファイルを Sharepoint / OneDrive 等に保存し、Azure Logic Apps を使って Azure Data Lake Storage Gen2 上に取り込み、Azure Data Factory / Azure Synapse Analytics パイプラインを使って定期的にデータベースやデータウェアハウスに取り込むといった流れが実現可能になります。
SQL Server 系のデータベースに Excel ファイルをインポートする方法はいくつかありますが、定期自動実行する場合は Azure Data Factory / Azure Synapse Analytics が便利です。
ぜひ試してみてください。

See also