HeatWaveを利用している構成では、データの永続化やトランザクション処理はMySQLサーバーノードのInnoDBストレージエンジンが担当します。そのデータをHeatWaveノードのメインメモリにロードして高速な分析処理を実現しています。InnoDBストレージエンジンを利用したテーブルに対する変更点は、自動的にHeatWaveクラスターに反映されます。
HeatWaveクラスターへの初回ロード
第3回の記事でもご紹介したとおり、テーブルのデータをHeatWaveクラスターのメインメモリにロードするためには、ロード対象のテーブルに対して2つの作業が必要です。
-
テーブル定義に
SECONDARY_ENGINE RAPID
-
ALTER TABLE <テーブル名> SECONDARY_LOAD
図 HeatWaveクラスターにデータをロードする例
# CREATE TABLE文のオプションで指定
# 既存のテーブルに対してはALTER TABLE文で指定することも可能
mysql> CREATE TABLE t0 (a INT PRIMARY KEY, b VARCHAR(32)) SECONDARY_ENGINE RAPID;
Query OK, 0 rows affected (0.02 sec)
# HeatWaveクラスターにデータをロードする設定
# テーブルのデータサイズにより初回ロードの時間は異なる
mysql> ALTER TABLE t0 SECONDARY_LOAD;
Query OK, 0 rows affected (0.05 sec)
HeatWaveクラスターへのロードはInnoDBのテーブルをマルチスレッドでデータを読み込み、カラムナー形式に変換の上で複数のHeatWaveノードにネットワーク経由で転送していきます。データは主キーまたは「データ・プレイスメント・キー」と呼ばれる指定されたパーティションのキーを使って水平パーティショニングを行い、パーティションごとに各HeatWaveノードのメインメモリにロードされます。
なおデータのロード中は、Ctrl-Cを入力することで中止することもできます。