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
330
TiDB Cloudから読みとくデータベース(RDB・NoSQL・NewSQL) / Database to read from TiDB Cloud
sora
July 31, 2024
Tweet
Share
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.6k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Language of Interfaces
destraynor
154
24k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
A Modern Web Designer's Workflow
chriscoyier
693
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Thoughts on Productivity
jonyablonski
68
4.4k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Producing Creativity
orderedlist
PRO
342
39k
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