Oracle Cloud Infrastructure(以下OCI)の入門編チュートリアルにある「MySQLで高速分析を体験する」。この検証内容をベースに、ECPUモデルの小規模構成でMySQL HeatWave Serviceの高速分析を実施してみました。
MySQL HeatWave Serviceとは
MySQL HeatWave Serviceは、OCI上で提供されるフルマネージドのMySQLデータベースサービスです。従来のMySQLが得意とする高速なトランザクション処理(OLTP)に加え、「HeatWave」という独自のインメモリアナリティクスエンジンを統合することで、大量データの集計や分析(OLAP)も同一のデータベース上で高速に処理できます。
これにより、データの移動や複数システムを使う必要がなくなり、リアルタイムでの高度な分析やレポーティングが容易になります。さらに、マネージドサービスのため、バックアップ、自動パッチ適用、可用性・スケーラビリティの確保、セキュリティ対策など運用管理も自動化されており、開発者や運用担当者の負担を軽減できます。コスト効率も高く、最新の分析・機械学習機能もサポートしています。
MySQL HeatWave Service検証内容
OCIの入門編チュートリアルにもある MySQLで高速分析を体験するの内容をベースに検証を行いました。2025年5月時点のチュートリアルでは、以前のOCPUモデルを利用していたため、今回はECPUモデルを使い、さらに小さめのシェイプで検証しました。
構成
- コンピュート(踏み台)
シェイプ:VM.Standard.E5.Flex
OCPU数:1
メモリ:8 GB
ブートボリュームサイズ47 GB - MDSノード
シェイプ:MySQL.2
ECPU数:2
メモリ:16 GB
ストレージ・サイズ:200 GB
データベースのバージョン:8.4.5 - LTS - HeatWaveノード
シェイプ:HeatWave.32GB
ノード:2
メモリ:64 GB
試験シナリオ
OCIチュートリアルと同じハンズオン用のファイルを下記のコマンドでダウンロードし、MDSノードにtpchデータベースを作成し、THP-H用のデータをロードします。
wget https://objectstorage.ap-osaka-
1.oraclecloud.com/p/seAq8Kgd4TyUqlv5M5qObMJwvsluhCPyOuHOn1L_t4HQYUle2DV-
KdFeK44MS7yQ/n/idazzjlcjqzj/b/workshop/o/heatwave_workshop.zip
MDSノードに格納したデータに対してと、HeatWaveノードにロードしたデータに対して、lineitem テーブルから売上や注文状況を集計するSQLを実行し、処理時間の性能差を比較します。
SELECT
l_returnflag,
l_linestatus,
SUM(l_quantity) AS sum_qty,
SUM(l_extendedprice) AS sum_base_price,
SUM(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
SUM(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
AVG(l_quantity) AS avg_qty,
AVG(l_extendedprice) AS avg_price,
AVG(l_discount) AS avg_disc,
COUNT(*) AS count_order
FROM
lineitem
WHERE
l_shipdate <= DATE '1998-12-01' - INTERVAL '90' DAY
GROUP BY l_returnflag , l_linestatus
ORDER BY l_returnflag , l_linestatus;
MySQL HeatWave Serviceの構成
1. コンソールメニューから データベース → HeatWave MySQL → DBシステム を選択します。
2. DBシステムの作成 ボタンを押します。
3. 以下の項目を入力します。
デフォルトの設定・・・「開発またはテスト」を選択します。
コンパ―トメントに作成・・・作成するコンパ―トメントを指定します。
名前・・・任意の名前を入力します。ここでは「HW-MySQLBench」と入力しています。
説明・・・説明を入力します。ここでは「検証用MySQL HeatWave」と入力しています。(任意)
ユーザー名・・・管理者ユーザーのユーザー名を指定します。ここでは「root」と入力しています。
パスワード・・・管理者ユーザーのパスワードを指定します。パスワードは8文字から32文字までの長さで、大文字、小文字、数字および特殊文字をそれぞれ1つ以上含める必要があります。
パスワードの確認・・・パスワードを再入力します。
構成・・・MDSノードの構成を指定します。ここでは「スタンドアロン」を選択します。
仮想クラウド・ネットワーク・・・事前に作成済みのVCNを選択します。
サブネット・・・事前に作成済みのVCNを選択します。
HeatWaveクラスタの有効化・・・HeatWaveノードを利用するので「ON」にします。
シェイプの変更・・・MDSノードのシェイプを選択します。ここでは「MySQL.2」を選択しています。
HeatWaveクラスタの構成・・・HeatWaveノードのシェイプとノード数を選択します。ここでは「HeatWave.32GB」「2ノード」を選択しています。
初期データ・ストレージ・サイズ(GB)・・・MDSノードのストレージ・サイズを指定します。ここでは「200」を選択しています。
自動バックアップの有効化・・・MDSノードの自動バックアップを有効化するかを選択します。ここでは「オン」を選択しています。
バックアップ保持期間・・・バックアップの保持期間を設定します。ここでは「1」を指定しています。
ポイントインタイム・リカバリの有効化・・・有効化することで特定の時点で新しいDBシステムにリストアすることができます。
連絡先の電子メール・・・メンテナンス・ウィンドウ、クリティカルなパッチ適用更新、潜在的なサービスの中断などの通知を受信するEメール・アドレスを指定します。
4. 拡張オプションを必要に応じて設定します。各タブで設定できる内容について紹介します。
削除プラン・・・「削除保護」「自動バックアップの保持」「最終バックアップ」
構成・・・「構成の選択」「データベースのバージョン」
接続・・・「プライマリ・エンドポイント」「エンドポイントの読取り」「セキュリティ証明書」
クラッシュ・リカバリ・・・「クラッシュ・リカバリの有効化」
メンテナンス・・・「メンテナンス・ウィンドウの開始時間」
管理・・・「データベースおよびアクセス・モード」「関連付けられたサービス」
データのインポート・・・「PARソースURL」
タグ・・・「タグネームスペース」「タグ・キー」「タグ値」
最後に「作成」ボタンを押します。
5. ステータスがアクティブになるまでしばらく待ちます。作業リクエストから進捗を確認することができます。今回の構成では約20分で作成することができました。
MySQL HeatWave Serviceの高速分析検証
下記ページを参考にセキュリティリストの修正/MySQL Shellのインストールをします。
その9 - クラウドでMySQL Databaseを使う
その10 - MySQLで高速分析を体験する
それぞれMDSノードとHeatWaveノードで3回実行した結果は下記の通りとなりました。
MDSノード | HeatWaveノード | |
1回目 | 7.6301秒 | 0.5389秒 |
2回目 | 7.8752秒 | 0.4179秒 |
3回目 | 9.7703秒 | 0.3011秒 |
今回のSQLで検索している対象のデータ量はそれほど大きくありませんが、この程度のデータ量でさらにチュートリアルよりも小規模な構成でも顕著に性能が向上していることがわかります。
まとめ
MySQL HeatWave Serviceの構築と高速分析検証をご紹介しました。チュートリアルで紹介されている構成よりもかなり小さい構成での検証だったため、性能差が出るかどうか疑っていました。しかしチュートリアルで紹介されている約65倍までにはならなかったものの、はっきりと性能差ができました。
この検証で小規模な構成でも、高速分析ができることが確認できたのではないでしょうか。
多くのMySQLを利用したシステムでは、これまで負荷の高い集計処理はレプリケーションした読み取り専用のMySQLを別途設けて、メインのMySQLに負荷をかけない形で運用しているケースが多いと思います。MySQL HeatWave Serviceでもレプリカの作成はできますが、より高速な分析処理をしたい場合にはHeatWaveノードを利用することで、リアルタイムに高度な分析やレポーティングが容易に行えます。
MySQL HeatWave Serviceでは、オンプレミスやクラウド上のMySQLとのレプリケーションもサポートされているためMySQL HeatWave Serviceへスムーズに移行することができます。さらにEnterprise Editionの機能も利用でき、オラクル社のMySQLサポートも受けられます。
MySQLを利用しているお客様でMySQL HeatWave Serviceについてご興味のある方はお気軽にシステムエグゼまでお問い合わせください。
- カテゴリ:
- エンジニアリング