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 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table S...
Search
hmatsu47
PRO
May 13, 2019
Technology
1
190
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table Store を試すことになった話
DB勉強会 in 愛知@名古屋ギークバー 第1回
hmatsu47
PRO
May 13, 2019
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
Aurora DSQL のトランザクション(スナップショット分離と OCC)
hmatsu47
PRO
0
4
いろんなところに居る Amazon Q(Developer)を使い分けてみた
hmatsu47
PRO
0
22
ゲームで体感!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
11
PostgreSQL+pgvector で GraphRAG に挑戦 & pgvectorscale 0.7.x アップデート
hmatsu47
PRO
0
28
LlamaIndex の Property Graph Index を PostgreSQL 上に構築してデータ構造を見てみる
hmatsu47
PRO
0
17
PostgreSQL+pgvector で LlamaIndex の Property Graph Index を試す(序章)
hmatsu47
PRO
0
16
HeatWave on AWS という選択肢を検討してみる
hmatsu47
PRO
0
13
HeatWave on AWS のインバウンドレプリケーションで HeatWave エンジン有効時のレプリケーションラグを確認してみた!
hmatsu47
PRO
0
22
CloudWatch Database Insights 関連アップデート
hmatsu47
PRO
0
56
Other Decks in Technology
See All in Technology
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
150
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
4
1.8k
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
450
Webアクセシビリティ入門
recruitengineers
PRO
3
1.5k
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
6
1.7k
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
2
270
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
0
150
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
260
Kubernetes における cgroup driver のしくみ: runwasi の bugfix より
z63d
2
120
Skrub: machine-learning with dataframes
gaelvaroquaux
0
110
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.3k
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
2.2k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
How STYLIGHT went responsive
nonsquared
100
5.8k
Agile that works and the tools we love
rasmusluckow
330
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Art, The Web, and Tiny UX
lynnandtonic
302
21k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing for humans not robots
tammielis
253
25k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
The Invisible Side of Design
smashingmag
301
51k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Transcript
MySQL 8.0 の薄い本を作ったことをきっかけに Alibaba Cloud Table Store を試すことになった話 (DB勉強会 in
愛知@名古屋Geek Bar 2019.05.13) hmatsu47(松久 裕保)
⾃⼰紹介 名古屋 Geek Bar 初参加です
今回のネタ ネタ 1 : 「MySQL 8.0 の薄い本」を書いた ネタ 2 :
Alibaba Cloud Table Store を試してみた
発端は「Re:VIEW で何か書いてみたい」 https://github.com/kmuto/review Re:VIEW is an easy-to-use digital publishing system
for paper books and ebooks. 「このツール使ってみたい」駆動 ネタは何が良さそう︖ ⾃分の Qiita 記事に MySQL 8.0 ネタがいっぱい 業務とは完全に無関係(なので表に出しても OK) 知⼈の MySQL おじ兄さんたちもブログに⾊々書いてる まだ MySQL 8.0 を扱った本が⾒当たらない 同⼈誌については単に知らないだけかも︖
よし、「MySQL 8.0 の薄い本」にしよう
内容 MySQL 8.0 の新機能 CTE(共通テーブル式)、ウィンドウ関数など 実は意外と少ない MySQL 5.7 からの変更点と機能向上 JSON
& ドキュメントストア、GIS、各種暗号化など 管理情報(データディクショナリ、システムテーブル) の InnoDB 化 デフォルト認証プラグインの変更など 知らずにバージョンアップするとハマるポイント 情報リンクと⾃作サンプルをできるだけ集めて書いた
今⽇も持ってきています(5 冊限定) タダなので持って⾏ってください 残ると持ち帰るのに重い…
とはいえ、 「リンク & サンプル集」 たぶん電⼦版のが使いやすいと思う URL ⼿⼊⼒はしんどい ⼀応、印刷版にもリンク集 Web ページへの
QR コードは 付けてある PDF 版を GitHub リポジトリに置いてある 印刷⽤本⽂ PDF データも置いてあるので印刷も OK EPUB 版は 1 つ前の 8.0.15 対応版(改訂⾟い…) https://github.com/hmatsu47/mysql80_no_usui_hon
GitHub リポジトリのアクセス数を⾒てみよう Insights の Traffic 直近 14 ⽇分しか⾒れない それ以前の分はどっかに記録しておかないと…
突然ですが、Alibaba Cloud Table Store って︖ AWS でいうところの DynamoDB 構造もそっくりの NoSQL
分散データベース パーティションキーによって保存場所を分割 グローバルセカンダリインデックスがある プライマリキーとは別のキーで検索可能 ただし⼀部違いが (たぶん)単⼀ AZ でのデータ保持 ローカルセカンダリインデックスはない(みたい) (かわりに︖)サーチインデックスというのがある 全⽂検索・あいまい検索・地理検索できるぽい
そして、 「プライマリキー列のオートインクリメント機能」がある パーティションキー以外の列(1 列限定)に設定可能 「オートインクリメント」といえば…
「オートインクリメント」といえば MySQL Google 先⽣に聞いてみるとよくわかる
すべて MySQL
よし、ここにしよう
ただし問題が オートインクリメント機能は Java-SDK しかサポートしてない なんか⾯倒臭そう こういうのは Python で雑に書きたかった ⽇本語版マニュアルが追い付いてない 先に挙げたグローバルセカンダリインデックスやサーチ
インデックスの情報がない どのリージョンで何の機能に対応してるのか不明 実は英語版・中国語版もマニュアルが追い付いてない Javadoc もちゃんと書かれてない
結局、サンプルコード頼み (Java-SDK に付いてる exapmles)
でも、せっかくなので Function Compute の関数にしてみた Function Compute : AWS でいうところの Lambda
VPC 接続でも NAT ゲートウェイ置かずにインターネット アクセスできるのはありがたい 登録・実⾏してみた 管理コンソールでコードを⾒れないのが⾟い… Java の場合 Node.js と Python は OK
こんな感じに https://github.com/hmatsu47/alibaba_table_store_sample 無理やりオートインクリメント列を使うコードにした 本当は要らない パーティションキー(⽇付列)だけで事⾜りる SyncClient で AssumeRole(STS 利⽤)する⽅法がわからず、 アクセスキーべた書きのショボいコードに
⽇本語のドキュメントに書いてある内容がちぐはぐ マニュアル、頼む︕ せめて Javadoc ちゃんと書いといてくれ、頼む︕ といいつつわがサンプルコードにも書いてないけど
実⾏してみた
えっ︖
インクリメント #とは なんか想像してたのと違う…
Wikipedia より
なるほど︖ コンピュータ⽤語ではなくて⼀般⽤語のほうなのか… InnoDB Cluster の AUTO_INCREMENT も +1 じゃないし 分散
DB で重複なく正確に +1 することの難しさを想像
解決。
ですが… ログテーブルやトランザクションテーブルには向いてない オーバーフローが怖い マスタテーブルでの利⽤が前提︖ パーティションキー固定しないと意味ないし - 今回のサンプルは「無理やり使った」ので⾮固定 パーティションキー固定→性能⾯での制限が厳しくなる→ データ⾏数が急増するテーブルでは使えない ご利⽤は計画的に
と、いうわけで(まとめ) 「MySQL 8.0 の薄い本」よろしくお願いします まだ 5.7 以前の⽅、バージョンアップしましょう 弊社はそもそも Aurora ですが…
Alibaba Cloud は AWS によく似てる パk(ryリスペクトしてるらしい AWS ⺠なら感覚だけで何とかなる(︖) サービス名は若⼲違う(ECS とか RAM とか指してるもの が違う) 管理コンソールの使い勝⼿やドキュメントなど、⾜りて ない部分はある
ありがとうございました