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
290
TiDB Cloudから読みとくデータベース(RDB・NoSQL・NewSQL) / Database to read from TiDB Cloud
sora
July 31, 2024
Tweet
Share
Featured
See All Featured
Ruby is Unlike a Banana
tanoku
97
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Cult of Friendly URLs
andyhume
78
6k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Agile that works and the tools we love
rasmusluckow
327
21k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Statistics for Hackers
jakevdp
796
220k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
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