TPC-HによるHeatWaveのベンチマークテスト
HeatWaveの性能を検証するため、複雑な検索や集計処理を含んだ意思決定支援システム(DSS)のベンチマークテストであるTPC-Hを利用します。なお今回利用するTPC-HをベースとしてSQL文はHeatWaveの検証用に用意されたものであり、TPC-Hの仕様に完全には準拠していないため公開されているTCP-Hの他のテスト結果と比較することはできませんのでご注意下さい。
MySQL Database SerivceおよびHeatWaveへのデータのロードには、MySQL ShellのDump & Load ユーティリティの利用が推奨されています。
TCP-Hデータ生成
まずベンチマークテストを行うためのTCP-Hのデータを生成します。
HeatWaveのマニュアルのチュートリアルでは、オブジェクトストレージにテストデータのファイルをアップロードしてデータをロードする手順を紹介していますが、オブジェクトストレージ無しで手っ取り早く作業するために踏み台サーバーとして用意したComputeインスタンスのブートボリュームを大きくしておき、そこにテストデータのファイルを置いていきます。作成済みComputeインスタンスのブートボリュームも後から拡張することも可能です。
HeatWaveリリース時にパフォーマンスを紹介し、また利用者の方が再現テストを行えるように、ベンチマークテストの手順とスクリプト類が公開されています。このページの情報を活用してベンチマークテストを行います。
- ベンチマークテストの結果と他の構成との比較 https://www.oracle.com/mysql/heatwave/performance/
- ベンチマークテストの手順とスクリプト https://github.com/oracle/heatwave-tpch
データ生成ツールdbgenのコンパイルとデータ生成
TPC-Hのデータを生成するためには、まずTPCのウェブサイトでライセンスに合意の上でツールをダウンロードします。
ダウンロードされたファイルを展開するとdbgenディレクトリにあるmakefile.suiteを環境に合わせて編集します。ファイル内を検索して下記の通り変更して下さい。
図 makefile.suiteファイルへの変更項目
CC = gcc
DATABASE= SQLSERVER
MACHINE = LINUX
WORKLOAD = TPCH
続いてTPC-H Toolsのdbgenコマンドをコンパイルします。
図 dbgenのコンパイル
make -f makefile.suite
最後にdbgenコマンドでテストデータを生成します。
図 計100GBのテストデータの生成
$ ./dbgen -s 100
これでテストデータの準備ができました。