Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[HeatWavejp Meetup #03] HeatWave と MDS 性能比較してみた [後藤 義雄 氏(データベーステクノロジ)]

[HeatWavejp Meetup #03] HeatWave と MDS 性能比較してみた [後藤 義雄 氏(データベーステクノロジ)]

【講演内容】
HeatWave と MDS 性能比較してみた

【発表者】
後藤 義雄 氏
株式会社データベーステクノロジ

【イベント情報】
HeatWavejp Meetup #03
https://heatwavejp.connpass.com/event/285996/

More Decks by HeatWavejp(MySQL HeatWave Japan User Group)

Other Decks in Technology

Transcript

  1. © 2023 Database Technology Inc. All Rights Reserved. HeatWaveとMDS 性能比較してみた

    2023/8/7(月) 株式会社データベーステクノロジ システム技術G 後藤義雄
  2. © 2023 Database Technology Inc. All Rights Reserved. 2 自己紹介

    後藤 義雄(Yoshio Goto) X(twitter):@gotodti - 株式会社データベーステクノロジ (主にインフラ担当) - OracleDatabase業務従事 - クラウド業務従事 - 休日の過ごし方:ウォーキング
  3. © 2023 Database Technology Inc. All Rights Reserved. 3 弊社のご紹介

    会社概要 事業内容 屋号 株式会社データベーステクノロジ https://www.db-tec.com/ 所在地 京都市中京区柳八幡町65番地 設立 1995年7月12日 パートナー資格 ORACLE Cloud Sell Partner 許認可 Pマーク(第20002140号) クラウドサービス事業 インフラ基盤構築・Lift&Shift・運用監視アウトソース データベース関連事業 Oracle Master認定技術者によるデータベース設計/構築/運用 MySQLやSQLサーバについても対応可能 ソフトウェア開発事業 生産管理・販売管理・会計管理・営業支援 業種:金融・製薬・小売/レンタル・メーカー・学術/研究機関 ERPパッケージ導入事業 Oracle E-Business Suite© マスコット キャラクター データベーチュ 親子 沿革 1995年 DB構築サービスを専業として大阪市中央区に設立 2001年 DBパフォーマンス測定サービスを開始 2010年7月 本社を京都市中京区へ移転 2015年8月 日本オラクル社とパートナー契約締結 2015年9月 らくがきSQLを IT Pro EXPOへ出展 2019年12月 メール/チャット自動変換サービス chatveryをリリース
  4. © 2023 Database Technology Inc. All Rights Reserved. 4 ちなみに…YouTubeチャンネルやってます!

    チャンネル登録 お願いします! https://www.youtube.com/@databasetechnologyinc.7441/
  5. © 2023 Database Technology Inc. All Rights Reserved. 9 テスト環境

    クライアント MDS MDSノード HeatWaveノード クライアント シェイプ VM.Standard.E3.Flex CPU 2 OCPU メモリ 16 GB ストレージ 1024 GB DBシステム 構成 MDS HeatWave シェイプ VM.Standard.E3.16.256GB HeatWave.VM.Standard.E3 CPU 16 OCPU 16 OCPU メモリ 256 GB 512 GB ストレージ 1024 GB 1024 GB(HeatWave 2ノード) HeatWave
  6. © 2023 Database Technology Inc. All Rights Reserved. 10 やったこと

     スタースキーマベンチマーク(SSB)のちょっと変形  Like検索 全文検索(青空文庫のデータ利用)  無理やりHeatwave利用
  7. © 2023 Database Technology Inc. All Rights Reserved. 11 スタースキーマベンチ

    処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行
  8. © 2023 Database Technology Inc. All Rights Reserved. 12 スタースキーマベンチ

    処理の流れ データ流し込み 非正規化テーブル作成 評価SQL 実行 データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB)
  9. © 2023 Database Technology Inc. All Rights Reserved. 13 dbgen

    コンパイル データ生成 ※-s 100 は約6億行(67 GB) $ git clone https://github.com/vadimtk/ssb-dbgen.git $ cd ssb-dbgen $ make $ ./dbgen -s 100 -T c $ ./dbgen -s 100 -T l $ ./dbgen -s 100 -T p $ ./dbgen -s 100 -T s データCSV 作成(dbgen 実行 unit=100)
  10. © 2023 Database Technology Inc. All Rights Reserved. 14 スタースキーマベンチ

    処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行
  11. © 2023 Database Technology Inc. All Rights Reserved. 15 4テーブル

    分作成 customer part supplier lineorder テーブル作成(SSB) lineorder表は 分割作成 一気にloadしようとすると ERROR 1197 発生 max_binlog_cache_size が不足
  12. © 2023 Database Technology Inc. All Rights Reserved. 17 スタースキーマベンチ

    処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行
  13. © 2023 Database Technology Inc. All Rights Reserved. 18 

    lineorder分割表へはcsvファイルを分割してそれぞれ insert mysql>LOAD DATA LOCAL INFILE 'customer.tbl' INTO TABLE customer FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; mysql>LOAD DATA LOCAL INFILE 'part.tbl' INTO TABLE part FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; mysql>LOAD DATA LOCAL INFILE 'supplier.tbl' INTO TABLE supplier FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; データ流し込み
  14. © 2023 Database Technology Inc. All Rights Reserved. 19 スタースキーマベンチ

    処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行
  15. © 2023 Database Technology Inc. All Rights Reserved. 20 非正規化テーブル作成

    行数 6億 行 (600,037,902行) データサイズ 237GB(255,246,467,072Bytes)
  16. © 2023 Database Technology Inc. All Rights Reserved. 21 データ流し込み、

    正規化の時間 MDS HeatWave 各テーブル Load時間 03:46:13 03:51:47 非正規化 (lineorder_flat作成) 06:29:21 06:58:14 PK追加 04:13:33 03:00:59 合計 14:29:07 13:51:00 PK追加で時間差が出ているが メモリ搭載量に影響されたと考えられる
  17. © 2023 Database Technology Inc. All Rights Reserved. 22 スタースキーマベンチ

    処理の流れ データCSV 作成(dbgen 実行 unit=100) テーブル作成(SSB) データ流し込み 非正規化テーブル作成 評価SQL 実行
  18. © 2023 Database Technology Inc. All Rights Reserved. 24 HeatWave環境でのおまじない

     lineorder_flat 表に対して HeatWaveを有効化します mysql> ALTER TABLE lineorder_flat SECONDARY_ENGINE=RAPID; • lineorder_flat 表をHeatWaveへロード mysql> ALTER TABLE lineorder_flat SECONDARY_LOAD; ロード時間 00:07:15
  19. © 2023 Database Technology Inc. All Rights Reserved. 25 評価SQL

    実行 Q1.1 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE DATE_FORMAT(LO_ORDERDATE, '%Y') = '1993' AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25; Q1.2 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE DATE_FORMAT(LO_ORDERDATE, '%Y%m') = '199401' AND LO_DISCOUNT BETWEEN 4 AND 6 AND LO_QUANTITY BETWEEN 26 AND 35; Q1.3 SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE WEEK(LO_ORDERDATE) = 6 AND DATE_FORMAT(LO_ORDERDATE, '%Y') = '1994' AND LO_DISCOUNT BETWEEN 5 AND 7 AND LO_QUANTITY BETWEEN 26 AND 35; Q4.3 SELECT DATE_FORMAT(LO_ORDERDATE, '%Y') AS year, S_CITY, P_BRAND, sum(LO_REVENUE - LO_SUPPLYCOST) AS profit FROM lineorder_flat WHERE S_NATION = 'UNITED STATES' AND (DATE_FORMAT(LO_ORDERDATE, '%Y') = '1997' OR DATE_FORMAT(LO_ORDERDATE, '%Y') = '1998') AND P_CATEGORY = 'MFGR#14' GROUP BY year, S_CITY, P_BRAND ORDER BY year ASC, S_CITY ASC, P_BRAND ASC; Q2.1 SELECT sum(LO_REVENUE), DATE_FORMAT(LO_ORDERDATE, '%Y') AS year, P_BRAND FROM lineorder_flat WHERE P_CATEGORY = 'MFGR#12' AND S_REGION = 'AMERICA' GROUP BY year, P_BRAND ORDER BY year, P_BRAND; 合計 13 SQL
  20. © 2023 Database Technology Inc. All Rights Reserved. 26 評価SQL

    実行 12:10:43 03:36:04 0 00:00:45 00:00:00 02:00:00 04:00:00 06:00:00 08:00:00 10:00:00 12:00:00 14:00:00 レスポンス時間 合計の比較 MDS 索引無し MDS 索引有り 系列4 HeatWave 約1000分の1 約300分の1
  21. © 2023 Database Technology Inc. All Rights Reserved. 27 追加で作成した索引

    ALTER TABLE lineorder_flat add KEY index1 (LO_DISCOUNT,LO_QUANTITY,LO_ORDERDATE_YEAR,LO_ORDERDATE_WEEK), add KEY index2 (LO_DISCOUNT,LO_QUANTITY,LO_ORDERDATE_MONTH), add KEY index4 (S_REGION,P_CATEGORY,P_BRAND,LO_ORDERDATE_YEAR), add KEY index5 (S_REGION,P_BRAND, LO_ORDERDATE_YEAR), add KEY index7 (C_REGION,S_REGION,LO_ORDERDATE_YEAR,C_NATION,S_NATION), add KEY index8 (C_NATION,S_NATION,C_CITY,S_CITY,LO_ORDERDATE_YEAR), add KEY index9 (C_CITY,S_CITY,LO_ORDERDATE_YEAR), add KEY index10 (C_CITY,S_CITY,LO_ORDERDATE_MONTH), add KEY index11 (C_REGION,S_REGION,P_MFGR,LO_ORDERDATE_YEAR,C_NATION,S_NATION,P_CATEGORY), add KEY index13 (S_NATION,P_CATEGORY,LO_ORDERDATE_YEAR,S_CITY,P_BRAND) ;
  22. © 2023 Database Technology Inc. All Rights Reserved. 28 00:54:16

    01:25:11 1.65秒 00:55:05 00:49:14 1.70秒 00:54:36 00:49:05 1.79秒 00:56:52 00:04:53 2.12秒 00:57:39 00:00:49 2.96秒 00:57:03 00:00:06 1.87秒 00:59:03 00:17:00 5.26秒 00:58:44 00:00:55 3.94秒 00:57:22 00:00:02 4.43秒 00:56:18 00:00:00 3.48秒 00:56:29 00:08:19 3.94秒 00:54:07 00:00:19 6.35秒 00:53:10 00:00:11 5.06秒 12:10:43 03:36:04 44.55秒 0% 10% 20% 30% 40% 50% MDS 索引なし MDS 索引あり HeatWave 100% ベンチマーク各種SQLの時間の割合 Q4.3 Q4.2 Q4.1 Q3.4 Q3.3 Q3.2 Q3.1 Q2.3 Q2.2 Q2.1 Q1.3 Q1.2 Q1.1
  23. © 2023 Database Technology Inc. All Rights Reserved. 29 00:54:16

    01:25:11 1.65秒 00:55:05 00:49:14 1.70秒 00:54:36 00:49:05 1.79秒 00:56:52 00:04:53 2.12秒 00:57:39 00:00:49 2.96秒 00:57:03 00:00:06 1.87秒 00:59:03 00:17:00 5.26秒 00:58:44 00:00:55 3.94秒 00:57:22 00:00:02 4.43秒 00:56:18 00:00:00 3.48秒 00:56:29 00:08:19 3.94秒 00:54:07 00:00:19 6.35秒 00:53:10 00:00:11 5.06秒 12:10:43 03:36:04 44.55秒 0% 10% 20% 30% 40% 50% MDS 索引なし MDS 索引あり HeatWave 100% ベンチマーク各種SQLの時間の割合 Q4.3 Q4.2 Q4.1 Q3.4 Q3.3 Q3.2 Q3.1 Q2.3 Q2.2 Q2.1 Q1.3 Q1.2 Q1.1
  24. © 2023 Database Technology Inc. All Rights Reserved. 30 評価SQL

    実行 12:10:43 03:36:04 0 00:00:45 00:00:00 02:00:00 04:00:00 06:00:00 08:00:00 10:00:00 12:00:00 14:00:00 レスポンス時間 合計の比較 MDS 索引無し MDS 索引有り 系列4 HeatWave 約1000分の1 約300分の1
  25. © 2023 Database Technology Inc. All Rights Reserved. 31 LIKE検索

    全文検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノード HeatWave
  26. © 2023 Database Technology Inc. All Rights Reserved. 33 LIKE検索

    全文検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノー ド
  27. © 2023 Database Technology Inc. All Rights Reserved. 35 全文検索

    LIKE検索  青空文庫のテキストデータを利用 https://github.com/aozorahack/aozorabunko_text テ キ ス ト デ ー タ 取 得 文 字 コ ー ド ・ 改 行 コ ー ド 変 換 CSV 変 換 テ ー ブ ル へ 挿 入 検 索 し て み る クライアント MDSノード HeatWaveノード HeatWave
  28. © 2023 Database Technology Inc. All Rights Reserved. 36 検索

     有るキーワードを含むタイトル抽出  有るキーワードのヒット数  有るキーワードの作者毎出現数  有るキーワードのタイトル毎出現数
  29. © 2023 Database Technology Inc. All Rights Reserved. 37 4.14

    秒 3.93 秒 4.13 秒 4.15 秒 0.14 秒 0.10 秒 0.13 秒 0.41 秒 0.00 秒 1.00 秒 2.00 秒 3.00 秒 4.00 秒 5.00 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索 (HeatWave有効/無効)の比較 HeatWave無効 HeatWave有効 テーブルサイズ:約1.3GB 行数:約388万行
  30. © 2023 Database Technology Inc. All Rights Reserved. 38 0.14

    秒 0.10 秒 0.13 秒 0.41 秒 0.02 秒 0.01 秒 0.01 秒 0.01 秒 0.00 秒 0.10 秒 0.20 秒 0.30 秒 0.40 秒 0.50 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索(HeatWave有効)と全文検索の比較 HeatWave有効 LIKE検索 HeatWave無効 全文検索 テーブルサイズ:約1.3GB 行数:約388万行
  31. © 2023 Database Technology Inc. All Rights Reserved. 39 無理やりHeatwave利用

     HeatWave での実行が選択されなかったSQLを HeatWaveで実行する!
  32. © 2023 Database Technology Inc. All Rights Reserved. 40 無理やりHeatwave利用

     ヒント句 /*+ SET_VAR(use_secondary_engine=FORCED) */ を利用する  実行時 HeatWaveが利用されないSQLを利用する ※確認は EXPLAINで RAPIDエンジンが使われて いるかどうかで行う 結果: HeatWaveを利用したほうが 遅かった
  33. © 2023 Database Technology Inc. All Rights Reserved. 42 比較をやってみて

     実際に自分の目で条件を把握した上で速さが実感できた  ちょっとした思いつきで条件を変えて試すことが出来た  ここには載せられない結果も試すことが出来た(意味がない検証 が・・・)