目次
PolyBaseの説明に入る前にインポートファイルを保存するAzure Storageを理解しよう
前回、Microsoft Azure SQL Data Warehouse(以下、SQL DW)に対して、BCPコマンドによるインポート操作を行ったところ、非常に時間が掛かってしまったことや一部の全角文字によってインポートできない行が発生しました。今回は、Microsoftから新しく発表された「PolyBase」を使ってDBインポートする方法を連載でご紹介したいと思います。
PolyBaseとは
従来のSQL ServerなどのMicrosoftのDBに対してインポートを行う場合、BCPコマンドにてパソコン上のファイルをインポートすることが一般的でした。しかし、現在(2015.11.16時点)、SQL DWに対して、BCPコマンドを実行すると、オンプレSQL Serverで使えていたBCPコマンドの命令(オプション)が使えなくなっていたり、一部の全角文字の影響によってインポートエラーが発生する状況です。
その代わりに新しくリリースされたのが「PolyBase」です。PolyBaseは、Anure SQL Database、SQL Server 2016などのMicrosoftの新しいDBから実装されている機能で、DBからAzureのネットワークストレージ(インターネット上の共有ディスク)、またはHadoopに接続できる機能です。このPolyBaseを使うことで、SQL DWに対してデータをインポート、またはエクスポートを行うことができます。
今回は、AzureのネットワークストレージであるAzure StorageのデータをSQL DWにインポートする方法をご紹介します。
Azure Storageとは
Azure Storageは、Azureのネットワークストレージです。ネットワークストレージと言った場合、メジャーなサービスとしてAWSサービスのAmazon S3をイメージすると思いますが、Azure Storageは、Amazon S3のような機能もありますが、その他にも様々なサービスがあります。これから、簡単にAWSサービスと比較しながらAzure Storageをご紹介します。
Azure Storageのサービスの種類
Azure Storageには下記の5種類のサービスがあります。
- Azure Blobs:ネットワークストレージ
- Azure Tables:NoSQLなどのより保存・操作できるストレージ
- Azure Queues:メッセージ送受信サービス
- Azure Files:ファイル共有サービス
- Premium Storage:Azure Virtual Machinesと連動してディスクIOを早くする機能
実際に全てのAzure Storageのサービスを使ったわけではありませんが、Azure BlobsはAmazon S3、Azure QueuesはAmazon Kinesis、Azure FilesはAmazon Elastic File Systemに相当するサービスのようです。
これらのサービスは単品で使用することができず、サービスを提供するためのブロックBLOB(記憶容量)などの機能の組み合わせた「アカウント(価格プラン)」から選択します。下記は現在(2015.11.16)の東日本にAzure Storageを構築した場合の月の請求見積もりですが、実際、どのサービスのどの機能がどれだけ使われるか分かりませんので、参考程度に考えた方が良いと思われます。
Azure StorageにAzure Storage Explorerでアップロード
Azure Storageにファイルをアップロードする方法は、アップロード専用コマンド、Visual Studio(開発ツール)などありますが、「Azure Storage Explorer」が比較的簡単にAzure Storageにアップロードできると思います。Azure Storageの接続方法は、Storage account nameにストレージアカウント名、Storage account keyにプライマリアクセスキーを設定するだけです。
ただし、Azure Storage Explorerは、Windows用しかありません。さらにVisual Studio 2015 Community(無償版)もWindows用しかありません。そのため、MacなどでAzure Storageにアップロードする場合は、Visual Studio 2015を購入するか、アップロード専用コマンドを使うしかなさそうです。
PolyBaseで使う場合のAzure Storageの注意点
Azure Storageの環境構築は、今までご説明した内容を抑えておけばAzureポータル画面から簡単に作ることができると思います。そこで気を付けなければいけないことは、PolyBaseに対応したアカウント(価格プラン)は下記の3種類だけという事です。
- L.ローカル冗長ストレージ (Standard-LRS)
- G.地理冗長ストレージ (Standard-GRS)
- R.読み取りアクセス 地理冗長ストレージ (Standard-RAGRS)
どのプランにするか迷った場合は1番安い「ローカル冗長ストレージ」にしてください。もし、使用している途中で他の2つの機能が欲しくなった場合、Azureポータル画面から数秒でプランを切り替えることが可能です。
これで、Azure StorageのBLOBにデータファイルをアップロードすれば、DBインポートの準備完了です。実際にPolyBaseを使ったインポート方法は次回の記事でご紹介します。
【連載:Microsoft Azure SQL Data Warehouse を使ってみた】
- DB作成からデータインポートまで
- Azure SQL DWのパフォーマンス測定|13億行のデータで検索と集計処理時間を計測
- すばやい一時停止とパフォーマンス変更でコストを削減できる
- PolyBaseを使ったAzure SQL DWへの高速インポート ~Azure Storageにデータをアップロードする~ (本稿)
- PolyBaseを使ったAzure SQL DWへの高速インポート ~図解で分かりやすく説明~
- Azure SQL DWパフォーマンスチューニング(リソースクラス編)
- Azure SQL DWパフォーマンスチューニング(ハッシュ分散編)