はじめに

作業の流れ

以下の流れで行います。

  1. Azure上にVMインスタンスを作成する
  2. 作成したVMにMySQL Shellをインストールする
  3. MySQL HeatWaveに接続する
  4. MySQL HeatWaveにサンプルデータをインポートする

Azureポータルから「Virtual Machines」をMySQL HeatWaveと同じVNET上に作成します。
ここではVMを作成する手順についてはご紹介しませんが、必要に応じて以下を参考にしていただければと思います。
Azure での仮想マシン(ドキュメント)

VMのイメージはMySQLがサポートしているプラットフォームを選択してください。

ODSAではMySQL HeatWaveにアクセスするためのデフォルト・ポート(22,3306,33060)がオープンされているため、別途ポートを開ける必要はありません。

azure_vm.png
azure_vm_deploy.png

2. 作成したVMにMySQL Shellをインストールする

作成したVM上で以下のコマンドを実行し、yumリポジトリのセットアップ、MySQL Shellのインストールを行います。

yumリポジトリセットアップ
 
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm
MySQL Shellインストール
 
sudo yum install mysql-shell

本記事ではOracle Linux8.5のVMにインストールを行っています。
利用するプラットフォームに応じて、インストール方法が変わる場合があります。インストール方法の詳細については以下を参照ください。
MySQL Shell のインストール

 

3. MySQL HeatWaveに接続する

以下のコマンドを実行し、インストールしたMySQL Shellを利用してMySQL HeatWaveに接続します。
mysqlsh --mysqlx -u <ユーザー名> -h <エンドポイント>
エンドポイントにはプライベートIPアドレス、またはFQDNを指定します。

以下の実行例では、MySQL HeatWaveに接続し「\sql」コマンドでSQL実行モードに変更後、SQLで現在のスキーマ一覧を確認しています。
mysqlsh_connect.png

MySQL ShellはJava Script(JS)モード、SQLモード、Python(PY)モードでMySQLに対する操作を行うことができるクライアントツールです。

4. MySQL HeatWaveにサンプルデータをインポートする

現在ユーザーのデータは投入していない状態なので、サンプルデータとして約2GBの「airportdb」データベースを投入してみます。
以下のいずれかのコマンドを実行し、ロードする圧縮ファイル(約640MB)をダウンロード・解凍します。

tar.gz形式
 
wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz
zip形式
 
wget https://downloads.mysql.com/docs/airport-db.zip
unzip airport-db.zip

解凍すると「airport-db」というフォルダが展開されますので、以下のようにMySQL ShellのloadDumpユーティリティを実行してデータをロードします。

airport-dbのロード
 
util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})

以下、実行例になります。(FQDNを指定してMySQL HeatWaveに接続しています)
mysqlsh_loaddump.png
airportdb_show.png

最後に、heatwave_load(ストアドプロシージャ)を実行し、「airportdb」スキーマをHeatWaveクラスタに展開します。

HeatWaveクラスタに展開
 
CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL);

以下、実行例になります。
heatwave_load.png
(中略)
heatwave_load_finish.png以上でMySQL HeatWave接続〜データのロードまで完了しました!