LoginSignup
8

More than 5 years have passed since last update.

Azure Data Factory 使って CSV データを SQL Database にインポート

Posted at

目的

私は SQL Server に慣れ親しんでいたので、普通に SQL Server Integration Services (以降、SSIS) を躊躇なく採用していました。
しかし、いざスタートアップで採用してみると、、、

  • SSIS で ETL 開発したことがない
  • てか、SSIS って何?
  • え! Visual Studio いるの?
  • え! Windows 環境でしか開発できないの?
  • え! ライセンス費用、こんなにかかるの!!!

という具合になる確率が非常に高いことを痛感しました。
できるだけ低コストで、でもちゃんとサポート受けられる製品・サービスのひとつとして、Microsoft Azure Data Factory で SSIS に変わる ETL 開発を実現できるかを検証してみました。

参考

Copy data from Blob Storage to SQL Database using Data Factory

準備

  • Microsoft Azure サブスクリプション
    • 一部の MSDN サブスクリプションお持ちの方は、MSDN サブスクリプション特典で Azure をアクティブかできるはずです
    • Visual Studio Dev Essentials にサインアップすれば、1年間毎月 $25 分の Azure を利用できます
  • Blob ストレージ アカウントを作成してアカウント名とアクセス キーをメモ
    • コンテナーも作成しておきます
  • SQL Database (空のデータベース) を作成して、ユーザー名とパスワードをメモ
    • 作成する時、Azure サービスからのアクセスを許可しておきます
  • 適当な CSV ファイルを作成
emp.csv
John, Doe
Jane, Doe
  • 作成した CSV を先に作成した Blob ストレージにアップロード

    • 本家チュートリアルでは、Azure Storage Explore を使用していますが、Azure Portal からでもアップロードできます。 スクリーンショット 2016-12-08 11.54.53.png
  • SQL Database に作成するテーブルの DDL を作成

emp.sql
 CREATE TABLE dbo.emp
 (
     ID int IDENTITY(1,1) NOT NULL,
     FirstName varchar(50),
     LastName varchar(50),
 )
 GO

 CREATE CLUSTERED INDEX IX_emp_ID ON dbo.emp (ID);

できたら、Visual Studio Code で Azure SQL Database に接続して、テーブル作成します。
※ Visual Studio Code で SQL Server に接続する手順はここを参考に接続してみてください。

Data Factory 作成

Azure ポータルで Data Factory を検索して、ウィザードに従って作成します。(詳細は割愛します)
作成したのち、ポータルで Data Facroty を開き、データをコピー (プレビュー)をクリックします。
スクリーンショット 2016-12-08 13.07.05.png

別な画面が開きます。Task name他、入力項目・選択項目は、ここでは既定のものを使用しますので、そのままNextをクリックします。
スクリーンショット 2016-12-08 13.22.08.png

Azure Blob Storageを選択し、Nextをクリックします。
スクリーンショット 2016-12-08 13.22.30.png

Connection nameは自動で入力されているものを使用します。Storage account nameは、CSV ファイルを格納しているものを選択し、Nextをクリックします。
スクリーンショット 2016-12-08 13.22.52.png

emp.csvファイルを選択し、Chooseをクリックします。
スクリーンショット 2016-12-08 13.23.47.png

選択したフォルダー名およびファイル名を確認し、Nextをクリックします。
スクリーンショット 2016-12-08 13.24.01.png

CSV ファイル フォーマットを確認し、下の方にあるプレビューで意図した形で認識しているかを確認したのち、Nextをクリックします。
スクリーンショット 2016-12-08 13.24.33.png

取り込み先の設定でAzure SQL Databaseを選択し、Nextをクリックします。
スクリーンショット 2016-12-08 13.24.54.png

Connection nameは自動入力されたものを使用します。SQL Database Server およびデータベースを選択し、User namePasswordを入力したのち、Nextをクリックします。
スクリーンショット 2016-12-08 13.25.20.png

取り込み先テーブル (先に作成した emp テーブル) を選択し、Nextをクリックします。
スクリーンショット 2016-12-08 13.25.48.png

CSV の列とテーブルの列のマッピングを確認し、問題なければNextをクリックします。
スクリーンショット 2016-12-08 13.26.07.png

ここの項目は、今回は特に設定しませんので、Nextをクリックします。
スクリーンショット 2016-12-08 13.26.22.png

サマリーを確認し、Finishをクリックすると、デプロイ開始となります。
スクリーンショット 2016-12-08 13.26.34.png

デプロイを開始したことを確認し、しばらく待ちます。
スクリーンショット 2016-12-08 13.26.48.png

取り込み完了したのち、Click here ...をクリックしてみましょう。
スクリーンショット 2016-12-08 13.27.06.png

画面中央上ほどで歯車がぐるぐる回っているかと思います。取り込んでいる最中です。
スクリーンショット 2016-12-08 13.27.32.png

取り込み完了したら、SQL Database にクエリしてみます。
スクリーンショット 2016-12-08 13.31.59.png

そうすると、ちゃんとデータが取り込まれていることを確認しました。ID 列は自動採番ですね。

感想

簡単なデータコピーであれば、そこまで難しくないと思います。
ちょっとデータ整形を必要とするものも Azure Data Factory ではできるはずなので、引き続き自分なりにまとめ見ようと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8