Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table S...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hmatsu47
PRO
May 13, 2019
Technology
200
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table Store を試すことになった話
DB勉強会 in 愛知@名古屋ギークバー 第1回
hmatsu47
PRO
May 13, 2019
More Decks by hmatsu47
See All by hmatsu47
中小企業に就職して転職せず30年。結果どうなった?
hmatsu47
PRO
0
84
JAWS ミート 2026 の「出し物」のゲームを Kiro と AI-DLC v2 で作った話
hmatsu47
PRO
0
15
ゲームで挑戦!VPC の気持ちになって IPv4/v6 パケットをルーティングしよう!
hmatsu47
PRO
0
29
続・名古屋城とデータセンター
hmatsu47
PRO
0
28
【再演】IPv6 VPC の実装パターンをいくつか
hmatsu47
PRO
0
33
名古屋城とデータセンター
hmatsu47
PRO
0
40
IPv6 に関する話
hmatsu47
PRO
0
29
さいきんの光ファイバーの話
hmatsu47
PRO
0
76
低いほうのレイヤを見てみる話
hmatsu47
PRO
0
35
Other Decks in Technology
See All in Technology
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
1.9k
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.6k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
HHKBエバンジェリストになる方法
941
0
100
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
500
AI に書かせたその API、 “信頼” できますか?
nagix
0
110
データ_AIの事業の勝敗をわけるもの
nek0128
0
340
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
100
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
0
130
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
3
550
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
310
Screen Lens - 今見てる画面を翻訳する
komagata
0
290
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Designing for Performance
lara
611
70k
Believing is Seeing
oripsolob
1
220
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Utilizing Notion as your number one productivity tool
mfonobong
4
590
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Thoughts on Productivity
jonyablonski
76
5.4k
Scaling GitHub
holman
464
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Crafting Experiences
bethany
1
330
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 とか指してるもの が違う) 管理コンソールの使い勝⼿やドキュメントなど、⾜りて ない部分はある
ありがとうございました