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
TiDB Cloudから読みとくデータベース(RDB・NoSQL・NewSQL) / Data...
Search
sora
July 31, 2024
0
360
TiDB Cloudから読みとくデータベース(RDB・NoSQL・NewSQL) / Database to read from TiDB Cloud
sora
July 31, 2024
Tweet
Share
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Six Lessons from altMBA
skipperchong
27
3.6k
Done Done
chrislema
182
16k
A Philosophy of Restraint
colly
203
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Practical Orchestrator
shlominoach
186
10k
Producing Creativity
orderedlist
PRO
343
39k
No one is an island. Learnings from fostering a developers community.
thoeni
20
3.1k
Transcript
TiDB Cloudから読みとく データベース (RDB‧NoSQL‧NewSQL) 2024.7.31 ゲームソリューション部 sora
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い
⾃⼰紹介 sora • 産業⽀援グループゲームソリューション部 • ソリューションアーキテクト • 2023年1⽉⼊社 • 2024
Japan AWS Top Engineers (Database) • 2024 Japan AWS All Certifications Engineers 3
アジェンダ • はじめに • RDB‧NoSQL‧NewSQLについて • TiDB Cloudについて • TiDB
Cloudのクラスタ構築‧接続 • まとめ 4
本セッションでお話しすること • 本セッションでお話しすること ◦ RDB‧NoSQL‧NewSQLとは何か ◦ RDB‧NoSQL‧NewSQLのそれぞれの得意不得意 ◦ TiDBの構成‧TiDB Cloudクラスタの構築/接続⽅法
• 本セッションでお話ししないこと ◦ DB設計、クエリチューニングなど ◦ TiDB以外の特定のDBの深堀 5
本セッションの対象者‧⽬的 • 対象者 ◦ DB初⼼者〜中級者 ◦ TiDBを知らない⽅‧深い知識がない⽅ • ⽬的 ◦
RDB‧NoSQL‧NewSQLのそれぞれの得意不得 意を知り、DBを広く理解する ◦ TiDBについての最初の⼀歩を踏み出す 6
DBの種類 • RDB(Relational Database) • NoSQL(Not Only SQL) • NewSQL
7
RDB (Relational Database) 8
RDB(Relational Database)とは • テーブルを⽤いて、構造化データを扱うDB • SQLを使って、データを操作する 9 ユーザーID ユーザー名 レベル
ゲームID ユーザーID スコア プレイ時間 ユーザーID ユーザー名 レベル ゲームID スコア プレイ時間 関連付け 結合
RDBが得意なこと‧不得意なこと • 得意なこと ◦ 構造化データの扱い ◦ トランザクション処理 ◦ SQLが使⽤可能 •
不得意なこと ◦ スケーラビリティ ◦ ⾮構造化データの扱い 10
スケーラビリティ 11 プライマリ プライマリ プライマリ プライマリ スケールアップ/ダウンは可能 スケールアウトは不可 ⇒データの整合性が取れなくなるため •
プライマリ(書き込みノード)のスケールアウトはできない
スケーラビリティ 12 • プライマリ(書き込みノード)をスケールアウトさせたい ◦ シャーディングで対処可能 ▪ ただし、運⽤が⼤変 リード レプリカ
プライマリ リード レプリカ リード レプリカ プライマリ リード レプリカ 2セットのクラスタを作って、 保持するデータはクラスタごとに分散させる
NoSQL (Not Only SQL) 13
NoSQL(Not Only SQL)とは • NoSQLと⾔っても様々なDBがある 14 DocumentDB (ドキュメント) DynamoDB (キー
バリュー) ElastiCache (インメモリ) KeySpaces (ワイド カラム) MemoryDB (インメモリ) Neptune (グラフ) Timestream (時系列) AWSのNoSQLデータベース
KVS(Key-Value Store)とは • キーとバリューの関係を持っていて、 ⾮構造化データを扱うDB 15 Key Value 1 {a}
2 {a,b} 3 {a,c,d} 4 {b,d,e,f}
KVSが得意なこと‧不得意なこと • 得意なこと ◦ ⾮構造化データの扱い ◦ スケーラビリティ ◦ ⾼速なデータの読み書き •
不得意なこと ◦ SQLが使えない(SQLライクなものはあるが…) ◦ トランザクション処理(できるものもあるが…) 16
NewSQL 17
NewSQLとは • スケーラビリティを備えたRDB • RDBの特徴を持ちつつ、 NoSQLのスケーラビリティを持つ • ⇒上位互換ではなくデメリットもちゃんとある ※TiDB以外のNewSQLを利⽤したことはないため、 誤っている部分があればコメントいただけますと幸いです。
18
NewSQL例1:Spanner 19 • PostgreSQL互換
NewSQL例2:TiDB 20 • MySQL互換
NewSQL例3:YugabyteDB 21 • PostgreSQL互換
データの管理(Raftアルゴリズム) • データを分散して保持、多数決によりデータの整合性を保つ • 処理はLeaderで⾏い、Followerにデータを反映させる 22
NewSQLの例から⾒た特徴 • 分散型 • 複数の場所に同じデータを持っている • スケーラビリティ • 製品によって、構成が異なる •
MySQL互換のNewSQLは珍しい ◦ 紹介した中ではTiDBのみ 23
NewSQLが得意なこと‧不得意なこと • 得意なこと ◦ トランザクション処理 ◦ スケーラビリティ ◦ SQLが使⽤可能 •
不得意なこと ◦ レイテンシー ◦ コスト 24
TiDB Cloud 25
TiDB Cloudとは • MySQL互換のNewSQL • フルマネージドサービスでAWSやGoogle Cloud上 に専⽤のTiDB環境を構築することが可能 26
TiDB Cloudのアーキテクチャ 27 クラスタ内の司令塔 SQLクエリの解析 行指向データ管理 列指向データ管理 TiKVと同期して、 主に分析用途で利用
TiDB Cloudの特徴 28 書き込みのスケールアウトが可能 高可用性・高信頼性 オートシャーディング MySQL互換
AIを用いたSQLの自動生成が可能 分析基盤との統合が可能 (HTAP)
書き込みのスケールアウトが可能 • ReadだけでなくWriteのスケールアウトも可能 29
オートシャーディング(1/2) 30 従来のDB ユーザ アプリ 従来のDB 従来のDB アプリ側でアクセスする DBを制御する必要がある シャーディングするための
DB数・分割方法などを 考える必要がある
オートシャーディング(2/2) 31 ユーザ アプリ TiDBにてエンドポイントは1つのため、 アプリからのアクセス先は1箇所のみ TiDB内部で オートシャーディングされているため、 シャードの設計・運用は不要
分析基盤との統合が可能(HTAP) 32 列指向データ領域も追加可能 TiKVから同期して、 主に分析用途で利用可能
TiDB Cloudのラインナップ • Serverless ◦ クラウド型フルマネージドDB ◦ マルチテナント ◦ Dedicatedと⽐較して、⼀部機能に制限がある
• Dedicated ◦ クラウド型フルマネージドDB ◦ シングルテナント(利⽤者ごとの専⽤環境にTiDBを構築) • Self-Hosted ◦ OSS版のTiDB ◦ AWS環境であればEKS上に構築したり、オンプレミスでの構築も可能 33 TiDB Cloud
TiDB CloudとAmazon Auroraの⽐較 34 Amazon Aurora TiDB Cloud 通信レイテンシ 〇
〇 単体のクエリ処理速度 〇 △:少し遅い レプリケーション 遅延あり 遅延なし 高負荷時 △:エラーが発生 〇:速度遅延のみ スケールアウト △:Readは可能、Writeは不可 〇:コネクションの再接続が必要 スケールアップ/ダウン △:インスタンスの停止が必要 〇:コネクションの再接続が必要 最小構成におけるコスト - Dedicatedであれば約60万円程度 (Serverlessであれば無料枠もあり) 互換性 〇:MySQL 完全互換 △MySQL 互換 (完全互換ではない)
TiDB Cloudクラスタを 実際に構築してみる 35
TiDB Cloudクラスタの構築 36 • ログイン後の画⾯(クラスタがあればクラスタが表⽰される)
TiDB Cloudクラスタの作成 37 • クラスタ作成画⾯
TiDB Cloudクラスタへの接続 • ほぼ即時で構築完了 38
TiDB Cloudクラスタへの接続 39 • クラスタへの接続コマンドの確認
TiDB Cloudクラスタへの接続 40 • EC2インスタンスから接続完了
TiDB Cloudの機能 41 • SQL Editor ◦ AIを使⽤したSQLジェネレータにより、SQL⽂を⾃動⽣成
TiDB Cloudの機能 42 • インポート
TiDB Cloudの機能 43 • バックアップ
TiDB Cloudの機能 44 • リストア
TiDB Cloudの機能 45 • メトリクス
TiDB Cloudの機能 46 • クエリ診断
TiDB Cloudの機能 47 • イベントログ
TiDB Cloudの機能 48 • 他サービスとの連携
まとめ 49
まとめ(1/2) • RDB ◦ 構造化データを扱う ◦ トランザクション処理が得意だが、⼀定以上のスケールには制限がある • NoSQL(KVS) ◦
⾮構造化データを扱う ◦ ⾼速でスケーラビリティに優れるが、トランザクション処理は苦⼿ • NewSQL ◦ 構造化データを扱う ◦ トランザクション処理が得意で、スケーラビリティにも優れるが、 レイテンシーが⾼く、コストも⾼い 50
まとめ(2/2) • TiDB Cloud ◦ MySQL互換のNewSQL ◦ オートシャーディング、 Writeのスケールイン/アウトも可能、 ⾼可⽤性などの特徴を持つ
◦ Serverlessであれば、無料枠でも利⽤可能 ◦ 本番運⽤を考えてDedicatedを使⽤する場合は、 最低料⾦が⾼い 51
None