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
5
PostgreSQL+pgvector で GraphRAG に挑戦 & pgvectorscale 0.7.x アップデート
hmatsu47
PRO
0
12
LlamaIndex の Property Graph Index を PostgreSQL 上に構築してデータ構造を見てみる
hmatsu47
PRO
0
12
PostgreSQL+pgvector で LlamaIndex の Property Graph Index を試す(序章)
hmatsu47
PRO
0
11
HeatWave on AWS という選択肢を検討してみる
hmatsu47
PRO
0
7
HeatWave on AWS のインバウンドレプリケーションで HeatWave エンジン有効時のレプリケーションラグを確認してみた!
hmatsu47
PRO
0
16
CloudWatch Database Insights 関連アップデート
hmatsu47
PRO
0
32
さいきんの MySQL との付き合い方 〜 MySQL 8.0 より後の世界へようこそ 〜
hmatsu47
PRO
0
30
ベクトルストア入門
hmatsu47
PRO
0
25
Other Decks in Technology
See All in Technology
AWS認定を取る中で感じたこと
siromi
1
150
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
210
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
12k
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
6
4k
OPENLOGI Company Profile
hr01
0
67k
AI導入の理想と現実~コストと浸透〜
oprstchn
0
180
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
540
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
2
880
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
1.3k
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.2k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Navigating Team Friction
lara
187
15k
Six Lessons from altMBA
skipperchong
28
3.9k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Bash Introduction
62gerente
614
210k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Code Review Best Practice
trishagee
69
18k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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 とか指してるもの が違う) 管理コンソールの使い勝⼿やドキュメントなど、⾜りて ない部分はある
ありがとうございました