SQL Data Warehouse のアップデートが、最近いくつか発表されましたが、自分の中で情報が整理できていなかったので軽くまとめておこうかと。
Azure SQL Data Warehouse 最新 Update ( 2018/4月版) を見ると、大体のことは書いてあります。
Contents
SQL DW のチートシートの公開
Azure SQL Data Warehouse のチート シート というドキュメントが公開されています。
SQL DW を使用する際に、初めに把握しておきたい内容がてんこ盛りです。
Azure SQL Data Warehouse のベスト プラクティス のベストプラクティスの情報も随時更新されているようですので、この二つのドキュメントは定期的に確認するとよさそうですね。
SSMS で実行プランのグラフィカルな表示が可能
SSMS 17.5 から、SQL DW の実行プランがグラフィカルに取得できるようになりました。
今までの EXPLAIN とは異なり、グラフィカルに確認ができるとの、SSMS の実行プランの比較機能で、クエリの推定実行プランが比較できるようになりましたので、クエリチューニングの利便性がかなり向上しているかと。
全リージョンで利用可能
SQL DW が全リージョンで利用できるようになりました。
- Azure SQL Data Warehouse now generally available in all Azure regions worldwide
- すべての Azure リージョンで Azure SQL Data Warehouse の一般提供を開始
この後に紹介している Gen2 についても、東西の日本で使用できるようになっていますので、日本リージョンで Gen1 / Gen2 を利用することが可能となっています。
レプリケートテーブルの GA
各コンピュートノードにテーブルの複製を配置する、レプリケートテーブル が GA (General Availability : 一般提供開始) されました。
- General availability: Replicated tables in Azure SQL Data Warehouse
- Replicated Tables now generally available in Azure SQL Data Warehouse
推奨のサイズとしては 2GB 未満となっていますが、マスターのような更新頻度が少なく、頻繁に結合されるが、分散のキーが悩ましいテーブルの、データ移動を抑えて効率的に参照できるテーブルの利用が、サポート機能として利用できるようになりました。
Gen2 関連
SQL Data Warehouse の構成が、Gen1 / Gen2 という呼び方に変わり、今までの名称が次のようになりました。
- エラスティック用に最適化 -> Gen1
- コンピューティング用に最適化 -> Gen2
Gen2 が GA して、次のような情報が公開されています。
- Blazing fast data warehousing with Azure SQL Data Warehouse
- Region expansion for the next generation of SQL Data Warehouse
- Turbocharge cloud analytics with Azure SQL Data Warehouse
- Adaptive caching powers Azure SQL Data Warehouse performance gains
Gen2 の特徴としては、次のようなものがあります。
- 無制限の列ストアインデックスの領域の利用可能
- E64 v3 をベースとした構成
- 各コンピュートノードに接続くされた、NVMe に直近のキャッシュを維持するアーキテクチャを採用
- Gen1 と比較して、最大で 5 倍程度参照のパフォーマンスが向上 / 4 倍の同実行クエリの向上 (32 -> 128) / 5 倍のスケーラビリティ (6000 DWU -> 30,000 cDWU)
Gen1 と Gen2 で同一のデータを使用してクエリの実行を比較してみたのですが、Gen2 はかなり高速でした。
その分お値段も上ですが…。
最小構成が「1000 cDWU」となっており、この構成の場合、430 GB 程度のメモリを搭載したコンピュートノードが 2 台で構成されているようでした。
Gen1 の 100DWU の場合、1 台構成ですので、初期の構成台数自体、異なっているようですね。
ディストリビューションについては Gen2 も 60 となっているようです。
これで、どのように無制限の列ストアインデックスがサポートされているのかが気になります。
NVMe を使用したキャッシュですが、バッファプール拡張を使っているのかと思ったら、それについては機能としては無効になっているようだったので、OS かストレージの機能として、NVMe を使用したキャッシュを実現しているのかもしれないですね。
Gen 1 -> Gen2 へのアップグレードもサポートされており、詳細は SQL Data Warehouse をアップグレードしてパフォーマンスを最適化する から確認できます。
クエリの同時実行数ですが、Gen2 だけでなく、Gen1 についても改善されているようで、Data warehouse capacity settings を確認する限り、Gen1 も 128 いけそうな感じですね。
統計情報の自動作成のサポート
今までの、SQL DW の統計情報は、「自動作成なし」「自動更新なし」となっていたのですが、「統計情報の自動作成」がサポートされるようになりました。
ALTER DATABASE { database_name } SET { AUTO_CREATE_STATISTICS { OFF | ON } } [;]
統計情報の自動更新については、現状はサポートされていないようなので、定期的な統計情報の更新については、考慮する必要がありますが、クエリのオプティマイザが最適化に使用する情報の自動的な作成ができるようになったのはポイントかと。
投稿を書いている時点では、日本語版のドキュメントの更新は行われていませんが、英語版のドキュメントである Creating, updating statistics on tables in Azure SQL Data Warehouse については、自動更新についての記述が追加されていますね。
SQL Operations Studio を使用した SQL DW の管理情報の洞察
Extract management insights from SQL Data Warehouse with SQL Operations Studio というアナウンスで、SQL DW の管理情報を SQL Operations Studio で可視化する方法が紹介されています。
SQL Ops は、クエリ実行結果のチャート化や、ウィジェットの作成が簡単にできるような作りになっているので、この利用方法は面白いですね。
MonitoringScripts にクエリが公開されていますので、時間があるときに確認しようかと。
Build でも SQL Ops を使用したデモが多かったようなので、このツールもきちんと学習しておきたいなと思いました。
[…] SQL Data Warehouse の直近のアップデートの整理 […]
Azure Update (2018.05.17) | ブチザッキ
17 5月 18 at 07:18