SQL Data Warehouseはどんなサービスでしょうか?
私の理解ではMPPで並列処理するように拡張されたSQL Serverのように理解しています。
Amazon Redshiftの対抗ということですが、アーキテクチャ的にはTeradataとかGreenPlumなどとも同じになるかなと。
他のMPPデータベースと同様、コントロールノード(マスター)とコンピュートノード(スレーブ)の構成を取るようです。
とりあえず、クエリを投げるところまで試してみます。
構成する
Azureのポータルメニュの+から、データ+ストレージ -> SQL Data Warehouse(プレビュー)を選びます。
設定は、とりあえず以下のとおり。
- 名前:hoge(これがSQL Server内のデータベースの名前になります)
- サーバー:これがSQL Serverのホスト名になります。また、ID,PWはログイン時のID,PWになります。
- パフォーマンス 71.4円/時とはいえ、最小単位の100DWUに設定。
- ソースの選択 テスト用にクエリを投げたいのでサンプルを選びます。お馴染みAdventureWorksが設定されます。
- その他はとりあえずデフォルト
デフォルトでは400DWUになっていますが、軽くベンチマークしたところ、400〜600DWUくらいが最もバランスが良いようです。
5分くらいで構成は終わりました。
リソースではSQL Serverと(その中に)SQLデータベースというのができる。階層が同じなのでわかりにくい。
- SQL Server:ユーザー、Firewall等、各種設定を行う。
- SQLデータベース:接続先、クエリ先。
補足:SQL ServerとSQLデータベースの関係
上記の例では、データベース(DWH)名とサーバ名をhoge/hogeと同じにしてしまったので、SQL ServerとSQLデータベースの関係が少々わかりにくくなっていました。なので、以下、補足です。
- ①一番に設定する名前というのはデータベースの名前のようです。
- ②サーバ名は、そのままです。ホスト名です。
- ③はSQL認証時のログイン名となります。
完成したリソース表示における関係は下記の通り。
最初に設定したデータベースがサーバの下層リソースというのがこのレイアウトだと少々わかりにくい。
ログイン時の画面では、接続先のホスト名とログインID(とパスワード)が利用されます。
この図が一番関係がわかり易い。最初に設定した名前はSQL Server内のデータベース名となる。
以上、補足でした。
利用する
接続
では作成したData Warehouseにクライアントから接続してみましょう。
Firewallの設定
接続のためにはまず、Firewallでクライアントからの接続を許可します。
設定はSQL Serverの方のメニューから行ないます。
設定後は必ず「保存」をしましょう。私はそれをせずにしばらくハマりました。
接続クライアント
Firewallの設定が終わったらいよいよ接続です。が、2015年12月5日現在、SQL Data WarehouseはSQL Server Management Studio(SSMS)では利用できないようです。
ではどうするかというとVisualStudio(VS)を利用するようです。この時点で、心折れそうですが、頑張ってすすめてみます。
幸い、VSはインストールしてありました。なお、接続には最新のSQL Server Data Toolsをを入れたほうが良いみたいなので入れました。
VSは無償で利用できるCommunity版がありますので、必要な人はインストールして下さい。
接続情報と接続
接続情報はSQLデータベースの方のメニューを見れば、書いています。それをコピペして接続先として登録することも出来ますし、上部メニューの「VisualStudioで開く」的なメニューを押すことでVSが起動し、接続できます。
PHP用の接続文字列なども取得できるようです。
接続時にはID,PWを聞かれますので、申込の際に入力したID,PWを入力します。
ここでログインできない場合はSQL ServerメニューのFirewallの設定を確認してください。
接続できました。
サンプルを選んだので、AdventureWorksのテーブル群が展開されています。
ではクエリをかけてみます。テータベースを右クリックするなりして、Queryウインドウを開きます。
クエリは何でもいいですが、ここでは、
select count(*) from dbo.FactInternetSales;
としました。入力したら、Executionボタンを押します。
ここまでくれば後は、SQL Serverの世界です。
とは言え、アーキテクチャが違うため、使えないコマンド、プロシージャもあります。詳しくはこちらをどうぞ。
スケールさせる
詳細はさておき、スケールさせることは簡単です。SQLデータベースのメニューからスライダーを動かすだけ。
メニューから監査の設定や透過暗号なども適用できるようです。
そのうち、大きめのデータ入れてベンチマークもしてみたいと思います。
参考
データロード
ここではサンプルデータを利用しましたが独自データのロード方法についてはこちらを参考にして下さい。
外部
- https://azure.microsoft.com/ja-jp/documentation/articles/sql-data-warehouse-get-started-provision/
- https://azure.microsoft.com/ja-jp/documentation/articles/sql-data-warehouse-get-started-connect/
- http://blog.engineer-memo.com/2015/09/25/sql-data-warehouse-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B-%E3%81%9D%E3%81%AE-1/