Azure SQL Data Warehouse 最新 Update ( 2018/4月版)
Microsoft Japan Data Platform Tech Sales Team
Azure SQL Data Warehouse ( 以降 SQLDW と称す) は要件に合わせてスケール変更自在なクラウド DWH サービスとして多くのお客様にご利用いただいております。今回の記事では、SQLDW の性能を更に向上させるために最近一般提供開始されました 2 つの機能をご紹介します。
1. Compute Optimized Gen2 tier
2018/5/1 に一般提供が開始されましたが、これにより SQLDW は大きく 2 つのパフォーマンスレベルを選択可能となりました。
・ Compute Optimized Gen1 (以降 Gen1 と称す)
これまで提供されておりました SQLDW は、こちらのパフォーマンスレベルで今後もご選択いただけます。なお、今回新たに追加されたパフォーマンスレベルが Public Preview の時には、こちらは [エラスティック用に最適化] パフォーマンス レベルと呼ばれておりましたが、一般提供のタイミングでパフォーマンスレベルの名前が [Compute Optimized Gen1] と変更されております。
・ Compute Optimized Gen2 (以降 Gen2 と称す)
今回新しく提供開始されたパフォーマンスレベルとなります。パフォーマンスを更に向上させるために以下のような強化が行われております。
- 約 5 倍のコンピュートノードスペック
コンピュートノードのスペックが 1 ノード辺り約 5 倍に強化されています。そのため DW1000(Gen1) とDW1000c(Gen2) では価格は同じですが、DW1000 はコンピュートノードが 10 台構成であったのに対し、DW1000c ではコンピュートノードは 2 台で同等以上の性能を出せるスペックとなっています。また、Gen1では DW6000 という上限がありましたが、Gen2 では更に上位の DWU (現時点の最大 DW30000c) を選択できるようになっています。
- コンピュートノードに NVMe SSD を搭載
IO 性能を更に強化するために、コンピュートノードに搭載する SSD を NVMe SSD に変更し、TEMPDB を配置すると共に、頻繁にアクセスするデータをキャッシュする領域としても NVMe SSD を使用しています。
- 頻繁にアクセスするデータをキャッシュ
上記で既に少し述べましたが、Columnstore Index の表データの内、頻繁にアクセスするセグメントはコンピュートノードの NVMe SSD にキャッシュすることにより、IO 性能を飛躍的に向上しています。
- 容量無制限
Gen1 では物理最大容量 240TB という制限がありましたが、Gen2 では Columnstore Index の表データに関しては容量制限がなくなりました。つまり、データを高圧縮で格納しつつ、それでも爆発的に増えるデータに対して、容量制限を気にする必要がなくなりました。
2018/4/26 に一般提供開始された機能となります。SQLDW は MPP であるため、各コンピュートノードにデータを分散配置する必要があります。これまではその分散方法として、ラウンドロビン分散、およびハッシュ分散が選択可能でしたが、今回新たに レプリケート分散も選択可能となりました。
レプリケート分散されたテーブル ( Replicated Table) は、各コンピュートノードにテーブルの完全なコピーをキャッシュします。ディメンションとして使用される表などに利用すると、結合または集計の前に、コンピュートノード間でデータを転送する必要がなくなり、性能が向上します。但し、レプリケート分散されたテーブルは、各コンピュートノードに全て同じデータを保持することになるため小さいテーブル向きであり、ディメンション表でも容量が大きな表ではファクト表との結合キーでハッシュ分散するなどの考慮が必要なケースもあります。
以上、今回は SQLDW の性能向上に関し、最近強化された 2 つの機能をご紹介しました。増加し続けるデータを高速に処理できるプラットフォームである SQLDW を今後とも是非ご利用いただければと思います。