MySQL Database Service(MDS)の分析クエリを高速化する「HeatWave」の使いどころ
はじめに
新人エンジニアの鈴木君は、オラクルが提供するチュートリアル形式のウェビナーを受講することになりました。
前回では、Oracle Cloudを使い始めるところから、Oracle Cloud Infrastructure(OCI)でリソースを作成し、MySQL Database Service(MDS)でMySQLのクエリを実行するところまでを体験しました。
※前回の内容については、コチラを参照。
今回は、HeatWaveの構成を構築して、MySQLのクエリを高速化するところを体験します。
HeatWaveとは
まず、HeatWaveの概要から見ていきましょう。HeatWaveは、MDSの拡張サービスとして提供されているデータウェアハウス向けのサービスです。インメモリで並列処理することで、分析系のSQLを高速に実行します。
HeatWaveについては、英語ですが「HeatWave User Guide」が公開されています。たとえば、通常のMySQLと比べた制限も「Limitations」の項に記載されており、JSON型やSpatial型などは現時点ではまだ利用できないことがわかります。
HeatWaveを使うには、前回で確認したように、はじめにサービス制限が条件を満たしていることを確認しておきましょう。今回の構成は図1のとおりです。
条件が確認できたら、HeatWaveを使用するための準備をしましょう。前回で試したように、仮想マシンインスタンスからMDSに接続します。今回はそのバックエンドでHeatWaveが動くようにします。なお、HeatWaveは最小2台からとなっています。
HeatWaveクラスタを作成する
- 【オラクル先生】
では、HeatWaveクラスタを作成しましょう。コンソールメニューから「データベース」→「MySQL」→「DBシステム」を選択し、前回作った「TestMDS」をクリックして、MDSの情報ページを表示します。
- 【鈴木君】
表示しました!
- 【オラクル先生】
ページ左の「HeatWave」をクリックして、「HeatWaveクラスタ」覧が見えるようにしてください。
- 【鈴木君】
「HeatWaveは無効です」と書かれていますね。
- 【オラクル先生】
この状態からHeatWaveを構成していきます。まず、そのメッセージの右にある「HeatWaveクラスタの追加」をクリックしてください。
- 【鈴木君】
「HeatWaveクラスタの追加」の画面が表示されました。
- 【オラクル先生】
まず、HeatWaveクラスタのノードのインスタンスの種類を選びます。デフォルトでHeatWave向けの「MySQL.HeatWave.VM.Standard.E3」が選ばれていると思いますが、念のため「シェイプの変更」をクリックしてください。
- 【鈴木君】
「すべてのシェイプの参照」のダイアログボックスが表示されました。
ここで「MySQL.HeatWave.VM.Standard.E3」が選択されていることを確認したら、「取消」をクリックして「HeatWaveクラスタの追加」画面に戻ります。
ノード数はデフォルトの「2」のままで良いでしょう。「HeatWaveクラスタの追加」をクリックして、HeatWaveクラスタの追加を実行します。
- 【鈴木君】
MDSの情報ページに戻りました。「HeatWaveクラスタ情報」の「状態」にオレンジ色のマークと「作成中」の文字が表示されています。さらに、その下に「HeatWaveノード」が表示されて、2つのノードにそれぞれ、やはりオレンジ色のマークと「作成中」の文字が表示されました。
- 【オラクル先生】
良いですね! これも時間がかかるので、少しの間、待ちましょう。
- 【鈴木君】
MDSの情報ページに戻りました。「HeatWaveクラスタ情報」の「状態」にオレンジ色のマークと「作成中」の文字が表示されています。さらに、その下に「HeatWaveノード」が表示されて、2つのノードにそれぞれ、やはりオレンジ色のマークと「作成中」の文字が表示されました。
- 【オラクル先生】
これでHeatWaveクラスタができましたね。ちなみに、この「HeatWaveクラスタ情報」部分では、クラスタの停止や再起動、HeatWaveノードの追加などもできるようになっています。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 初めてでも安心! OCIチュートリアルを活用して、MySQLのマネージド・データベース・サービスを体験してみよう
- [SQL] 結合
- データ分析に欠かせない「集計関数」について
- 神出鬼没!サブクエリについて(Part.2)
- 神出鬼没! サブクエリについて(Part.1)
- テーブル結合について (Part.2) -「交差結合」「自然結合」「統合結合」
- テーブル結合について(Part.1) ー「内部結合」と「外部結合」
- 機械学習で利用できる「トレーニング」「推論」「説明」のSQL関数を理解しよう
- [SQL] 副問合せ
- UPSERT(ON CONFLICT句)とGROUPING SETS句/CUBE句/ROLLUP句の実装