SQL Server 2019の強化ポイント
今回のセッション内容は、2019年11月4日から8日までの5日間に亘り米国フロリダ州オーランドで開催された、マイクロソフトのテクニカルカンファレンス「Microsoft Ignite」で発表された内容がいち早く紹介される場となった。
Microsoft Data Platformの代表となる製品が、リレーショナル・データベースのMicrosoft SQL Serverだ。それに加えNoSQL、データウェアハウス用、ビッグデータ用のデータベースなどで、Microsoft Data Platformは構成される。
Igniteのタイミングで一般提供が始まったSQL Server 2019は、オンプレミスはもちろんクラウドでも利用できるマイクロソフトのフラグシップのリレーショナル・データベースだ。「既にRC版の段階で本番環境に近い形で利用され、ユーザーからかなり使い叩かれました」と畠山氏。その結果、一般提供開始の段階でかなり完成度の高いものに仕上がっていると言う。
前バージョンのSQL Server 2017では、AI、機械学習の機能をデータベースエンジンに取り込みデータベースがインテリジェンスを持つようになった。SQL Server 2019では、さらにその部分の強化がなされている。もう1つSQL Server 2017から引き続き強化されているユニークなポイントが、従来のWindows版に加えLinux版、コンテナ版が提供されていることだ。
クエリ性能を向上させるために、実行タイミングに適した処理を行う機能「Adaptive Query Processing」もSQL Server 2019の重要な強化ポイントだ。これもSQL Server 2017で搭載された機能だが、2017ではカラムストアでしか利用できず、アナリティクスなどの用途でのみの機能だった。
2019ではOLTPに強い行指向のテーブルにも対応し、バッチモードで複数行を集めて行うような処理においても、CPUとディスクIOを最適化しクエリ性能の向上を図れるようになっている。
SQL Server 2019の他のポイントとしては、セキュリティ関連機能の強化がある。多くの機能が追加され、かなり細かいレベルできめ細かくデータを守れるようになっている。中でもデータベースの暗号化については、セキュリティで保護されたエンクレーブが設定された「Always Encrypted」が利用できる。
これにより、従来できなかった暗号化列の比較や初期データの暗号化をインプレースでの実行が可能となった。エンクレーブが利用できることで、ランダム暗号化にも対応している。これらにより仮にデータベースファイルをデバッカーで参照しても、中身は暗号化されどういった情報が格納されているかは判別できない。
さまざまな機能拡張がなされているSQL Server 2019だが、リレーショナル・データベースであるためスケールアウト型の拡張には弱味がある。この問題を根本的に解決するのが「Big Data Cluster」だ。これはコンテナベースのクラスターの仕組みで、Kubernetesの上に展開され管理される。
データ処理にはSQLエンジンに加えSparkもあり、ファイルシステムではHDFSも活用できる。これにより並列処理ができる大規模なクラスター構成がとれるのだ。またData Hubの機能を組み合わせることで、さまざまなデータベースをソースとして透過的に接続できる。これを使えばユーザーは、ソースのデータベースを意識することなく1つのSQL Serverを扱っているのと同じように利用できる。
もう1つのスケールアウト型の拡張機能が、「Azure Hyperscale Database」だ。IgniteのタイミングでPostgreSQL版の一般提供開始がアナウンスされ、さらにSQL Serverにも新たに対応することが明らかにされた。これは買収したCitus社の技術を利用したもので、マネージドサービスの形で提供される。
PostgreSQLのサービスはWeb上の画面でノード数を選択することで、20ノードまでのクラスター環境をすぐに構築できる。別途リクエストすれば、100ノードなどさらに大規模なクラスター構成も可能だ。「Hyperscale Databaseの特長は、限りなくゼロダウンタイムでノードを拡張できることです」と畠山氏。さらに、高可用性構成のオプションも選択できる。ただし、現時点では日本リージョンでは利用できない点には注意して欲しいとのことだ。
NoSQLのCosmos DBとAnalytics向け機能の強化ポイント
Microsoft Data PlatformのNoSQLのデータベースとしては、「Azure Cosmos DB」がある。これは地球規模の分散データベースであり、世界中にあるAzureのリージョン間をつなぎマルチマスター形式の分散データベース環境を構築できる。特長としてはCassandraやMongoDBなど複数のNoSQLのAPIが利用でき、ストレージとAPIエンジンが分離し形で動くことだ。
Cosmos DBを利用している顧客からのGROUP BYによる集計処理が遅いとのフィードバックを受け、Igniteではその処理性能を大幅に改善したと発表された。またCosmos DBにこれまではなかったオートスケール機能の「Auto Pilot Containers」も追加された。
「上限値を設定しておくことで、あとはその範囲でオートパイロット機能がよしなに処理してくれるようになりました」と畠山氏。この機能拡張については、大規模なNoSQLデータベースを運用したいユーザーは是非注目して欲しいと言う。これらMicrosoft Data Platformの新しい機能は、コーディングなどを必要とせず、設定だけで簡単に使えるものが多いのも特長だと言う。
Data Platformのもう1つの構成要素であるデータウェアハウスなどAnalyticsのためのサービス群が、「Azure Analytics」だ。Azure Data Factoryにはたくさんのコネクタが用意されており、容量無制限かつ分析用に最適化もされている「Azure Data Lake Storage」にデータを保存・管理する。
Azure Data Lake Storageは、新しい機械学習機能である「Azure ML」のデータストアとしても利用できる。つまりは、SQL ServerやAzure SQL Data Warehouseで利用するために蓄積しているデータを、そのまま機械学習のために利用できるのだ。さらに、学習により構築したモデルの管理も可能だ。どのようなデータセットを利用して学習した結果のモデルかなどを、容易に管理することが可能だ。
ところでデータウェアハウスで扱うデータは、今やペタバイトクラスの規模になっている。ここまで規模が大きくなると、クエリには当然時間がかかる。この課題を解消する方法の1つが「Materialized Views」で、これも今回のIgniteのタイミングで一般提供が開始された新たな機能だ。Materialized Viewsは、あらかじめ計算結果をテーブルとして持つことで、集計にかかる時間を削減する。
しかしながらデータ更新があれば、普通は手動で計算し直す必要がある。今回のMaterialized Viewsでは、更新があれば更新分だけを自動で計算し直し結果テーブルに反映してくれる。「Materialized Viewsを使うと、275秒かかっていたクエリ処理が5秒で終了するといった検証結果も出ています」と、畠山氏はこの機能の効果の高さをアピールした。
さらにクエリ結果は、リザルトセットとして保存してキャッシュデータとして再利用できる。この機能はダッシュボードなどから複数ユーザーが同じようなクエリを発行するような際の性能向上に大きく寄与する。このキャッシュデータは、データベースを一時停止し再開したあとも維持できる。またデータベース単位でもセッション単位でもリザルトセットは設定可能だ。
これらデータウェアハウス、Analytics向けの機能が充実したこともあり、Azure SQL Data WarehouseはTPC-Hのベンチマークでも圧倒的に高い結果を発揮している。
「たとえば他のデータウェアハウス向けのクラウドデータベースでは、1ペタバイトのデータに対するクエリ処理が10分ほどかかるところ、Azure SQL Data Warehouseでは9秒と極めて高速でした」と畠山氏は言う。
新たなビッグデータ向けプラットフォーム「Azure Synapse Analytics」
もう1つのData Platformはビッグデータ向けのデータベースだ。ところで従来、Data Lakeを構築するようなビッグデータ向けのデータベースは、大量データを高速に処理できる反面、セキュリティやプライバシーの確保などの面は必ずしも充実していなかった。
一方リレーショナル・データベースで実現するデータウェアハウスは、大規模な拡張性はないものの信頼性の高いパフォーマンスと実証済みのセキュリティ機能、鉄壁のプライバシーなどある。これら性質の異なる2つのデータベースのいいとこ取りをして、新たに1つにしたのが「Azure Synapse Analytics」だ。「これはビッグデータとデータウェアハウスをかけ算したものになります」と畠山氏。
Azure Synapse Analyticsには、2つのサービスがある。「Provisioned Data Warehouse」は既に一般提供を開始しており、もう1つの「On-demand Query as a Service」は現在プレビュー版で公開されている。Azure Synapse Analyticsでは、SQLエンジンの横にSparkのエンジンが搭載されており、ストレージにはAzure Data Lake Storageを利用する。そしてオーケストレート機能、ETL機能となるData Factoryも内蔵されている。
Azure Synapse Analyticsに蓄積されるデータは、Notebookを使いPythonなどのコードを書くことで多様な見方で可視化できる。また組み込み型のPower BIも用意されているので、使い慣れたツールでコードなどを書かずに柔軟な検索や可視化も可能だ。またSQLを用いて、Data Lakeの中のカラムストアにあるデータにアクセスすることもできる。
さらにCosmos DBを連携させることも可能で、Cosmos DBに蓄積しているデータもすぐに分析対象にできる。「これによりビッグデータを扱うためのストレージは、Data Lake Storage一択という形で構成できます」と畠山氏。
Cosmos DBも、今後はTransactional StorageとAnalytics Storageの2つを持つことになる。Sparkのエンジンでアクセスするのは後者で、Cosmos DBの中だけで2つの種類のデータを扱えることになる。その上で、Azure Synapse AnalyticsとCosmos DBを連携できると言うわけだ。Cosmos DBでは、作成時に複数のストレージタイプの利用を選択でき、またBlobストレージのデータをCosmos DBに連携させて取り込むことも可能となっている。
Azure Arcでハイブリッドクラウドにも対応
マイクロソフトではパブリッククラウドのAzureに力を入れているが、ユーザーにはオンプレミスと一緒に利用するハイブリッドクラウドの要望があることは理解している。その要望に対応する「Azure Hybrid」についても畠山氏は説明した。
新たなハイブリッドクラウドのための製品として、Igniteでは「Azure Arc」が発表された。Azure Arcは仮想マシンや、Kubernetesを活用してオンプレミスと複数のクラウド、さらにはエッジも1つのクラウドと捉え管理できるようにするもの。複数のクラウドを具体例であげるなら、AzureだけでなくAmazon Web ServicesやGoogle Cloud Platformなど他のクラウドサービスの仮想マシンやコンテナ環境も管理できる。「Azure Arcはマイクロソフトの世界だけに閉じるものではなく、オープンな施策となっています」と畠山氏。
具体的には、Azure Resource Managerの仕組みを使い、Azure Arc用のAgentを通じて仮想マシンや、Kubernetes Clusterといった単位で、コンピューターリソースを一元管理できるようになる。そしてAzureのPaaSのDataサービスも、Azure Arc上であれば今後どのような環境でも動かすことができるようになる。
そのため、Azure SQL DatabaseもAzure Database for PostgreSQLも、将来的にAzure Arcの上で使えるようになる。Azure Arcは既にプレビュー版があり、仮想マシンについては現時点で試用が可能だ。
最後に今後のMicrosoft Data Platformの方向性として「NoSQLはCosmos DBに集約し、データウェアハウスとビッグデータはAzure Synapse Analyticsに集約されていきます」と畠山氏。あらゆるスケールのデータをこれらで扱えることになり、さらにArcを使うことでさまざまなハードウェア・インフラ、さまざまなクラウド環境と融合してデータが扱えるようになると言う。
今後も、Microsoft Data Platformはさらに進化を続ける。先が見えない時代の今だからこそ、Microsoft Data Platformのような最新技術をいち早くキャッチアップし使ってみて可能性を探るべきだ。
既にマイクロソフトでは、データを扱うためのさまざまなプロジェクトを多くの顧客と進めており「皆さんの課題についても数多く聞かせてもらっています。マイクロソフトでは新しい技術を使い、それらの課題を顧客の皆さんと一緒に解決したいと考えています」と畠山氏は強調し、セッションを締めくくった。
関連セミナー情報
EnterpriseZine読者の皆様へ限定のお知らせです!以下のセミナーを2020年1月10日(金)に開催します。ぜひお越しください!申し込みはこちらから。
処理性能30倍&コスト削減率90%を実現!「Big Data/DWH アーキテクトに送る"Azure Big Data Analytics Platform"徹底解説セミナー&相談会」