LoginSignup
1

More than 5 years have passed since last update.

Azure Data Factoryを利用してAzure StorageのデータをDocumentDBにコピーする

Last updated at Posted at 2016-12-12

データ移動サービスのAzure Data Factoryを利用してみます。

Azure Storageに限らず、オンプレミス環境のMySQLなどからもインポートできるようですが、Azureの世界の中でのデータコピーをやってみます。

前提

  • Azure の課金アカウントを持っていること
  • Azure Storageをアクティベート出来、何らかのデータを保存していること
  • Azure DocumentDBをアクティベート出来、コレクションとデータベースを作成していること

関連記事にて、Azure Storageにデータ投入する方法を記載しました。Webブラウザからアップロードするのが簡単だと思いますが。参考まで。

64MB以下(Azure Storage SAS access 延長戦【主にREST API sample code】)
http://qiita.com/snomoto/items/a24b34ebb111706679e8

Azure Data Factoryの設定

2016年12月現在、米国西部・米国東部・ヨーロッパ北部リージョンでしかリソースをアクティベート出来ないのですが、データをコピーする動きをするだけなので、日本リージョンのStorageからDocumentDBへのコピーなどは問題なく実施出来ます。

スクリーンショット 2016-12-12 13.22.34.png

  • GUIツールが用意されているようなので、そちらを利用してみます。

スクリーンショット 2016-12-12 13.47.55.png

  • 日時のバッチ処理的なコピーするスケジュールなども設定できます。

スクリーンショット 2016-12-12 13.50.46.png

  • データ元としてAzure Storageを指定します。

スクリーンショット 2016-12-12 13.51.18.png

スクリーンショット 2016-12-12 13.51.57.png

  • コピーするデータを指定します。JSONの形式に問題があるときは、この時点でエラーが出力されます。

スクリーンショット 2016-12-12 13.52.22.png

スクリーンショット 2016-12-12 15.17.18.png

  • 仕向け先のDocumentDBを指定します。

スクリーンショット 2016-12-12 15.17.35.png

スクリーンショット 2016-12-12 15.19.08.png

スクリーンショット 2016-12-12 15.40.49.png

  • 保存して実行します。

スクリーンショット 2016-12-12 15.41.19.png

Azure Data Factoryの実行

単に保存して実行したらエラーが出ました。裏ではアクティベートが終わってないのかも知れません。
改めて、ダッシュボードから実行してみます。

スクリーンショット 2016-12-12 16.08.22.png

スクリーンショット 2016-12-12 16.08.50.png

スクリーンショット 2016-12-12 16.09.08.png

  • GUIがすぐには更新されないのですが、少し待つと表示が変わります。

スクリーンショット 2016-12-12 16.25.36.png

  • エラーが出ました。。。
Copy activity encountered a user error at Sink side: 
ErrorCode=UserErrorDocumentDBWriteError,
'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,
Message=DocumentDb operation failed: 
Message: {"Errors":["Request size is too large"]}
  • 今回はデータをコピーするだけなので、一旦スケールアップしてみます。

スクリーンショット 2016-12-12 16.37.16.png

  • 改めて実行し、DocumentDBの「ドキュメントエクスプローラー」からデータを確認します。

スクリーンショット 2016-12-12 16.49.42.png

以上。

Azure StorageのデータをAzure Storageにコピー

2016年12月追記
Data Factoryはスケジュール実行ができるのですが、上記のGUIの流れの中では、DocumentDBに対してはファイル名に日付を付与できません。
使い勝手の良いAzure Storageをアーカイブ代わりに使ってみます。

上記の流れの中で、出力ファイルの名前をセットするときに、年月日を自動で付与するように設定できます。

スクリーンショット 2016-12-14 17.56.52.png

  • フォルダを自動で作らせるとき

例えばですが、"Folder path"の欄に、以下のようにするとStorageのコンテナー内にフォルダが自動で作成されます。

コンテナー名blob/{year}/{month}/{day}/

結果は以下のスクリーンショットの通りです。
スクリーンショット 2016-12-14 18.43.00.png

  • ファイルの接頭語として日付を付与する

Fileの接頭語として日付を付与する場合は、Filenameを下記のようにします。

{year}{month}{day}data

結果は以下のスクリーンショットの通りです。
簡単に日次でデータをアーカイブ化できますね。
スクリーンショット 2016-12-14 18.45.48.png

おわりに

兎にも角にも、データのコピーが出来ました。簡単ですね。

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
1