Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウドネイティブなデータベース TiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet

chibiegg
November 17, 2021

クラウドネイティブなデータベース TiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet

chibiegg

November 17, 2021
Tweet

More Decks by chibiegg

Other Decks in Technology

Transcript

  1. © SAKURA internet Inc.
    クラウドネイティブなデータベース
    TiDB の魅⼒
    2021-11-17 @ db tech showcase 2021
    さくらインターネット株式会社
    技術推進統括担当執⾏役員 兼 CISO 兼 クラウドネイティブ推進本部本部⻑
    江草 陽太

    View Slide

  2. 2
    ⾃⼰紹介
    @chibiegg
    江草 陽太
    【所属】
    • さくらインターネット株式会社
    執⾏役員 技術推進統括担当 兼 CISO
    • IzumoBASE株式会社 取締役
    【経歴】
    • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン
    • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻
    • 個⼈事業主 (⼤学⽣時代に開業)
    • ⼤阪⼤学⼤学院⼯学研究科中退
    【趣味】
    旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服

    View Slide

  3. © SAKURA internet Inc.
    分散データベース / NewSQL

    View Slide

  4. © SAKURA internet Inc.
    SQLをインターフェースとし
    強い整合性を持ち
    トランザクションをサポートする
    分散データベース (RDBMS) である
    NewSQLとは

    View Slide

  5. © SAKURA internet Inc.
    独自のインターフェースを持ち
    簡単で
    高いパフォーマンスを提供する
    分散データベース (not RDBMS) である
    トランザクションに対応せず、ゆるい整合性 (結果整合性) を持つ
    NoSQL (Not Only SQL)

    View Slide

  6. © SAKURA internet Inc.
    今まで通りSQLを使いつつ
    NoSQLのようなスケーラビリティや利便性を享受したい
    ||
    NewSQL
    それでもSQL (RDBMS) が使いたい

    View Slide

  7. © SAKURA internet Inc.
    • Spanner (Google、プロプライエタリ、独自)
    • CockroachDB (CockroachLabs、OSS 、PostgreSQL互換)
    • TiDB (PingCAP、OSS、MySQL互換)
    • YugaByteDB (Yugabyte、OSS、PostgreSQL互換)
    NewSQLの例

    View Slide

  8. © SAKURA internet Inc.
    TiDBの仕組み

    View Slide

  9. © SAKURA internet Inc.
    どのように分散RDBMSが動作するか
    簡単にご紹介します

    View Slide

  10. © SAKURA internet Inc.
    TiDBのコンポーネント
    https://docs.pingcap.com/tidb/stable/tidb-architecture から改変
    3要素が基本
    • PD (Placement Driver)
    • クラスタの頭脳
    • データ配置の決定
    • トランザクションの管理 etc.
    • TiDB (SQL Layer)
    • SQLを解釈し処理を⾏う
    • TiKV (Storage Layer)
    • レコードやインデックスを
    Key-Valueとして保存する

    View Slide

  11. © SAKURA internet Inc.
    テーブルとKey-Valueの関係
    https://docs.pingcap.com/tidb/stable/tidb-computing
    • データベースやテーブルの定義はKey-ValueとしてTiKVに格納されます
    • テーブル内の各行は一つのKey-ValueとしてTiKVに格納されます
    • t{TableID}_r{RowID} を利⽤する
    • t10_r1, t10_r2, t10_r3 のようなキー名が利⽤されます
    • Unique Indexは一つのKey-ValueとしてTiKVに格納されます
    • t{TableID}_i{IndexID}_indexedColumnsValue を利⽤する
    • t10_i1_indexedColumnsValue のようなキーに 値として RowID が格納されます
    • 他のIndexは Key として TiKVに格納されます
    • t{TableID}_i{IndexID}_{Value}_{RowID} を利⽤する
    • t10_i1_10_1, t10_i1_20_2, t10_i1_30_3 など

    View Slide

  12. © SAKURA internet Inc.
    TiFlashによる分析
    https://docs.pingcap.com/tidb/stable/tiflash-overview
    分析に適した TiFlash に保存を行い
    OLAP (オンライン分析処理) にも活用
    TiKVからTiFlashへ非同期にレプリケーションされ
    参照時には自動的に適切なストレージが選択されます

    View Slide

  13. © SAKURA internet Inc.
    ⼀般的なRDBMSとの違い (⼀部)
    旧来のRDBMS TiDB
    レイテンシ ⼩さい ⼤きい
    処理できるクエリ数 スペックによって固定 ノードを増やすことで増減可能
    容量 ローカルディスクによって固定 ノードを増やすことで増減可能
    台数 2台で冗⻑構成が動く 最低でも8台
    https://docs.pingcap.com/tidb/stable/hardware-and-software-requirements

    View Slide

  14. © SAKURA internet Inc.
    • メンテナンス作業が容易
    • ノード障害時のサービス影響が小さい
    • 容量やパフォーマンスの増減がスケールアウトによって可能
    TiDBのメリット≒分散システムのメリット

    View Slide

  15. © SAKURA internet Inc.
    さくらインターネットの紹介

    View Slide

  16. © SAKURA internet Inc.
    1
    会社名
    さくらインターネット株式会社
    (SAKURA internet Inc.)
    創業/設⽴ 1996年12⽉23⽇/1999年8⽉17⽇
    上場市場 東証⼀部(証券コード:3778)
    代表者 代表取締役社⻑ ⽥中 邦裕(Kunihiro Tanaka)
    所在地 ■本社
    ⼤阪府⼤阪市北区梅⽥1-12-12
    東京建物梅⽥ビル11階
    ■東京⽀社
    東京都新宿区⻄新宿7-20-1
    住友不動産⻄新宿ビル 32F
    ■福岡オフィス
    ■⽯狩データセンター
    事業内容 インターネットへの接続サービスの提供
    インターネットでのサーバの設置・管理
    インターネットを利⽤した情報提供サービス など
    グループ会社 アイティーエム株式会社
    株式会社S2i
    櫻花移動電信有限公司
    ゲヒルン株式会社
    ビットスター株式会社
    プラナスソリューションズ株式会社
    IzumoBASE株式会社
    BBSakura Networks株式会社
    会社概要

    View Slide

  17. © SAKURA internet Inc.
    「やりたいこと」を「できる」に変える
    さくらインターネットの企業理念
    “インターネット”とは⼈々にチャンスをもたらし
    創造性豊かな世界を作る⽂化です。
    私たちは“インターネット”で熱量を持って挑戦する
    全ての⼈の「やりたいこと」を「できる」に変えます。
    17

    View Slide

  18. © SAKURA internet Inc.
    お客様からの情報(データ/プログラム)をお預かりし、イン
    ターネットを介してお客様のユーザまで届けています。
    当社の役割
    3
    お預かりする⽅法として、さくらインターネットでは、⼤き
    く2種類の⽅法ががあります。

    View Slide

  19. © SAKURA internet Inc.
    オフィス、データセンター
    4
    ⽯狩データセンター
    東京⽀社
    東新宿データセンター
    ⻄新宿データセンター
    代官⼭データセンター
    本社
    堂島データセンター
    福岡オフィス

    View Slide

  20. © SAKURA internet Inc.
    当社のサービス
    5
    さくらのクラウド
    初期費⽤無料、トラフィック課⾦
    なしのクラウドサーバー。
    最適な環境をすぐに作成できます。
    さくらの専⽤サーバ
    PCle Flashストレージも選べる物
    理サーバー。
    オンプレミスの移⾏、ウェブシス
    テムの最適化におすすめです。
    ⾼⽕⼒コンピューティング
    機械学習、データ解析、ハイパワー
    マシンを必要とする全ての⽤途に。
    GPU搭載、妥協のない最⾼性能を提
    供します。
    データセンター(ハウジング)
    ⽇本最⼤規模の⼤容量・⾼速通信回
    線を確保。⾼セキュリティ、堅牢な
    設備環境を備えた⾃社運営データセ
    ンター。
    ImageFlux
    1枚の画像をもとに画像の拡⼤縮⼩、
    切り抜き、合成などによりデバイス
    に最適化された画像を簡単に⽣成し、
    ⾼速かつ⾼品質で配信します。
    Tellus
    Tellusは⽇本発のオープン&フリーな
    データプラットフォームです。衛⽣
    から取得できる情報含め、世界中あ
    りとあらゆるデータを集積していま

    View Slide

  21. © SAKURA internet Inc.
    さくらインターネットのお客様
    ◆インターネットサービス提供者
    ・コミュニケーションサービス
    ・動画配信サービス
    ◆ゲーム事業者
    ・スマホゲーム、PCゲーム
    ・対戦ゲーム
    ・データ配信
    ◆⼀般企業
    ・企業Webサイト、メールシステム
    ・業務系システム
    ◆個⼈
    ・ブログ
    ・各サービスのエンドユーザ
    21

    View Slide

  22. © SAKURA internet Inc.
    DX時代にめざす当社グループの役割
    22
    さくらインターネット 2021年3⽉期期末決算説明会資料より

    View Slide

  23. © SAKURA internet Inc.
    さくらインターネットでのTiDBの活⽤

    View Slide

  24. © SAKURA internet Inc.
    • sakura.io (LTEによるIoTプラットフォーム)
    • 「データストア(V2)」でTiKVを採⽤ (2018年ごろから)
    • 端末 (モジュール) からのデータを蓄積・検索に利⽤
    • さくらのクラウド (Labプロダクト)
    • 開発中の⼀部機能において管理システムにTiDBを採⽤
    • これまでならMariaDBやPostgreSQLを利⽤していた場⾯に導⼊
    さくらインターネットでの導⼊

    View Slide

  25. © SAKURA internet Inc.
    • メンテナンス作業が容易
    • ノード障害時のサービス影響が小さい
    • などなど…だが
    「TiDBがRDBMSとしてよくできている」
    TiDBのメリット≒分散システムのメリット

    View Slide

  26. © SAKURA internet Inc.
    さくらのクラウド
    エンハンスドデータベース (TiDB)

    View Slide

  27. © SAKURA internet Inc.
    1. 「さくらのクラウド」にログイン
    2. 作成したいデータベース名とパスワードを入力
    3. 即時に利用可能
    ⾃分でクラスタを作らなくても
    利便性を感じて欲しい

    View Slide

  28. © SAKURA internet Inc.
    データベースの作成

    View Slide

  29. © SAKURA internet Inc.
    情報の確認

    View Slide

  30. © SAKURA internet Inc.
    接続
    SSL対応!
    --ssl-mode=VERIFY_IDENTITY も使えます

    View Slide

  31. © SAKURA internet Inc.
    エンハンスドDB のメリット
    • すぐに使える
    • 5秒で作れる
    • 容量を気にせず利用できる
    • 使っている容量に応じて課⾦される
    • 最初から⼤きなディスクを⽤意しなくて良い
    • スペックを意識せずに利用できる
    • 同時接続数を後から増減できる
    • アップグレードやノード障害を意識しなくて良い
    • コネクションが切れてもすぐに再接続ができる

    View Slide

  32. © SAKURA internet Inc.
    私も使ってます

    View Slide

  33. © SAKURA internet Inc.
    • Golang + go-sql-driver/mysql + gorm で実装
    • Slack内のユーザー間で立て替えの管理を支援するBot
    Slack BotのDBとして

    View Slide

  34. © SAKURA internet Inc.
    • Python + Django で実装
    • ウェブフレームワークのORMをそのまま利用できる
    ひなたん写真館
    「フィルムデジタル化サービス」
    https://service.hinatan.net/
    ウェブアプリケーションのDBとして

    View Slide

  35. © SAKURA internet Inc.
    インターネットサービスのDBとして
    ご活⽤ください

    View Slide