2017年はHadoopやNoSQLなど新しいデータベースの発展がめざましい年でしたが、その一方でデータベースの本流ともいえるRDBも進化を遂げています。SQL Server、Oracle Database、IBM Db2の技術発展と方向性について興味深いポイントを見ていきましょう。
リレーショナルデータベースは「枯れた技術」といわれます。リレーショナルデータベース以外の代替品が次々と生まれているにもかかわらず、消えることはありません。それはSQLというデータ操作のための標準技術の存在が大きいかと思います。
加えて、どのリレーショナルデータベースのベンダーも、時代の要請に対応して、柔軟に製品の進化を図っています。今回は、2017年に見られた商用リレーショナルデータベースにおける目立った動きをピックアップしてみましょう
2017年はMicrosoftが提供するリレーショナルデータベースの最新版が登場しました。Microsoft SQL Server 2017(以下、SQL Server 2017)です。最大の変化はLinuxへの対応です。近年マイクロソフトは、オープンソースとの親和性を高めており、SQL Server 2017のLinux対応はその一環です。Dockerにも対応しました。
他のサーバ製品なら、WindowsとLinuxが選べるのは珍しくありません。しかし、Microsoft製品でOSにWindows以外も選べるようになったのは大きな変化です。お寺にクリスマスツリーが飾られてしまうくらいのびっくり感です。……というのは冗談としても、OSの選択肢が増えたことは、シェア拡大の後押しになることでしょう。
SQL ServerとOSの関係について考えてみましょう。一般的にコンピュータにはOSがあり、ソフトウェアからのリクエストに応じてリソースを割り振るようにしています。これが基本的な動きなのですが、こうした役割分担はソフトウェアにとっては性能を頭打ちにさせる要因となります。SQL Server 2017では、より効率的にリソースを使えることを目指しました。
このあたりの工夫について、最新データプラットフォームに関する記者向けの説明会で、日本マイクロソフトの岡本剛和氏が解説しました。
SQL Server 7.0から2000までの間は、自分の中でスケジューラー(UMS:User Mode Scheduler)を持ち、効率的にCPUを使えるようにしていました。その後SQL Server 2005からは「SQL OS」に変わり、スレッドのスケジュールに加えてメモリなどのリソース管理を自分の中でするようになりました。SQL Serverは、SQL OSでOSの仕事(の一部)を内包しているようなものです。
こうしてSQL Serverは、内部でOS的な仕事を行い、OSと直接やりとりする部分をSQL OSというコンポーネントにまとめ、OSの手前に配置しています。この構成は、SQL ServerがLinuxに対応する際にも役立ちました。基本的にはSQL OSの部分だけLinux対応すればいいからです。SQL Server 2017では、SQL OSは「SQL Platform Abstract Layer(SQLPAL)」として、OSと直接やりとりする部分とそれ以外の部分に分割して効率良く動作するように進化しました。
SQL ServerのLinux版は会社の方針転換という点では大きな変化でしたが、技術的にはさほど大きな変化ではありません。変更点はこれまでのSQL OS部分のみで、それ以外の上位コンポーネントには影響を与えないからです。
SQL Server 2017では、他にも「Data Everywhere」という表現で、データをどこにでも置けること、AIへの対応を進めていることが特徴に挙げられます。昨今の必要性をよく見ていますね。
次はOracleです。近年Oracleはクラウド対応を進めています。オンプレミスのOracle Databaseと同じように、クラウドでもハイブリッドクラウドでも使えることを強みとしてアピールしています。Microsoftの「Data Everywhere」とは同じではないものの、オンプレミスからクラウドへの移行、あるいはハイブリッドクラウドで使いやすいことを重視しているという点では共通しています。
2017年のOracleといえば最も印象深いのは、10月のOracle OpenWorld 2017で発表された「Oracle 18c Autonomous Database」です。この名称には、次のバージョンを示す「18c」と、「自律的」を意味する「Autonomous」が入っています。同社のラリー・エリソン氏は「完全な自動運用」と豪語したようですが、どこまで自動化できるのか興味津々です。
大事なポイントとなるのが、「Oracle 18c Autonomous Databaseでは、次期版のOracle DatabaseをOracle Cloudで稼働させることによって、高度な自律性を実現できる」ということです。Oracle Database 18cだけ、つまりオンプレミスでは全ての自律的な機能を享受できません。高いSLAや自動的な運用は、次期版のOracle DatabaseとOracle Cloudを組み合わせることで実現できる世界です。
2017年12月に日本オラクルが開催したOracle CloudWorld Tokyoで、オラクル・コーポレーションのアンドリュー・メンデルソン氏が詳細を解説しました。
Autonomousは基本的には既存の自動化機能を自動化することで実現していくようです。
Oracle Databaseには既にリソース管理やチューニングなどで「自動〜〜」と名の付く機能が多く存在します。例えば「Oracle自動ストレージ管理(Oracle ASM)」などです。ただしこうした機能をキックするのは運用管理者です。人間が、機能を理解し、必要なタイミングで実行または有効化してきました。こうした自動化機能を、Oracle Cloudでさらに自動的に機能させることで、「Autonomous(自律型)」を実現していくようです。
今後は段階的に、Oracle Cloudで「Oracle 18c Autonomous Database」が提供されていくようです。まずはデータウエアハウス向け「Autonomous Data Warehouse Cloud」が2018年1月終盤に登場ということなので、近々となりそうです。メンデルソン氏の説明では分析のワークロードを自動で最適化し、チューニングやパーティション作成が不要になるとのことです。
その先にはOLTP処理に対応した「Autonomous OLTP and Mixed Workload Cloud」が提供される予定です。データウェアハウスに比べ、OLTPやワークロード混在環境では、自動化のハードルが格段に高くなります。こちらは恐らく提供開始まで半年以上は待つことになりそうです。
運用管理を経験するとよく分かることですが、データウェアハウス(分析)とOLTPではチューニングですべきことが異なるのです。正反対といってもいいくらいです。将来的には完全自動化を目指すとしても、現段階では利用状況や目的に合わせた自動化を実現していくことになるでしょう。
リレーショナルデータベースの世界では、運用工数の削減は長年の課題で、どの商用データベースベンダーも運用の自動化や管理機能の充実に力を入れています。「自律性(autonomics)」という言葉ならIBMもけっこう前から使っています。どのベンダーも、少しずつできることを増やして現在に至るというところではないでしょうか。
なお、IBMは2017年から「HTAP(Hybrid Transactional/Analytical Processing)」ということで、更新系と分析系の処理を統合していくことを目指しています。基本的には分析向けに処理を高速化する「BLU Acceleration」をOLTPにも拡張していくということのようです。いずれ詳細を追っていきましょう。
人間は大人になってからも成長を続けます。得意分野をさらに強化する人もいれば、新分野に挑戦して世界を広げる人もいます。「枯れた」と言われるリレーショナルデータベースも同じです。これまで極めてきた性能をさらに高めたり、トレンドに合わせて新しい機能を追加したり。十分成熟しているのに、まだまだ進化しようと野心を持っているところが頼もしいですね。
Copyright © ITmedia, Inc. All Rights Reserved.