グローバルで高いシェアを誇るオープンソースソフトウェアのMySQL。2018年4月、バージョン8.0が提供されてから、多数の情報が各種メディアで公開されてきたが、DX(デジタルトランスフォーメーション)の文脈では何がポイントになるのか、今あらためて、開発陣にアップデートの意図を聞いた。
2018年4月にOracleから正式にリリースされたMySQLの最新バージョン8.0。従来の5.7から大幅な機能強化/追加が行われ、バージョン番号も大きく飛躍した。商用版のMySQL Enterprise Editionの公式ページには8.0について次のような紹介文が並ぶ。
「MySQL 5.7よりも最大2倍高速」「最も要求の厳しいWebアプリケーション、eコマースアプリケーション、SaaS、オンライントランザクション処理(OLTP)アプリケーションを強力に後押し」「使いやすく、スケーラビリティとパフォーマンスに優れているため、世界でもっとも普及しているオープンソースデータベース」──こうしたハイパフォーマンス、使いやすさ、スケーラビリティ、高可用性といった特長は、2016年に8.0の開発方針が発表されて以降、順次実装されてきたものだ。
ただ近年は、NoSQL、カラムストア、クラウドストレージなど、新しいデータベース/ストレージ技術が登場し、スタンダードになりつつある。そんな中、RDBMSとしてメインストリームであり続けてきたMySQLはどのような方向に向かおうとしているのか。8.0については多数の情報が公開されているが、MySQLの開発部隊を統括するMySQLエンジニアリング担当VPのトーマス・ウリン(Tomas Ulin)氏と、MySQLレプリケーション開発チームディレクターのルイス・ソアレス(Luis Soares)氏に、今あらためて話を聞いた。
── 近年、NoSQL、Hadoop、オブジェクトストレージなど、データを処理するための新しい技術が次々に実ビジネスに取り込まれ、アプリケーション開発の在り方も大きく変わってきました。そうしたトレンドをどう見ていますか。
ウリン氏 日々変化するビジネスニーズに応えるために、Webサービス系を中心にアジャイル開発のスタイルが企業の間に広がってきたと思います。当然、このことはMySQL開発の在り方にも影響を与え、企業のニーズに応えるために、われわれ自身もMySQLの機能をアジャイルに追加・改善していく必要があります。こうした中で、大きく変わってきたのはデータマネジメントの在り方だと思います。
MySQL 8.0では多くのアップデートを行いましたが、データマネジメントに関して重要なのは、やはり「ドキュメントストア」の導入です。これにより、リレーショナルアプリケーションとNoSQLアプリケーションの両方を1つのDBで開発できるようになりました。開発者はリレーショナルデータとJSONドキュメントを、同じデータベース、同じアプリケーションで混在させることができます。「MySQL Shell」という対話型インタフェースを通じて、JavaScriptやPythonスクリプトを直接実行することもできます。データベースの違いを意識することなくデータにアクセスできれば、開発の効率・柔軟性は大きく向上します。DevOps実践にも大いに寄与すると思います。
── デジタルビジネスは、ニーズを先取りする企画力、競合に先んじて提供するスピードが差別化要素となる点で、「開発者が開発に集中できる環境」をいかに築くかが勝敗のポイントとされています。8.0は開発者に一層配慮した印象ですね。
ウリン氏 そうですね。以上のようにRDBとNoSQLのハイブリッドとした他、新たにSQLに名前を付けて定義し、他のSQLからその名前を呼び出すことができる「CTE(共通テーブル式)」や、複数行の集計・分析に有用な「Window関数」に対応したこともポイントです。これらは操作や分析の面から、開発者の生産性向上に寄与します。
この他、JSONデータを受け取りリレーショナルテーブルとして返す「JSON_TABLE関数」や、デフォルトキャラクタセットのUTF-8化も挙げられます。UTF-8対応は日本の利用状況を考慮し、「スマートフォンで用いられる絵文字をそのままデータベースに格納したい」というニーズに応えたものです。
IoTなどでニーズが高まっているGIS(地理情報システム)対応も強化し、測地座標系(SRS:Spatial Reference Systems)もサポートしました。このように、新規領域に対する企業の取り組みをデータベース側からサポートすることを狙って進化させています。
── 一方、運用者の観点では、MyISAMで指摘されてきたパフォーマンスや可用性の向上がポイントかと思いますが。
ソアレス氏 その点では、ストレージエンジンの標準がInnoDBになったことが挙げられます。InnoDBはストレージエンジンの標準になると同時に、MySQL内部のテーブルとしても使われています。ここでは「トランザクショナルデータディクショナリ」と呼ばれる新しいアーキテクチャを採用しています。トランザクショナルデータディクショナリでは、定義ファイルなどのメタデータを含めて、単一のInnoDBテーブル領域に格納します。これにより、従来のMyISAMにおけるパフォーマンスやスケーラビリティ、耐障害性といった課題を解消しました。簡単に言えば、データを持っているテーブルと同じようにシステム内部のテーブルも保護されるようになったということです。
より高度な可用性を求める上では、新たに備えた「InnoDB Cluster」という仕組みが役立ちます。これまでMySQLで高可用性システムを構築するにはサードパーティーのツールを使う必要がありました。InnoDB ClusterはMySQLシステムだけで簡単に高可用性システムを構築できる機能です。InnoDB Clusterは、先ほどのMySQL Shellに加え、「MySQL Group Replication」「MySQL Router」という3つコンポーネントを使って構築します。
── 運用者の負荷軽減や生産性向上につながる機能としてはいかがでしょう。
ソアレス氏 メタデータの収集にIndexを利用するようになり、メタデータ処理が高速になりました。これは運用コストの削減につながるはずです。また、「SET PERSIST」というコマンドオプションが加わりました。これは稼働中のシステムの設定を変えると同時に、永続的にも設定を変えるもの。設定ファイルを何度も書き換える手間がなくなります。SQLで再起動するコマンドも加わりました。こうした機能改善は地味に見えるかもしれませんが、着実に運用者の負荷を軽減してくれるものです。特に、クラウド環境ではコマンドや設定ファイルを機会的に取り扱うシーンが増えますから、高い効果が期待できます。
── アップデートのポイントを紹介いただきましたが、中にはPostgreSQLがすでに実装している機能も含まれています。あらためてMySQLの強みをまとめるとすれば、どのようなことが言えますか。
ウリン氏 大きく3つあると考えます。まずは使いやすさです。MySQLは世界に広く普及しているオープンソースデータベースですし、さまざまなOSやプラットフォームに対応しています。構築・運用のハードルも低いと考えます。2つ目はコミュニティの大きさです。Facebook、Google、Twitterなど、著名で大規模なユーザーも数多くおり、ノウハウを共有しやすいことは大きな利点です。3つ目は開発元からのサポートが得られることです。オープンソースとしてはもちろん、商用版を使って大規模なシステムを構築・運用することができます。
── 実際、FacebookやTwitterなどにおいてはデータベース障害が広告収入に直結します。使いやすさの他、ミッションクリティカルシステムでの活用例が多く、そうしたシステムを支える機能を強化している点も重要なポイントなのでしょうね。
ソアレス氏 例えばInnoDB Clusterは、ある通信キャリアネットワークの数千万人規模の加入者データベースですでに利用されています。加入者情報は個人情報につながるものですから高い信頼性と堅牢性が求められます。Booking.comも挙げられます。MySQLのレプリケーション機能を活用して、急成長を続けるインフラを支えています。
── セキュリティ面の強化ポイントについてはいかがですか。
ソアレス氏 内部で利用しているOpenSSLをスタティックリンクからダイナミックリンクに変更した点はユーザーにとっても大きなメリットだと思います。OpenSSLの脆弱(ぜいじゃく)性が問題になりましたが、ダイナミックリンクとして利用する形に変わったため、ユーザーが必要に応じてMySQLシステムはそのままに、OpenSSLライブラリだけを最新のものに変更できるようになりました。
ウリン氏 さらにEnterprise Editionでは、企業において必要なあらゆる機能を利用できるようになります。例えば、個人情報を部分的に伏せながらデータを活用しやすくする「データマスキング」、SQLインジェクションや不正侵入などを防ぐ「データベースファイアウォール」、コンプライアンスに対応する「監査」、「データベースの暗号化と暗号鍵管理」などです。セキュリティ機能については今後も積極的に投資を行っていく予定です。
── 一方、MySQLのクラウドサービスとしては、Oracle Cloud Infrastructure(OCI)を用いたMySQLサービス「Oracle MySQL Cloud Service」を数年前から提供されています。差別化につながらない業務の標準化や負荷低減を狙って、そうした業務を外出しするためにマネージドサービスを使う傾向が高まっていますが、クラウドサービスとしての展開についてはいかがでしょう。
ウリン氏 「Oracle MySQL Cloud Service」は第一世代のサービスで、2018年のOracle OpenWorldで発表したように、MySQLサービスの第二世代を2019年の上半期にリリースする予定です。特長はバックアップ、リカバリ、HA、パッチ適用までをフルマネージドなサービスとして提供すること。開発元が提供するクラウド基盤の上で、開発元が提供するアプリケーションですから、上から下まで全て分かっていることが強みです。マネージドサービスとして提供することで、ユーザーはスキーマ定義やデータの出し入れといった本来の業務に集中できるようになります。
他社クラウドにもMySQLサービスはありますが、最大の差別化要素はMySQLの開発元が提供するサービスという点です。加えて、技術的な面でのポイントはアナリティクスサービスを併せて提供することです。これには大量データのインメモリ処理について研究開発してきたOracle Labsの成果を取り入れています。強みは大きく二つあり、一つはOCIの拡張性を生かして並列分散処理をすることで非常に高速な分析処理が可能なこと。もう一つはデータをMySQLの中に蓄積したまま分析できる点です。分析システムへのデータ移行は必要なく、ETLツールも不要です。これは大きな差別化要因になると考えています。
── DXトレンドの中で浮上してきたニーズに全方位的かつ着実に応えているわけですね。MySQLがOracleに買収された当時でこそその後を危惧する声もあったものですが、エンタープライズグレードの品質・機能強化を定期的に重ねてきたことから、今後に対するユーザーの期待は非常に大きいと思います。最後にメッセージを頂けますか。
ウリン氏 そうですね。2010年から8年の間にたくさんのフィードバックを頂き、それに対して計画的に投資を行い、機能追加や品質改善を重ねてきました。その結果が8.0のリリースであり、コミュニティ版にも数多くの成果が反映されています。
ソアレス氏 そうしたこれまでの取り組みは高く評価されているとみています。最新版のMySQL 8.0は、開発者、運用者、ユーザーに数多くのメリットをもたらすと確信しています。
ウリン氏 まずは実際に試してみてください。良さを実感したらぜひ活用を進めてください。われわれはこれからも、われわれ自身でMySQLの品質を高め、われわれ自身でサービスとして提供することを視野に入れながら、企業のあらゆる取り組みをサポートしていくつもりです。
Copyright © ITmedia, Inc. All Rights Reserved.