LinuxやDocker対応に加えAI機能を搭載 進化したデータプラットフォーム「SQL Server 2017」
Microsoftのデータベース管理ソフト「SQL Server」の最新版「SQL Server 2017」正式版がリリースされた。SQL Server 2017では、Windows版だけではなく、初めてLinux版とDocker版が同時にリリースされた。そのほか、機械学習のAIに対応したことも特徴だ。このLinux対応、Docker対応、AI対応の3つを柱に、SQL Server 2017の新機能とその背景にあるMicrosoftの取り組みについて、日本マイクロソフト株式会社の横井羽衣子氏と岡本剛和氏に話を聞いた。
Linux版もWindows版も同一のソースコード
かつてのMicrosoftは自社のプラットフォームにのみ対応する傾向があった。しかし、サティア・ナデラ氏がCEOに就任した頃から、クラウドに舵を切るとともに、オープンソースソフトウェア(OSS)やマルチプラットフォームに積極的な姿勢を示している。「Microsoft Loves Linux」という言葉も掲げられている。
SQL Server 2017で大きな変更点となるのが、従来のWindows版と同時に、Linux版とDocker版がリリースされたことだ。「いままでのMicrosoftを知っていると、ものすごく驚くのではないでしょうか」と横井氏は言う。
Linux版は、単に移植しただけではなく、Windows版と同一のソースコードで作られているという。それによって同時リリースが実現し、実装された機能に関しては同等に利用できる。
「あくまでイメージとして説明すると、.NET CLRやJava VMのようなOSの違いを吸収するレイヤーがあり、異なるOS上で同じソースコードが動作するわけです」と横井氏は説明する。なお、データベースとしては中間レイヤーによるオーバーヘッドも気になるところだが、氏によると「製品版ではないものの、各種のベンチマークではLinux版もWindows版と同等の結果となりました」とのことだった。
Linux版のSQL Serverで狙う一番のターゲットについては、「LOB(Line of Business:業務系、基幹系)のアプリケーション」だと岡本氏は即答した。「われわれのサポートやセキュリティ、コンプライアンス対応力を武器に、LinuxのLOB市場にSQL Serverで入っていきます。企業ではWindowsだけではないシステムが多数あり、特にデータベースではLinuxも多いと思います。そこにMicrosoftの品質で、本物のSQL ServerをそのままLinuxでご利用いただけます」(岡本氏)
横井氏も「エンタープライズ分野で、Red Hatとの間でもサポートのアライアンスを組んでいます。サポート契約をいただく必要はありますが、『OSSなのでこれ以上はサポートできない』というのではありません」と語った。
Linux版SQL Server 2017は基本的にはWindowsと同じライセンスで利用でき、1つのSKUを購入するとWindows版またはLinux版を選べる。また、2018年6月まで、ソフトウェアアシュアランスのみの価格で利用できるプロモーションも展開する。「通常の料金体系は、ライセンス料と、アップデートなどのソフトウェアアシュアランスの2つからなります。OSSでは製品の料金ではなくサービス料でビジネスすることが多いのですが、それに近い考え方です」(岡本氏)。
Docker対応で本番環境と同じSQL Serverを開発環境に
SQL Server 2017ではさらに、Dockerにも対応した。Dockerの公式マーケットプレイス「Docker Store」で、SQL Server 2017の入ったDockerイメージが公開されている。
https://store.docker.com/images/mssql-server-linux
Dockerに対応する背景は、「開発スタイルの変化」だと岡本氏は説明する。「いま、欧米だけでなく日本でもアジャイル開発やDevOpsが広がっていると思います。そのとき、開発用のデータベース実行環境を作るのに、毎回インストールするというのは開発サイクルに合わない。そこで、Dockerイメージとしてパッケージングして提供します」(岡本氏)。
SQL Server 2017がDockerに対応することで、本番環境と開発環境とでまったく同じデータベース実行環境を揃えられることになる。「実運用クォリティのSQL Serverを、ベンダーサポートのもと、開発環境でも簡単に利用できる」ことを岡本氏は強調し、「デジタルトランスフォーメーションする会社をインフラとして支える」と語った。
Linux版やDocker版がWindows版と同じソースコードで作られている源には、実はクラウドのMicrosoft Azure上で提供されているPaaS(DBaaS)サービスの「SQL Database」がある。横井氏によると、Azure SQL Databaseが先行して新機能などを導入し、パブリックプレビューを経て運用される。その後、次期オンプレミス製品版に取り入れられる流れになっているという。これはSQL Serverが、Azure SQL Databaseと同じコードであることを意味している。
クラウド版が先行して同じソースコードから製品版が作られるのは、マルチプラットフォーム展開のほか、製品の信頼性という意味もある。「一昔前は『Microsoft製品はSP3から』と言われていましたね(笑)。新機能の入った新製品だと、利用側としては信頼性に不安があります。しかし今では、クラウドで先に試して不具合を直していったものが製品版になるので、いい意味で枯れた状態で製品版が最初からリリースされるのがメリットになると思います」と横井氏。
このように、データプラットフォームは、オンプレミスでもクラウドでも同じように使えるというのがMicrosoftのメッセージの一つといえる。
「クラウドというのは、場所の問題ではなく、マネージドサービス化するということです。そのようなSQL Databaseでも、IaaS上に自前でSQL Serverを立てた場合でも、オンプレミスで自分たちで立てた場合でも、いずれも同じインターフェイスで提供しますというのがMicrosoftの考えです。さらに、Microsoftスタックだけでなく、Linuxにも同じように提供します」と岡本氏は語った。
データの近くにインテリジェンスを
AI対応もSQL Server 2017の特徴として挙げられている点だ。
AI対応としている第1の点は、データベース内でプログラムを実行する「ストアドプロシージャ」でPython言語をサポートしたことだ。これまで類似用途としては、統計解析向けのR言語がサポートされていた。Python対応により、TensorFlowやCognitive Toolkit(旧名CNTK)、Chainerといった機械学習フレームワークが利用できるようになった。
それに合わせて、PythonやRからのNVIDIA GPUアクセラレーションに対応した。横井氏によると「SQL Server 2017のCTP(Community Technology Preview)版の段階でも、AzureのNVIDIA GPU搭載インスタンスで検証してくださった方がかなりいて、やはり性能が全然違うと。さらに、NVIDIA GPUでもKepler世代よりPascal世代のほうが速くなっていて、最新のGPUのロジックに対応しているようです」とのことだった。
さらに横井氏は「単にディープラーニング対応というだけでなく、Advanced Analyticsにも対応、非構造化データにも対応、といったように、データについてSQL Server1つでまかなえる。それが他の製品と異なる点で、われわれは『AIに対応していたはじめての商用データベース』と言っています」と語る。
SQL Serverで機械学習をサポートすることについて、Microsoftでは「いままではアプリケーション側にインテリジェンスが置かれていたが、SQL Server 2017ではデータのそばにインテリジェンスが置かれる」と構造の変化を強調している。
データのそばにインテリジェンスが置かれる意義とは何か。基本的なところでは、サーバーのリソースが必要な機械学習の処理が、データベースのサーバーに集約される点がある。アプリケーション側のサーバーでは、アプリケーションとして使えるリソースが増えることになる。これは、特にエッジデバイスで有利となる。
また、機械学習における学習のフェーズでは、データを集めて1つの形式に落としこんだものを、データをクレンジングして、解析して、適用してみる、とった試行のループを何度も回すことになる。「通常はフェーズごとに複数のシステムを組み合わせた連結システムになっていて、1つが出力したものを次のシステムに入力する、といった形をとります。そのための工数がかかる、と認識しています」と岡本氏。「SQL Serverのところで機械学習を回せば、1つのデータリポジトリで処理できるので、工数が削減できます」。
担当者で分けると、機械学習の部分はアプリケーションエンジニアというよりデータサイエンティストの領分だ。アプリケーションに近いというより、データに近い部分にいる。「アプリケーションからはAPIや、SQL Serverでいうとストアドプロシージャのような形で使えるようにする、という構造が向いています。さらに、ストアドプロシージャにすることでアプリケーションからコードを隠蔽したり、納品のときに暗号化したりできます」という長所も岡本氏は語った。
AIによる自動チューニングも
AI関連ではもう1つ、クエリのパフォーマンスを自動的に調整して向上させるインテリジェンスメカニズム( 注:Enterprise Edition限定、要設定)が組み込まれた。これは、データベースの実行プランの最適化に機械学習を用いるというものだ。
データベースの実行プランを確認しながらチューニングするというのは、データベースエンジニアの腕の見せどころではあるが、難しいことだ。「データベースエンジンは、実行される処理の特性を常に学習し続けます。潜在的な問題および改善点を特定し、自動チューニングはワークロードのパフォーマンスを向上させるチューニング・アクションを適用します。たとえばデータベース専門家がいなくてサーバー技術者がデータベースを管理している場合や、開発者がサーバーを立てている場合などで、SQLやデータベースチューニングに苦手意識を持っていることがあります。そのような場合に、自分でチューニングすることを考えなくてよくなります」と横井氏はメリットを語る。
「また、たとえば日本円のデータベースと、取引数の少ない通貨のデータベースとでは、呼び出し回数や1回の呼び出し量などが違います。あるいは、1つのデータベースでもたとえば木曜日にだけトランザクションの傾向が違うといったこともあります。こうした傾向を含めて学習して、自動チューニングしてくれます。最大公約数的な動作から始まり、だんだん自分に合わせたものに馴染んでくる、と表現しています」(横井氏)。
SQL Server 2017のもう一つの大きな特徴は、「ハイブリッドクラウド」であることだ。「製造業のIoTでは、レイテンシーなどの問題で工場の中でAIを構築するということがある。また、医療データや地方自治体のデータなどで、クラウドにはあまり持っていきたくないということもありうる。インターネットに繋がっていないシステムでもAIを使いたいということもある」と岡本氏。「そうしたAIのプラットフォームとして使えるSQL Serverは、非常にポテンシャルがあると考えています」。
ここまで語ったSQL Server 2017のAI対応、Linux対応、Docker対応について、岡本氏は「AIやDockerはお客様やパートナー様とともにチャレンジしていく分野です。まずはLinux対応で利用者の幅を広げて、AIによって利用企業が今まで見たことのない世界を実現する一翼を担うものになっていきたいと思っている。一緒に市場を切り開いていきたい」と語った。
また横井氏は、「いまはデータを溜めるだけではなく、使いこなす時代になってきている。貯める、解析する、インサイトを得る、可視化する、という機能がすべて入っているSQL Server 2017でなくては対応できない。しかも、マルチプラットフォームで、PythonやRも使えます」と語った。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Cognitive ServicesからMachine Learning Servicesまで マイクロソフトの最新AIプラットフォーム総まとめレポート
- SQL Server on Linuxをエンタープライズで活用するためのセミナー開催
- de:code 2017開催、基調講演はAIがテーマに
- DAL、統合EDI製品「ACMS 4.7」を発表
- MR・AI・量子コンピューティングが重要テクノロジー 〜Microsoft Tech Summit 2017レポート
- Microsoftはオープンソースで企業のデジタルトランスフォーメーションを支える ーConnect(); Japan 2017
- 雲の上のリレーショナルデータベース
- CNDT2020シリーズ:Windowsコンテナの基本
- クラウドで利用できるRDBMSとしてのSQL Azure
- 多数の新機能を追加したDocker 1.13リリース、Mozillaが新ロゴ発表、他