TiDB Cloudから読みとくデータベース(RDB・NoSQL・NewSQL) / Database to read from TiDB Cloud
by
sora
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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