LoginSignup
5
4

More than 1 year has passed since last update.

Oracle Database Service for Azure(ODSA)で作成したMySQL HeatWaveにAzureから接続する

Last updated at Posted at 2023-01-16

はじめに

作業の流れ

以下の流れで行います。

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

1. Azure上にVMインスタンスを作成する

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接続〜データのロードまで完了しました!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4