clock2015.09.10 18:25
SERVICE
home

すばやい一時停止とパフォーマンス変更でコストを削減できる:Microsoft Azure SQL Data Warehouse を使ってみた(3)

AUTHOR :   ギックス

検索が速いだけではない! Azure SQL DWの優れた機能をご紹介

前回は、Microsoft Azure SQL Data Warehouse(以下、Azure SQL DW)で13億件のデータを登録したテーブルに対して、検索と集計を行い、性能調査を行いました。今回は、その他の機能について、Amazon Redshiftと比較しながらご紹介したいと思います。

DBの一時停止と再開が数分で行える

Azure SQL DWは、Redshiftも同様に使用時間による課金形態になっています。そのため、使わない時はDBを止めてしまえば、その分のコストを削減できます。

Redshiftの場合、DBを止める機能はなく、DBをバックアップして、削除することでDBを止めています。DBのバックアップと削除は、数分で完了しますが、バックアップからDBとして使えるようにするリストア処理に多くの時間が必要になります。(DBの記憶容量やノード種類によって異なりますが、1TBのデータを1ノードのRedshiftにリストアする時間は約1時間)
(関連記事:Amazon Redshiftの利用料金を半額にしよう!~自動シャットダウン/リストアのノウハウ公開~)

しかし、Azure SQL DWは、DBの一時停止と再開が、Azureのポータル画面から簡単に行えます。そして、これに掛かる時間は、5分ほどで行えました。そのため、使いたいと思ったら、パソコンの電源を入れる感覚で、DBを一時停止から再開し、すぐに使えるのです。そして、この処理時間は、DBの記憶容量に比例しないため、どんな大きなDBでも数分で起動できます。azure_sql_data_warehouse15

DBのパフォーマンス変更も数分で行える

Azure SQL DWは、Redshiftも同様にパフォーマンスの変更が、DBを起動している状態で行えます。そのため、重たい処理を行いたいときにパフォーマンス変更を変更すれば、コストを削減できます。

Redshiftの場合、パフォーマンスを上げる(ノードの追加)を行う場合、ノードのデータの分散処理を行うため、リストア処理と同様の時間が掛かってしまいます。

しかし、Azure SQL DWは、最初からデータを分散させています。そのため、パフォーマンス(DWU)を上げる場合、処理エンジンごとのデータの割り当てを変えるだけのため、5分ほどで行えました。そのため、重いSQLを実行する直前にパフォーマンスを上げて、処理結果が返ってきたら直ぐにパフォーマンスを下げるような運用ができます。また、処理エンジンとデータを保存するストレージが分けれていますので、DWUの数に関係なく、巨大な記憶容量を使うことができます。(Redshiftは、ノードの数で記憶容量が変わります)azure_sql_data_warehouse17

同時に複数のSQL命令を処理できる

データ分析業務では、複数の分析者が、1つのDBにアクセスすることは珍しいことではありません。そのため、1つのDBで同時に処理できるSQL命令の数が、分析スピードに大きく影響します。Redshiftの場合、1ノード(ds2.xlarge)あたりの同時に処理できるSQL命令の数は、2本だけです。しかし、Azure SQL DWが、同時に実行できるSQL命令の数は、最大32本も処理することができます。実際には、処理エンジンとなるスロット数によって、同時に処理できるSQL命令の数が制限されるため、もっと少なくなると思いますが、Azure SQL DWのドキュメントによると、100DWUあたり4本のSQL命令は同時に処理できそうです。

Microsoft SQL Serverで使用できる機能、SQL命令が使える

Redshiftは、PostgreSQLをベースに開発されていますが、DBのプライマリーキーやストアドプロシージャ、一部のSQL命令を使うことができません。しかし、Azure SQL DWは、SQL Serverで使用できる機能、SQL命令をそのまま使えます。そのため、例えばマスタテーブルにプライマリキーを付けて、重複データを登録できないようにしたり、複雑な集計処理をストアドプロシージャに行わせることなどができます。

既存のSQL Serverの分析システムを持っている企業にとって、今までのDB資産をそのまま使えるため、Azure SQL DWの乗換作業は、非常に楽に行えるのではないでしょうか。

残念なのはスナップショットのバックアップが行えないこと

現在、Azure SQL DWには、任意のタイミングでバックアップを行う機能は存在しません。そのため、データの入替などのタイミングでバックアップを行おうと思ってもできない事にになります。また、バックアップを使って、DBを復元することも行えませんので、DBの複製も行うことができません。Redshiftには、スナップショットのバックアップをAWSコンソールから簡単に行えますので、非常に残念です。

Azure SQL DWはビッグデータ分析用のDBとして選択する価値はある

今回まで3回に渡って、Microsoftの新しいビッグデータDBのAzure SQL DWについて、ご紹介させていただきました。SQL命令の処理速度について、テーブル結合での検索時間など、様々な条件で検証する必要があると思いますが、現段階ではビッグデータ分析用のDBとして、十分選択する価値があると判断しています。現在、プレビュー版のため、正式対応は来年ぐらいになると思いますが、それまで気長に調査していこうと思います。

【連載:Microsoft Azure SQL Data Warehouse を使ってみた】
SERVICE