米オラクルは2021年8月10日(米国時間)、クラウド型データベース「MySQL HeatWave」に運用自動化機能「MySQL Autopilot」を追加したと発表した。MySQL HeatWaveのチューニングをマシンラーニング(機械学習)で自動化する。MySQL HeatWaveユーザーは追加費用なく利用できる。
米オラクル「MySQL Database Service with HeatWave」は、Oracle Cloud上で利用できる高速なMySQLデータベースである(画面1)。インメモリー型の分散データベースで、通常のMySQLをMySQL HeatWaveに置き換えてデータベース処理を高速化する。MySQLとの完全互換性を有し、アプリケーションからは通常のMySQLと同じように利用できる。日本オラクルは、MySQL HeatWaveについて、「Amazon Redshiftより2.7倍高速でありながら、コストを3分の1に抑える」とアピールしている。
拡大画像表示
データベース担当者は、OLTP(オンライントランザクション処理)に使うMySQLノード(InnoDB)と、OLAP(オンライン分析処理)に使うインメモリー型のクラスタノード(HeatWave)を同時に利用できる(図1)。InnoDBで更新したデータは、データ分析用のHeatWaveクラスタに透過的に伝達する。1つのデータベース基盤でOLTPとOLAPを兼ねるので、OLTPデータベースからETLツールでOLAPデータベースにデータを移行して分析するといった手続きが不要である。
拡大画像表示
今回、MySQL HeatWaveの追加機能として、チューニングなどの運用をマシンラーニングによって自動化する「MySQL Autopilot」を追加した。メモリー使用量、ネットワーク負荷、実行時間をAIモデル化し、プロビジョニング、データの読み込み、クエリー実行、障害処理などを自動化する。時間の経過と共にシステム性能が継続的に向上するとしている。
例えば、プロビジョニングを自動化し、ワークロードの実行に必要な分析ノードの数を自動で算出できるようになった(図2)。前提として、分析クエリーを実行する際に用意するHeatWaveクラスタのサイズは、メモリーに読み込むテーブルとカラムのサイズやデータ圧縮率などに依存する。従来は、ユーザーがクラスタサイズを推測する必要があったが、これを自動化している。
拡大画像表示
自動プロビジョニングを含む、MySQL Autopilotの主な自動化機能は、表1のとおりである。
機能名 | 概要 |
---|---|
自動プロビジョニング | ワークロードの実行に必要なHeatWaveノードの数を、分析処理の対象となるテーブルデータの適応サンプリングによって予測する。クラスタの最適サイズを手作業で予測する必要がなくなる |
自動並列ロード | HeatWaveにロードする各テーブルの最適な並列度を予測する。これにより、ロード時間とメモリー使用を最適化する |
自動データ配置 | クエリーの性能が最適になるように、メモリー内でテーブルをパーティション分割する際の最適な列を予測する。また、推奨するパーティション分割列の選択によってクエリー性能がどの程度向上するかを予測する |
自動エンコーディング | HeatWaveに読み込むカラムに適した格納方式を、クエリーを考慮して決定する。クエリー性能を高めつつクラスタサイズを最小化する |
自動クエリー計画改善 | クエリー実行からの各種統計情報を学習し、以後のクエリーの実行計画を改善する。多くのクエリーを実行していくことで、システムの性能が向上する |
自動クエリー時間予測 | クエリーの実行時間を実行前に予測する。クエリーの所要時間の予測が得られるため、クエリー時間が長すぎないか、別のクエリーを代わりに実行すべきかを判断できる |
自動変更伝播 | MySQL Database内の変更を「HeatWave Scale-out Data Management」のデータ管理層に伝播する最適なタイミングを決定する。データの変更を最適な頻度で伝播する |
自動スケジューリング | キュー内の実行時間が短いクエリーを特定し、インテリジェントな方法で実行時間が長いクエリーに優先して実行する。これにより、全体的な待ち時間を短縮する。一方、他のほとんどのデータベースは先着順で実行しているという |
自動エラー・リカバリ | ソフトウェアまたはハードウェア障害によって1つ以上のHeatWaveノードが応答しない場合、新規ノードをプロビジョニングして必要データを再ロードする |