PR

MySQL HeatWaveのサービス概略 ー全体像を理解しよう

2022年6月17日(金)
稲垣 大助

MySQL HeatWave Database Serviceとは

「MySQL HeatWave Database Service」は、Oracleが提供するMySQLに特化したデータウェアハウスサービスです。MySQLの拡張サービスとして提供されており、以下のような特徴があります。

  • インメモリかつ並列処理をすることで分析系SQLの高速処理を実現
  • MySQLのデータとシームレスに連携しETL不要かつリアルタイムでデータ同期可能
  • HeatWaveの利用の有無はMySQLのオプティマイズで自動的に制御するため、クライアント側での処理の判定や接続先の切り替えは不要

HeatWaveは分析処理を最適に処理できるように、自動的にMySQLのInnoDBのデータをカラムナ型に変換しメモリ上に展開しています。これにより今までのMySQLでは苦手とされてきた分析型のクエリ(大量データ検索・多数のテーブルと結合・範囲検索等)で高速化を実現しています。

日々の運用やサービスにてデータベースには有益なデータが保存されていると思いますが、いざ活用を検討すると大量データによる性能問題・分析専用サービスへのETL連携の複雑度・追加する分析サービスによる運用コスト負担等でなかなか踏み出せないシステムもあるかもしれませんが、MySQL HeatWave Database Serviceはこれらの懸念を払拭できるサービスとなっています。

そして、2022年4月からはMySQL HeatWave MLとして、上記メリットをそのままに機械学習の提供を開始しました。今回から3回に渡ってMySQL HeatWave MLの概要や使用方法を解説していきます。

機械学習アプリケーション開発の課題と
HeatWave MLによる解決策

機械学習(Machine Learning)はすでに50年以上前から定義されており、さまざまな研究がされてきました。そしてハードウェアやソフトウェアの発展やビックデータをはじめとするデータ活用の広がりによって機械学習は研究の段階から実用化への段階となってきました。

この機械学習には大きく分けて3つの学習手法があります。

教師あり学習

教師あり学習とは、事前に用意した「正解データ」をもとに学習アルゴリズムを学習させる手法です。学習用データのインプットと正しいアウトプットが与えられ、特定の入力を受けることで正しい出力ができるように学習させていきます。

教師あり学習は、あらかじめ定めた分類に学習データを振り分けるための「分類」と、連続するデータの将来の値を予測する「回帰」の2つのタスクがあります。既存データを活用する場面では、過去のデータが既に蓄積されていることがほとんどです。膨大な過去のデータと明確な正解は学習効果が非常に高く、教師あり学習は一般的な手法と言えます。

教師なし学習

教師なし学習とは「正解データ」を与えずに大量データから学習アルゴリズムが自らデータ探索を実行することで、未知のデータ構造やパターンを抽出・分類します。

教師なし学習の代表的なタスクとしては、特徴が共通しているものをグルーピングする「クラスタリング」や複数のデータをベクトルとして扱いまとめて符号化を行う「ベクトル量子化」などがあります。

強化学習

強化学習では、あるデータ出力の結果に対しては成功の報酬(プラスの評価値)を与え、場合によっては好まれないデータ出力の結果には罰(マイナスの評価値)を与えることで、数多くの試行錯誤により学習アルゴリズムの価値最大化に向けたアクションを実行するように最適化する手法です。

MySQL HeatWave MLの機械学習は教師あり学習に対応しています。これによりMySQLに登録されている過去のデータをそのまま有効活用できます。

乗り越えるべき高いハードル

機械学習がかなり身近になったとはいえ、実際に動かしたり結果を活用するためにはデータサイエンスの専門家の支援や機械学習に関する広範な知識を求められます。主に以下のような項目で顕著です。

・データの収集
データサイズや使用する環境によって全てのデータを対象できない場合も存在します。また別の環境で機械学習を行うためにETLツールを代表として、データの取捨選択・クレンジング・結合等のデータの準備作業が必要になることがあります。

・アルゴリズムの選択
対象となるデータを基に、機械学習により得られた結果を有効活用するためにはアルゴリズムの選択が必要となります。アルゴリズムは非常に多く用意されており、学習精度・トレーニング時間・設定パラーメータ数等の選択するアルゴリズムの特性とデータ出力要件から最適な物を選択する必要があります。

・パラメータの選択
ハイパーパラメーターという、機械学習に設定したアルゴリズムに合わせてチューニングを行うことは必須です。ハイパーパラメーターは設定項目が非常に大きく、設定値も非常に幅が大きいため最適化する難易度も高くなっています。

