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 ファイルが用意されている
免責
- 今回使用する Excel ファイルは User Local さんの 個人情報テストデータジェネレーター を利用して作成しました。
手順
データと環境の準備
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
- Azure Data Factory での Excel 形式 - Azure Data Factory & Azure Synapse | Microsoft Docs
- データベース スキーマの作成 - SQL Server | Microsoft Docs
- 照合順序と Unicode のサポート - SQL Server | Microsoft Docs
- マッピング データ フローを使用してデータを変換する - Azure Data Factory | Microsoft Docs
- Best practices for dedicated SQL pools - Azure Synapse Analytics | Microsoft Docs
- Excel から SQL にデータをインポートする - SQL Server | Microsoft Docs