Azure のデータの移動速度が向上

執筆者: Harish Kumar Agarwal (Sr. Program Manager, Azure Data Factory)

このポストは、5 月 12 日に投稿された Data movement made faster in Azure の翻訳です。

 

Azure Data Factory では、各種データ ストアやエンドポイントへの接続の拡充 (現在利用可能なサービスはこちら) やさまざまなデータ形式への対応 (現在 Text、Avro、JSON に対応) のほかに、データの移動速度の向上にも積極的に取り組んでいます。今回、Azure Data Factory のスループットを増大させることで速度向上を実現しました。これにより、Azure Data Factory のコピー機能が以下のように強化されました。

  • Azure Blob Storage がオンプレミスのファイル システムや Azure Blob Storage から 1 TB のデータを取得するのにかかる時間が約 3 時間に (転送速度 100 MB/秒)

 

  • Azure Data Lake Store がオンプレミスのファイル システムや Azure Blob Storage から 1 TB のデータを取得するのにかかる時間が約 3 時間に (転送速度 100 MB/秒)

 

  • Azure SQL Data Warehouse が Azure Blob Storage から 1 TB のデータを取得するのにかかる時間が約 3 時間に (転送速度 100 MB/秒)

 

今回の速度向上は、以下の取り組みによって実現しました。

移動処理の並列化

コピー操作のスループットを増大させ、データ移動の合計時間を短縮させる方法としては、まず、移動元からのデータの読み込みと移動先へのデータの書き込みを並列化するという方法があります。今回はこの手法を使用しています。

移動元からのデータの読み込みと移動先へのデータの書き込みについて、並列処理の要素を指定することができます。これを指定しない場合は、サービスが自動的に最適な構成を決定してくれます。

並列処理でデータをコピーするときには、コピー操作で必要となる処理能力やメモリ使用量、ネットワークの割り当て量などが増加します。Azure Data Factory ではこれらのリソースをまとめてクラウド データ移動ユニットと呼んでおり、これがクラウド間でのコピー操作の際に使用されます。コピー操作に関連付けるクラウド データ移動ユニット数を調整することもできるようになりました。

この機能のベスト プラクティスとガイドについては、こちらのページを参照してください。なお、この機能によって、ADF の使用料金は若干影響を受ける可能性があります (まったくない可能性もあります)。

PolyBase を使用して Azure SQL Data Warehouse にデータを読み込む

PolyBase (英語) を使用すると、大容量のデータを効率的に Azure SQL Data Warehouse に読み込むことができます。PolyBase でデータを Azure Blob Storage から Azure SQL Data Warehouse に移動した場合、既定の BULKINSERT を使用した場合と比べて 300 倍のパフォーマンス向上 (0.3 MB/秒 から 100 MB/秒に) が記録されたことがあります。

ただし、PolyBase は一部のデータ ストアやデータ形式、データの種類に対応していないため、読み込み元のデータ ストアやデータ形式、データの種類が PolyBase の要件を満たしていない場合は、ステージング ストアとしてまず Azure Blob Storage にデータをコピーし、その後 PolyBase を使用してステージング ストアから Azure SQL Data Warehouse に読み込むことも検討してください。

Azure Data Factory で PolyBase を使用する方法、PolyBase の要件とガイドラインについては、こちらのページでご確認ください。

マイクロソフトは今後も Azure 内あるいは Azure と外部環境との間でのデータ移動方法について開発を進めていきます。今回ご紹介した機能のご意見、ご感想は Azure Data Factory の UserVoice (英語)MSDN フォーラム (英語) までお気軽にお寄せください。皆様のコメントをお待ちしています!