Slide 1

Slide 1 text

TiDB Cloudから読みとく データベース (RDB‧NoSQL‧NewSQL) 2024.7.31 ゲームソリューション部 sora

Slide 2

Slide 2 text

Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い

Slide 3

Slide 3 text

⾃⼰紹介 sora ● 産業⽀援グループゲームソリューション部 ● ソリューションアーキテクト ● 2023年1⽉⼊社 ● 2024 Japan AWS Top Engineers (Database) ● 2024 Japan AWS All Certifications Engineers 3

Slide 4

Slide 4 text

アジェンダ ● はじめに ● RDB‧NoSQL‧NewSQLについて ● TiDB Cloudについて ● TiDB Cloudのクラスタ構築‧接続 ● まとめ 4

Slide 5

Slide 5 text

本セッションでお話しすること ● 本セッションでお話しすること ○ RDB‧NoSQL‧NewSQLとは何か ○ RDB‧NoSQL‧NewSQLのそれぞれの得意不得意 ○ TiDBの構成‧TiDB Cloudクラスタの構築/接続⽅法 ● 本セッションでお話ししないこと ○ DB設計、クエリチューニングなど ○ TiDB以外の特定のDBの深堀 5

Slide 6

Slide 6 text

本セッションの対象者‧⽬的 ● 対象者 ○ DB初⼼者〜中級者 ○ TiDBを知らない⽅‧深い知識がない⽅ ● ⽬的 ○ RDB‧NoSQL‧NewSQLのそれぞれの得意不得 意を知り、DBを広く理解する ○ TiDBについての最初の⼀歩を踏み出す 6

Slide 7

Slide 7 text

DBの種類 ● RDB(Relational Database) ● NoSQL(Not Only SQL) ● NewSQL 7

Slide 8

Slide 8 text

RDB (Relational Database) 8

Slide 9

Slide 9 text

RDB(Relational Database)とは ● テーブルを⽤いて、構造化データを扱うDB ● SQLを使って、データを操作する 9 ユーザーID ユーザー名 レベル ゲームID ユーザーID スコア プレイ時間 ユーザーID ユーザー名 レベル ゲームID スコア プレイ時間 関連付け 結合

Slide 10

Slide 10 text

RDBが得意なこと‧不得意なこと ● 得意なこと ○ 構造化データの扱い ○ トランザクション処理 ○ SQLが使⽤可能 ● 不得意なこと ○ スケーラビリティ ○ ⾮構造化データの扱い 10

Slide 11

Slide 11 text

スケーラビリティ 11 プライマリ プライマリ プライマリ プライマリ スケールアップ/ダウンは可能 スケールアウトは不可 ⇒データの整合性が取れなくなるため ● プライマリ(書き込みノード)のスケールアウトはできない

Slide 12

Slide 12 text

スケーラビリティ 12 ● プライマリ(書き込みノード)をスケールアウトさせたい ○ シャーディングで対処可能 ■ ただし、運⽤が⼤変 リード レプリカ プライマリ リード レプリカ リード レプリカ プライマリ リード レプリカ 2セットのクラスタを作って、 保持するデータはクラスタごとに分散させる

Slide 13

Slide 13 text

NoSQL (Not Only SQL) 13

Slide 14

Slide 14 text

NoSQL(Not Only SQL)とは ● NoSQLと⾔っても様々なDBがある 14 DocumentDB (ドキュメント) DynamoDB (キー バリュー) ElastiCache (インメモリ) KeySpaces (ワイド カラム) MemoryDB (インメモリ) Neptune (グラフ) Timestream (時系列) AWSのNoSQLデータベース

Slide 15

Slide 15 text

KVS(Key-Value Store)とは ● キーとバリューの関係を持っていて、 ⾮構造化データを扱うDB 15 Key Value 1 {a} 2 {a,b} 3 {a,c,d} 4 {b,d,e,f}

Slide 16

Slide 16 text

KVSが得意なこと‧不得意なこと ● 得意なこと ○ ⾮構造化データの扱い ○ スケーラビリティ ○ ⾼速なデータの読み書き ● 不得意なこと ○ SQLが使えない(SQLライクなものはあるが…) ○ トランザクション処理(できるものもあるが…) 16

Slide 17

Slide 17 text

NewSQL 17

Slide 18

Slide 18 text

NewSQLとは ● スケーラビリティを備えたRDB ● RDBの特徴を持ちつつ、 NoSQLのスケーラビリティを持つ ● ⇒上位互換ではなくデメリットもちゃんとある ※TiDB以外のNewSQLを利⽤したことはないため、  誤っている部分があればコメントいただけますと幸いです。 18

Slide 19

Slide 19 text

NewSQL例1:Spanner 19 ● PostgreSQL互換

Slide 20

Slide 20 text

NewSQL例2:TiDB 20 ● MySQL互換

Slide 21

Slide 21 text

NewSQL例3:YugabyteDB 21 ● PostgreSQL互換

Slide 22

Slide 22 text

データの管理(Raftアルゴリズム) ● データを分散して保持、多数決によりデータの整合性を保つ ● 処理はLeaderで⾏い、Followerにデータを反映させる 22

Slide 23

Slide 23 text

NewSQLの例から⾒た特徴 ● 分散型 ● 複数の場所に同じデータを持っている ● スケーラビリティ ● 製品によって、構成が異なる ● MySQL互換のNewSQLは珍しい ○ 紹介した中ではTiDBのみ 23

Slide 24

Slide 24 text

NewSQLが得意なこと‧不得意なこと ● 得意なこと ○ トランザクション処理 ○ スケーラビリティ ○ SQLが使⽤可能 ● 不得意なこと ○ レイテンシー ○ コスト 24

