MySQLのデータ分析処理という弱点をOCI上のアドオン機能で解消
MySQLのDBaaSで後発となったOracleだが「他社のMySQLベースのサービスよりも安価なDBaaSを提供しています」と言うのは、日本オラクル MySQL Solution Engineering Director Asia Pacific & Japanの梶山隆輔氏だ。MySQLはオープンソースソフトウェアで、現在はOracleが開発、公開しているデータベース製品だ。他のクラウドベンダーでは、MySQLに何らか手を入れ自社サービスとして提供しサポートしている。
「Oracleは開発ベンダーとして、データベースの中まで深くサポートできます。そのため脆弱性についても、もっとも早く対応します」と梶山氏。他社は、Oracleが対応してから手を入れた自社製品とすり合わせて対処することとなり、ここは開発ベンダーとしてのOracleに優位性がある。
MySQLはリレーショナルデータベースとしてOLTPを得意とするデータベースで、Webアプリケーションやネットワークゲームなどの裏側でよく使われている。「他にもKDDIのモバイルサービスのインフラなど、世界中で数多く使われています」と梶山氏。OLTPに強みはあるが、分析系の処理はあまり得意ではなかった。そのためデータ分析をしたければ、MySQLからETLツールなどでデータ抽出し、別途分析専用のデータベースにデータを転送し利用する使い方が多い。
この構成ではETLツールや分析用データベースのライセンスコストが別途必要であり、それらのメンテナンスの手間もある。さらにETLでのデータ転送はバッチ処理なので、リアルタイムなデータ分析はできない。このMySQLの分析系の弱点を克復するため、Oracleは新たに分析エンジン「MySQL Analytics Engine」を追加した。これはOCI上で利用できるサービスで、MySQLのDBaaSのアドオンモジュールとして利用する。
Analytics Engineを追加しても、アプリケーションからは同じMySQLに見える。「重たい分析クエリだけを裏でAnalytics Engineが処理し、OLTPはこれまで通りInnoDBが処理します。そのため、アプリケーションの変更は全く必要ありません」と梶山氏。内部的にはMySQLのオプティマイザーが、SQL文を見てどのエンジンで処理するかを判断し振り分ける。
Analytics Engineは、分析処理に向いたカラム型でインメモリにデータを持ち高速に処理する。結果はMySQLに返され、アプリケーションからは後ろ側にあるAnalytics Engineは見えないのだ。
このAnalytics EngineはOCI専用のサービスであり、オープンソースソフトウェアとしては公開していない。しかしながらAnalytics Engineの技術はOracleの研究開発部門「Oracle Lab」の成果で、仕組みやアルゴリズムなどは論文の形で公開されている。そのため論文内容に沿って、自分で同様なものを開発することはできることになる。
Analytics Engineではたとえば、ジョインされる可能性の高いカラムを機械学習により判断して自動実行するなど、より高速な処理を実現するために機械学習技術もさまざまなところで活用されている。