・トレーニングの実施
トレーニングを実施し、機械学習アルゴリズムを活用して機械学習モデルのパラメーターを調整していくことが一般的です。ただし、トレーニングにかかる時間はアルゴリズムとハイパーパラメータの組み合わせによって大きく依存します。またトレーニングはコンセプト・ドリフト(時間経過などによるデータの意図しない変化)の検出された際は再トレーニングが必要となる場合もあります。

・結果の取得(説明)予測結果が得られたとしても、その結果に対する判断結果がブラックボックス化されていた場合、「なぜ」「どうして」という結果に対する信頼を得ることは非常に困難です。予測結果をビジネスシーンへの適用やユーザーサービスへの活用を考えると予測根拠を説明することは必要となってきます。

MySQL HeatWave MLでの対応

・データの収集
MySQL HeatWaveはMySQLデータベースと一体化しているので、データ連携・ETLツールが不要。今使用しているデータをそのまま機械学習のデータとして活用できます。また、既にオンプレミス環境等の別環境で運用中のMySQLでも、MySQLの標準機能であるレプリケーションを使ってデータ連携することも可能です。既に負荷分散等でレプリーションを構築しているシステムでは、同様の方法でMySQL HeatWaveにレプリケーションすることでリアルタイムに機械学習を利用できます。

・アルゴリズムの選択
アルゴリズムの選択はMySQL HeatWave MLにて行われます。メタ学習済のプロキシ・モデルを使用して最適なアルゴリズムが選択され、データの不均一性を考慮したアダプティブなサンプリングを自動的に行います。

・パラメータの選択
ハイパーパラーメータのチューニングには高度に並列化された勾配に基づく探索空間の削減を利用し、MySQL HeatWave MLにて自動化されます。

・トレーニングの実施
MySQL HeatWaveの処理性能が最も顕著に表れる場面です。インメモリ・並列処理を活かしてトレーニング時間の短縮を実現します。

結果の取得(説明)

「トレーニング」の工程に「説明」が統合されています。これにより全てのモデルにおいて「説明」が可能となっています。直感的なわかりやすさを持つ「説明」により、どの要素が最も予測に影響を与えたかの理解を支援します。

Pythonによる一般的な
機械学習アプリケーション開発との比較

上記の機能の違いを踏まえ、実際の開発場面での比較を行っていきます。ここでは機械学習のプログラミングで代表的なPythonを使用します。

Pythonによる開発ケース

Pythonは機械学習に関するライブラリやフレームワークが数多く用意されており、また機械学習に向けた開発手法やノウハウも豊富なため、既に機械学習の開発言語として採用されている方も多くいらっしゃるでしょう。しかし数多くの機能があるということは細かい開発を可能としている反面、その多くの選択肢から最適なものを選びチューニングを行なっていく必要があります。これは用意されている機械学習ライブラリを理解しないと最適な選択ができないので、目的と各ライブラリの特性を理解することも含まれます。

また、当然ながらシンプルな文法とはいえプログラミングとしてのPythonの学習も必要です。そうした一連の処理の流れをプログラミング化し、最後の学習結果に関しても恣意的な情報を排除されていることや、特徴量と予測の因果関係の検証が可能となるような説明も加えなくてはいけません。これらの一連の概略図は以下となります。

MySQL HeatWave MLによる開発

MySQL HeatWave MLでは、開発者もしくは利用者はSQLのみを実行します。今まで開発者がプログラミングをしてきたデータの前処理/アルゴリズムの選択/アダプティブなサンプリング/特徴量の選択/ハイパーパラーメーターのチューニング/モデルの説明/予測の説明の各項目がMySQL HeatWave MLにて自動で実施されます。これらの機械学習における主要部分が自動化されることにより、これまで機械学習における高い専門性や機能開発の設計やプログラムが全て不要となりました。

これにより、これから機械学習を始めようとするなじみの浅いユーザーから機械学習エンジニアまで、幅広い層ですぐに利用できるようになりました。機械学習の利用者は今までデータベースの操作で使い慣れたSQL文で「トレーニング」「推論」「説明」が実行可能となります。

このように、MySQL HeatWave MLでは、これまでとは全く異なったアプローチで機械学習を実現しています。次回は、実際のSQL関数の説明と機械学習のモデル管理等を紹介します。

日本オラクル Principal Solution Engineer MySQL Global Business Unit
2017年より日本オラクルでMySQLのプリセールスを担当。広く使われているオンプレミス上のMySQLに限らず、オラクルクラウド上のMySQL Database Service 及びMySQL HeatWave Service導入時の技術支援等も行う。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています