Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQL HeatWave on AWS を試してみる
Search
hmatsu47
PRO
August 15, 2023
Technology
0
270
MySQL HeatWave on AWS を試してみる
color is 【クラウド LT 大会 vol.4】フリーテーマ! 2023/8/15
hmatsu47
PRO
August 15, 2023
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
Claude 3.5 で Haiku
hmatsu47
PRO
0
8
HeatWave on AWS の PrivateLink インバウンドレプリケーションで Aurora フェイルオーバーに追従する
hmatsu47
PRO
0
8
大吉祥寺.pm の LT で ChatGPT の力を借りて Next.js App Router ベースの投句箱を作って、 Lambda Web Adapter を使って公開した話
hmatsu47
PRO
0
8
ある日突然 DB の性能が 1/2(サイズのインスタンス相当)になった話
hmatsu47
PRO
0
30
pgvectorscale と pgai の話(ざっくり)
hmatsu47
PRO
0
49
pgvector 0.7.0 の新機能と、これから来る(かもしれない)pgvectorscale
hmatsu47
PRO
0
35
大人の社会科見学 ~ NTT 技術史料館に行ってみよう!
hmatsu47
PRO
0
420
pgvector 0.6.0 以降の進化についてざっくり取り上げてみる
hmatsu47
PRO
0
64
Cloudflare Workes からMySQL 系 DB への接続事情(2024/4 現在)
hmatsu47
PRO
0
130
Other Decks in Technology
See All in Technology
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
強いチームと開発生産性
onk
PRO
34
11k
Lambdaと地方とコミュニティ
miu_crescent
2
370
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
Can We Measure Developer Productivity?
ewolff
1
150
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.1k
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
KATA
mclloyd
29
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Visualization
eitanlees
145
15k
The Cult of Friendly URLs
andyhume
78
6k
Why Our Code Smells
bkeepers
PRO
334
57k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Designing for Performance
lara
604
68k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
MySQL HeatWave on AWS を試してみる color is 【クラウド LT 大会
vol.4】 2023/8/15 まつひさ(hmatsu47)
自己紹介 松久裕保(@hmatsu47) • https://qiita.com/hmatsu47 • 現在のステータス: ◦ 名古屋で Web インフラのお守り係をしています
▪ 2017 年秋に AWS 上へ引っ越し完了 ◦ 現在は自社サービスのセキュリティ強化中 ◦ ついでに MySQL HeatWave をのんびり検証中 • 今日は X の FF さんの申し込みを偶然見かけて LT 参加 2
本日お話しする内容 • Oracle Cloud (OCI) の MySQL HeatWave ◦ MySQL
が苦手な分析クエリを高速化 • MySQL HeatWave on AWS ◦ AWS 上のリソースを使って MySQL HeatWave を提供 ◦ 2023/5 に東京リージョンでの提供を開始 • MySQL HeatWave (on AWS) 使用上の注意 ◦ 構成上の制約や使える SQL 文の制限など 3
Oracle Cloud (OCI) の MySQL HeatWave • 分析クエリも得意な MySQL のマネージドサービス
https://dev.mysql.com/doc/heatwave/en/mys-hw-architecture.html より引用 4
Oracle Cloud (OCI) の MySQL HeatWave • 分析クエリも得意な MySQL のマネージドサービス
https://dev.mysql.com/doc/heatwave/en/mys-hw-architecture.html より引用 5 1. SQL 文を MySQL DB System が受け取る
Oracle Cloud (OCI) の MySQL HeatWave • 分析クエリも得意な MySQL のマネージドサービス
https://dev.mysql.com/doc/heatwave/en/mys-hw-architecture.html より引用 6 1. SQL 文を MySQL DB System が受け取る 2. 普通に処理したほうが高速か HeatWave 非対応の SQL 文は InnoDB で処理
Oracle Cloud (OCI) の MySQL HeatWave • 分析クエリも得意な MySQL のマネージドサービス
https://dev.mysql.com/doc/heatwave/en/mys-hw-architecture.html より引用 7 1. SQL 文を MySQL DB System が受け取る 2. 普通に処理したほうが高速か HeatWave 非対応の SQL 文は InnoDB で処理 3. HeatWave で処理したほうが良いと判断した SQL 文は HeatWave Plugin を経由して HeatWave Cluster に渡して並列処理
Oracle Cloud (OCI) の MySQL HeatWave • 分析クエリも得意な MySQL のマネージドサービス
https://dev.mysql.com/doc/heatwave/en/mys-hw-architecture.html より引用 8 1. SQL 文を MySQL DB System が受け取る 2. 普通に処理したほうが高速か HeatWave 非対応の SQL 文は InnoDB で処理 3. HeatWave で処理したほうが良いと判断した SQL 文は HeatWave Plugin を経由して HeatWave Cluster に渡して並列処理 4. MySQL DB System から Client に結果を返す
HeatWave Cluster • 列指向型のインメモリ・分散データベース ◦ 列指向データベース:集計処理に強い • Google Cloud の
AlloyDB(PostgreSQL 互換)でも似た アプローチを採用している ◦ HeatWave はユーザーが指定したテーブル(列)すべてが対象 ◦ AlloyDB では機械学習で一部のテーブル列をカラム型へ振り分け ▪ 自動振り分けを無効化して手動指定も可能 9
MySQL HeatWave on AWS • AWS 上のリソースを使って MySQL HeatWave を提供
◦ AWS からのアクセスは AWS のネットワーク内で完結 • 2023/4 にサービス開始 ◦ 東京リージョンでは 2023/5 開始 • 対応バージョン(2023/8/15 現在) ◦ 8.1 系:8.1.0 ◦ 8.0 系 : 8.0.33 までの 3 マイナーバージョン(8.0.34 未対応) 10
MySQL HeatWave on AWS を試してみた • Qiita に 4 つの記事を投稿
◦ https://qiita.com/hmatsu47/items/8f202eef64ea57e7d948 ◦ https://qiita.com/hmatsu47/items/0979f877ad596cf3cf67 ◦ https://qiita.com/hmatsu47/items/4c61ce90adcdbbea74e9 ◦ https://qiita.com/hmatsu47/items/230d345e481701a5d735 • チュートリアル用に提供されている TPC-H 用データでは ◦ 最小サイズのシェイプで 17 倍以上高速化 ◦ HeatWave Cluster のノードサイズを上げるとさらに高速化 11
MySQL HeatWave on AWS の注意点 【注】いずれも 2023/8/15 時点で • Oracle
Cloud (OCI) の契約が必要 ◦ AWS Marketplace 提供サービスではない • シェイプサイズや HeatWave Cluster を変更できない ◦ エクスポートしたデータかバックアップのリストアが必要 • HA 構成をサポートしていない 12
MySQL HeatWave on AWS の注意点 【注】いずれも 2023/8/15 時点で • PrivateLink
をサポートしていない ◦ パブリック IP アドレスでアクセスする必要がある • インバウンドレプリケーションをサポートしていない ◦ RDS / Aurora のレプリカ(スレーブ)としては使えない 13
MySQL HeatWave(on AWS 含む)の注意点 【注】いずれも 2023/8/15 時点で • HeatWave では使えない機能や
SQL 文がある ◦ ただいま調査・検証中 ▪ https://qiita.com/hmatsu47/items/5bf7b37f694e56f3dc82 ▪ https://qiita.com/hmatsu47/items/a9667762fb5ecdd66e75 ▪ https://qiita.com/hmatsu47/items/bae9e9c406416069c65b ◦ ほとんどは自動で InnoDB に振り分けられるので大丈夫だが… ▪ もしくは HeatWave へのデータロード時にエラーが出るか 14
MySQL HeatWave(on AWS 含む)の注意点 【注】いずれも 2023/8/15 時点で • HeatWave で制限がある機能のうち、以下は特に要注意
◦ 外部キーで CASCADE UPDATE / DELETE するテーブル ▪ 親テーブルの行更新・削除で HeatWave 側のデータが不整合に ◦ タイムゾーンを UTC 以外に設定 ▪ 初期のデータロードでは大丈夫だが、後から追加・更新されたデータが HeatWave 側で不整合に • エラーが出ずサイレントに不整合が生じる点が問題 15
まとめ • MySQL HeatWave (on AWS) とは ◦ MySQL が苦手な分析クエリを高速化するマネージドサービス
▪ OLTP / OLAP をまとめて処理(自動振り分け)→ ETL 不要 ◦ on AWS:AWS 上のリソースを使ってこの機能を提供 • MySQL HeatWave (on AWS) 使用上の注意 ◦ 構成上の制約や使える SQL 文の制限がある ▪ 特に、エラーが出ずサイレントにデータ不整合が生じるケースに注意 16