Slide 25

Slide 25 text

TiDB Cloud 25

Slide 26

Slide 26 text

TiDB Cloudとは ● MySQL互換のNewSQL ● フルマネージドサービスでAWSやGoogle Cloud上 に専⽤のTiDB環境を構築することが可能 26

Slide 27

Slide 27 text

TiDB Cloudのアーキテクチャ 27 クラスタ内の司令塔 SQLクエリの解析 行指向データ管理 列指向データ管理 TiKVと同期して、 主に分析用途で利用

Slide 28

Slide 28 text

TiDB Cloudの特徴 28 書き込みのスケールアウトが可能 
 高可用性・高信頼性 
 オートシャーディング 
 MySQL互換 
 AIを用いたSQLの自動生成が可能 
 分析基盤との統合が可能 
 (HTAP) 


Slide 29

Slide 29 text

書き込みのスケールアウトが可能 ● ReadだけでなくWriteのスケールアウトも可能 29

Slide 30

Slide 30 text

オートシャーディング(1/2) 30 従来のDB ユーザ アプリ 従来のDB 従来のDB アプリ側でアクセスする DBを制御する必要がある シャーディングするための DB数・分割方法などを 考える必要がある

Slide 31

Slide 31 text

オートシャーディング(2/2) 31 ユーザ アプリ TiDBにてエンドポイントは1つのため、 アプリからのアクセス先は1箇所のみ TiDB内部で オートシャーディングされているため、 シャードの設計・運用は不要

Slide 32

Slide 32 text

分析基盤との統合が可能(HTAP) 32 列指向データ領域も追加可能 TiKVから同期して、 主に分析用途で利用可能

Slide 33

Slide 33 text

TiDB Cloudのラインナップ ● Serverless ○ クラウド型フルマネージドDB ○ マルチテナント ○ Dedicatedと⽐較して、⼀部機能に制限がある ● Dedicated ○ クラウド型フルマネージドDB ○ シングルテナント(利⽤者ごとの専⽤環境にTiDBを構築) ● Self-Hosted ○ OSS版のTiDB ○ AWS環境であればEKS上に構築したり、オンプレミスでの構築も可能 33 TiDB Cloud

Slide 34

Slide 34 text

TiDB CloudとAmazon Auroraの⽐較 34 Amazon Aurora TiDB Cloud 通信レイテンシ 〇 〇 単体のクエリ処理速度 〇 △:少し遅い レプリケーション 遅延あり 遅延なし 高負荷時 △:エラーが発生 〇:速度遅延のみ スケールアウト △:Readは可能、Writeは不可 〇:コネクションの再接続が必要 スケールアップ/ダウン △:インスタンスの停止が必要 〇:コネクションの再接続が必要 最小構成におけるコスト - Dedicatedであれば約60万円程度 (Serverlessであれば無料枠もあり) 互換性 〇:MySQL 完全互換 △MySQL 互換 (完全互換ではない)

Slide 35

Slide 35 text

TiDB Cloudクラスタを 実際に構築してみる 35

Slide 36

Slide 36 text

TiDB Cloudクラスタの構築 36 ● ログイン後の画⾯(クラスタがあればクラスタが表⽰される)

Slide 37

Slide 37 text

TiDB Cloudクラスタの作成 37 ● クラスタ作成画⾯

Slide 38

Slide 38 text

TiDB Cloudクラスタへの接続 ● ほぼ即時で構築完了 38

Slide 39

Slide 39 text

TiDB Cloudクラスタへの接続 39 ● クラスタへの接続コマンドの確認

Slide 40

Slide 40 text

TiDB Cloudクラスタへの接続 40 ● EC2インスタンスから接続完了

Slide 41

Slide 41 text

TiDB Cloudの機能 41 ● SQL Editor ○ AIを使⽤したSQLジェネレータにより、SQL⽂を⾃動⽣成

Slide 42

Slide 42 text

TiDB Cloudの機能 42 ● インポート

Slide 43

Slide 43 text

TiDB Cloudの機能 43 ● バックアップ

Slide 44

Slide 44 text

TiDB Cloudの機能 44 ● リストア

Slide 45

Slide 45 text

TiDB Cloudの機能 45 ● メトリクス

Slide 46

Slide 46 text

TiDB Cloudの機能 46 ● クエリ診断

Slide 47

Slide 47 text

TiDB Cloudの機能 47 ● イベントログ

Slide 48

Slide 48 text

TiDB Cloudの機能 48 ● 他サービスとの連携

Slide 49

Slide 49 text

まとめ 49

Slide 50

Slide 50 text

まとめ(1/2) ● RDB ○ 構造化データを扱う ○ トランザクション処理が得意だが、⼀定以上のスケールには制限がある ● NoSQL(KVS) ○ ⾮構造化データを扱う ○ ⾼速でスケーラビリティに優れるが、トランザクション処理は苦⼿ ● NewSQL ○ 構造化データを扱う ○ トランザクション処理が得意で、スケーラビリティにも優れるが、 レイテンシーが⾼く、コストも⾼い 50

Slide 51

Slide 51 text

まとめ(2/2) ● TiDB Cloud ○ MySQL互換のNewSQL ○ オートシャーディング、 Writeのスケールイン/アウトも可能、 ⾼可⽤性などの特徴を持つ ○ Serverlessであれば、無料枠でも利⽤可能 ○ 本番運⽤を考えてDedicatedを使⽤する場合は、 最低料⾦が⾼い 51

Slide 52

Slide 52 text

No content