Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
クラウドネイティブなデータベースTiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet
chibiegg
November 17, 2021
Technology
1
150
クラウドネイティブなデータベース TiDB の魅力@db tech showcase 2021 / PingCAP TiDB with SAKURA internet
chibiegg
November 17, 2021
Tweet
Share
More Decks by chibiegg
See All by chibiegg
分散DBを運用してみて〜TiDB の仕組みと実例〜 @ さくらの夕べ Tech Night #5 Online / About TiDB @ SAKURA internet Tech Nignt #5 Online
chibiegg
0
3
多言語情報をデータベースにどう持つか @さくらの夕べ Tech Night #3 Online / Solve N+1 on Django
chibiegg
0
100
ゼロトラストでもっと便利に、もっと安全に @ LOCAL Developer Day Online ’20 Security / Zero trust security model in SAKURA internet Inc.
chibiegg
1
420
さくらのクラウドとDocker Swarm Modeで誰でもわかる簡単デプロイ @ さくらの聖夜2019 / Simple Deployment with SAKURA Cloud and Docker Swarm
chibiegg
0
2.3k
Dockerで動かすISUCONポータルと問題 @さくらの夕べDocker/Kubernetesナイト #2 / ISUCON Portal and Problem with Docker
chibiegg
0
4k
グループ企業でSlack Enterprise Gridを導入する ~異なる認証手段で単一のSSOを実現~ / Using Slack Enterprise Grid in Group Companies
chibiegg
0
350
SPRESENSEで作るGPSロガー @ SPRESENSE勉強会 #2 / SPRESENSE GNSS Logger
chibiegg
1
1.3k
sakura.ioのアーキテクチャとネットワーク設計 / Architecture and network design of sakura.io
chibiegg
0
640
Mbed Platform に登録してもらおう
chibiegg
0
93
Other Decks in Technology
See All in Technology
AWSを使う上で意識しておきたい、クラウドセキュリティ超入門(駆け足版)
kkmory
0
180
フィンテック養成勉強会#24
finengine
0
330
DeFiChain Tech Talk - DFI Uniswap Staking, DeFi Options & DeFi Meta Chain
uzyn
0
110
プロダクトマネージャーの役割と育成、評価
middleokada
16
11k
ソフトウェアアーキテクチャの基礎: Software Architecture in a Nutshell
snoozer05
30
8.8k
Getting Started in Product Management
thatjeffsmith
0
110
eBPFで実現するコンテナランタイムセキュリティ / Container Runtime Security with eBPF
tobachi
PRO
5
1.7k
2022 COSCUP - GKE Backend Cluster 除雷分享
brentchang
0
120
セキュキャンを卒業してその後
kurochan
0
580
VS Code Meetup #21 - もう一度知りたい基礎編 - ファイル操作、コーディングの基本編
74th
0
190
IBM Cloud Festa Online 2022 Summer
1ftseabass
PRO
0
200
質の良い”カイゼン”の為の質の良い「振り返り」
shirayanagiryuji
0
130
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Building Your Own Lightsaber
phodgson
95
4.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
12k
Documentation Writing (for coders)
carmenintech
48
2.6k
KATA
mclloyd
7
8.8k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Rails Girls Zürich Keynote
gr2m
87
12k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Typedesign – Prime Four
hannesfritz
34
1.4k
Designing for humans not robots
tammielis
241
24k
Transcript
© SAKURA internet Inc. クラウドネイティブなデータベース TiDB の魅⼒ 2021-11-17 @ db
tech showcase 2021 さくらインターネット株式会社 技術推進統括担当執⾏役員 兼 CISO 兼 クラウドネイティブ推進本部本部⻑ 江草 陽太
2 ⾃⼰紹介 @chibiegg 江草 陽太 【所属】 • さくらインターネット株式会社 執⾏役員 技術推進統括担当
兼 CISO • IzumoBASE株式会社 取締役 【経歴】 • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻 • 個⼈事業主 (⼤学⽣時代に開業) • ⼤阪⼤学⼤学院⼯学研究科中退 【趣味】 旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服
© SAKURA internet Inc. 分散データベース / NewSQL
© SAKURA internet Inc. SQLをインターフェースとし 強い整合性を持ち トランザクションをサポートする 分散データベース (RDBMS) である
NewSQLとは
© SAKURA internet Inc. 独自のインターフェースを持ち 簡単で 高いパフォーマンスを提供する 分散データベース (not RDBMS)
である トランザクションに対応せず、ゆるい整合性 (結果整合性) を持つ NoSQL (Not Only SQL)
© SAKURA internet Inc. 今まで通りSQLを使いつつ NoSQLのようなスケーラビリティや利便性を享受したい || NewSQL それでもSQL (RDBMS)
が使いたい
© SAKURA internet Inc. • Spanner (Google、プロプライエタリ、独自) • CockroachDB (CockroachLabs、OSS
、PostgreSQL互換) • TiDB (PingCAP、OSS、MySQL互換) • YugaByteDB (Yugabyte、OSS、PostgreSQL互換) NewSQLの例
© SAKURA internet Inc. TiDBの仕組み
© SAKURA internet Inc. どのように分散RDBMSが動作するか 簡単にご紹介します
© 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として保存する
© 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 など
© SAKURA internet Inc. TiFlashによる分析 https://docs.pingcap.com/tidb/stable/tiflash-overview 分析に適した TiFlash に保存を行い OLAP
(オンライン分析処理) にも活用 TiKVからTiFlashへ非同期にレプリケーションされ 参照時には自動的に適切なストレージが選択されます
© SAKURA internet Inc. ⼀般的なRDBMSとの違い (⼀部) 旧来のRDBMS TiDB レイテンシ ⼩さい
⼤きい 処理できるクエリ数 スペックによって固定 ノードを増やすことで増減可能 容量 ローカルディスクによって固定 ノードを増やすことで増減可能 台数 2台で冗⻑構成が動く 最低でも8台 https://docs.pingcap.com/tidb/stable/hardware-and-software-requirements
© SAKURA internet Inc. • メンテナンス作業が容易 • ノード障害時のサービス影響が小さい • 容量やパフォーマンスの増減がスケールアウトによって可能
TiDBのメリット≒分散システムのメリット
© SAKURA internet Inc. さくらインターネットの紹介
© 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株式会社 会社概要
© SAKURA internet Inc. 「やりたいこと」を「できる」に変える さくらインターネットの企業理念 “インターネット”とは⼈々にチャンスをもたらし 創造性豊かな世界を作る⽂化です。 私たちは“インターネット”で熱量を持って挑戦する 全ての⼈の「やりたいこと」を「できる」に変えます。
17
© SAKURA internet Inc. お客様からの情報(データ/プログラム)をお預かりし、イン ターネットを介してお客様のユーザまで届けています。 当社の役割 3 お預かりする⽅法として、さくらインターネットでは、⼤き く2種類の⽅法ががあります。
© SAKURA internet Inc. オフィス、データセンター 4 ⽯狩データセンター 東京⽀社 東新宿データセンター ⻄新宿データセンター
代官⼭データセンター 本社 堂島データセンター 福岡オフィス
© SAKURA internet Inc. 当社のサービス 5 さくらのクラウド 初期費⽤無料、トラフィック課⾦ なしのクラウドサーバー。 最適な環境をすぐに作成できます。
さくらの専⽤サーバ PCle Flashストレージも選べる物 理サーバー。 オンプレミスの移⾏、ウェブシス テムの最適化におすすめです。 ⾼⽕⼒コンピューティング 機械学習、データ解析、ハイパワー マシンを必要とする全ての⽤途に。 GPU搭載、妥協のない最⾼性能を提 供します。 データセンター(ハウジング) ⽇本最⼤規模の⼤容量・⾼速通信回 線を確保。⾼セキュリティ、堅牢な 設備環境を備えた⾃社運営データセ ンター。 ImageFlux 1枚の画像をもとに画像の拡⼤縮⼩、 切り抜き、合成などによりデバイス に最適化された画像を簡単に⽣成し、 ⾼速かつ⾼品質で配信します。 Tellus Tellusは⽇本発のオープン&フリーな データプラットフォームです。衛⽣ から取得できる情報含め、世界中あ りとあらゆるデータを集積していま す
© SAKURA internet Inc. さくらインターネットのお客様 ◆インターネットサービス提供者 ・コミュニケーションサービス ・動画配信サービス ◆ゲーム事業者 ・スマホゲーム、PCゲーム
・対戦ゲーム ・データ配信 ◆⼀般企業 ・企業Webサイト、メールシステム ・業務系システム ◆個⼈ ・ブログ ・各サービスのエンドユーザ 21
© SAKURA internet Inc. DX時代にめざす当社グループの役割 22 さくらインターネット 2021年3⽉期期末決算説明会資料より
© SAKURA internet Inc. さくらインターネットでのTiDBの活⽤
© SAKURA internet Inc. • sakura.io (LTEによるIoTプラットフォーム) • 「データストア(V2)」でTiKVを採⽤ (2018年ごろから)
• 端末 (モジュール) からのデータを蓄積・検索に利⽤ • さくらのクラウド (Labプロダクト) • 開発中の⼀部機能において管理システムにTiDBを採⽤ • これまでならMariaDBやPostgreSQLを利⽤していた場⾯に導⼊ さくらインターネットでの導⼊
© SAKURA internet Inc. • メンテナンス作業が容易 • ノード障害時のサービス影響が小さい • などなど…だが
「TiDBがRDBMSとしてよくできている」 TiDBのメリット≒分散システムのメリット
© SAKURA internet Inc. さくらのクラウド エンハンスドデータベース (TiDB)
© SAKURA internet Inc. 1. 「さくらのクラウド」にログイン 2. 作成したいデータベース名とパスワードを入力 3. 即時に利用可能
⾃分でクラスタを作らなくても 利便性を感じて欲しい
© SAKURA internet Inc. データベースの作成
© SAKURA internet Inc. 情報の確認
© SAKURA internet Inc. 接続 SSL対応! --ssl-mode=VERIFY_IDENTITY も使えます
© SAKURA internet Inc. エンハンスドDB のメリット • すぐに使える • 5秒で作れる
• 容量を気にせず利用できる • 使っている容量に応じて課⾦される • 最初から⼤きなディスクを⽤意しなくて良い • スペックを意識せずに利用できる • 同時接続数を後から増減できる • アップグレードやノード障害を意識しなくて良い • コネクションが切れてもすぐに再接続ができる
© SAKURA internet Inc. 私も使ってます
© SAKURA internet Inc. • Golang + go-sql-driver/mysql + gorm
で実装 • Slack内のユーザー間で立て替えの管理を支援するBot Slack BotのDBとして
© SAKURA internet Inc. • Python + Django で実装 •
ウェブフレームワークのORMをそのまま利用できる ひなたん写真館 「フィルムデジタル化サービス」 https://service.hinatan.net/ ウェブアプリケーションのDBとして
© SAKURA internet Inc. インターネットサービスのDBとして ご活⽤ください