TiDB - A Globally Scalable HTAP Database

https://github.com/pingcap/tidb 2015 年成立于北京; 2018年完成 5000万 美金 C 轮融资; 150+ 员工,在北京、上海、广州、深圳、成都、杭州和硅谷有分支机构; 核心产品研发均来自国内外互联网及数据库研发领域一线;

PingCAP 是国内第一家开源的新型分布式 NewSQL 数据库公司,秉承开源是基础软件的未 来这一理念, PingCAP 持续扩大社区影响力,致力于前沿技术领域的创新实现。其独立研发 项目 TiDB 灵感来自于 Google Spanner/F1,具备「分布式强一致性事务、在线弹性水平扩 展、故障自恢复的高可用、跨数据中心多活」等核心 NewSQL 特性,是大数据时代理想的数 据库集群和云数据库解决方案。 数据库发展史简介 数据库技术发展演进(1/2)

2008 年以前 2008 年至 2013 年 2013 年以后 单机关系型(SQL) 分布式非关系型(NoSQL) 分布式关系型(NewSQL) • 背景:应用最为广泛的数据库;能 • 背景:随着搜索 / 社交的发展,数 • 背景:随着互联网向银行、电信、电 很好的解决复杂的数据运算及表 据量爆发增长,传统数据库高成 力等方向的渗透,传统行业数据量 间处理;多用于银行、电信等传 本,无法线性扩容问题日益突显 迅速提升,需要同时满足低成本、线 统行业复杂业务逻辑场景中,以 ;分布式及 NoSQL 开始快速发 性扩容及能够处理交易类事务的新 Oracle 为代表 展,如 MongoDB,HBase 型数据库,大数据的存储刚需不可 避免

• 挑战:成本高,随着数据量增加, • 挑战:擅长简单读写,无法处理 • 挑战:基于 Google Spanner/F1 论 只能通过购买更贵更好的服务器 交易类数据及复杂业务逻辑的特 文,基础软件最前沿的领域之一,技 ;无法线性扩容,海量数据下处 性限制其在非互联网领域的发展 术门槛最高 理能力大幅下降

NewSQL: 兼具 NoSQL 扩展性又不丧失传统关系型数据库 ACID 特性的分布式数据库 数据库技术发展演进(2/2)

GFS BigTable VoltDB MapReduce OceanBase TiDB / TiKV SQL Network Model Informix Greenplum Hierarchical Model Teradata Vertica Sybase Spanner / F1 Ingres@UCB

1960s 1970 1980 1990 2000 2010 2020 Oracle Hana SQL Server System R@IBM MySQL Redis CockroachDB PostgreSQL Sharding HBase E.F. Codd DB2 Cassandra Relational Model MySQL MongoDB Google - 大规模分布式计算领域的领跑者

2003 2004 2006 2012 2013 GFS MapReduce BigTable Spanner F1

BigTable Map HBase Map F1 Data TiDB Reduce Reduce Flow Spanner TiKV GFS HDFS

Colossus

NewSQL | TiDB

Google 十年前基于内部分布式处理框架发表的三篇论 Google 内部新一代分布式处理框架,于 12/13 年发表相关论 文奠定了大数据分析处理基石。 文,奠定下一代分布式 NewSQL 的理论和工程实践基石。 开源社区以此为基础打造了 Hadoop. PingCAP 以此为基础打造了 TiDB & TiKV. Google Spanner | F1 - 第一个真正意义上 NewSQL 数据库

● 全球级分布式关系型数据库,数十万机器组成一个超大的数据库集群

○ Spanner - 有状态分布式 Key-Value 数据库

○ F1 - 无状态分布式 SQL 解析器

● 支撑 Google Adwords、Wallet 等核心金融业务

● 根据业务压力,水平无限扩展或者伸缩,底层七副本,保证任意一个数

据中心宕机,底层自动切换,上层业务不中断,无需人工介入

● 2017年2月,Google 在其 GCP 公有云平台正式提供 Cloud Spanner

服务,并于5月 GA。 TiDB Today TiDB:Google Spanner 和 F1 的开源实现

新一代分布式关系型 NewSQL 数据库 TiDB

● 基于 2013 年 Google Spanner / F1 论文 ● 基于 2014 年 Stanford 工业级分布式一致性协议实现 Raft 博士论文

核心 NewSQL 特性概括:

水平线性扩展、强一致分布式事务、故障自恢复的高可用(非主从)、真正跨数据中心多活

● PingCAP 是全球仅有的在该领域进行技术创新的两家公司之一(对标美国 CockroachDB ) ● 体系架构完全不同于传统的单机型数据库的理论,真正意义上的分布式架构 ● 完全从头打造,并非基于 MySQL、PG 或任何数据库中间件进行改造、封装 TiDB 已成为数据库领域国际顶级开源项目(1/9)

TiDB on Github (17300+ stars / 240+ 2018.9 TiDB 被评为 Best of Open Source Software contributors) Award 2018 https://github.com/pingcap/tidb https://www.infoworld.com/article/3306454/big-data/the- best-open-source-software-for-data-storage-and-analytic s.html#slide10 TiDB 是全球最成熟稳定的 Google Spanner / F1 的开源实现,是基础软件领域的重大创新,具有极高的工 程难度,TiDB 既不是数据库中间件,也不是 SQL-On-Hadoop,是真正意义上的 NewSQL。 TiDB 已成为数据库领域国际顶级开源项目(2/9)

2018.7 TiDB 入选 Big Data Landscape 2017.6 TiDB 入选 CNCF Landscape

http://mattturck.com/wp-content/uploads/ https://github.com/cncf/landscape 2018/07/Matt_Turck_FirstMark_Big_Data _Landscape_2018_Final.png

TiDB 是全球最成熟稳定的 Google Spanner / F1 的开源实现,是基础软件领域的重大创新,具有极高的工 程难度,TiDB 既不是数据库中间件,也不是 SQL-On-Hadoop,是真正意义上的 NewSQL。 TiDB 已成为数据库领域国际顶级开源项目(3/9)

CNCF 简介 CNCF - Cloud Native Computing Foundation 云原生计算基金会 ● Linux 基金会 下属全球性组织 ● 专注于领导和推动全球开源云原生计算领域技术生态的普及和可持续化发展 ● 是未来 5 年 全球云计算生态的权威顶层治理机构及核心推 动者 ● 已经孵化出了诸如 之类的顶级开源云计算项目 ● 已建立和联合了庞大的云原生计算相关开源项目和成员机构 TiDB 已成为数据库领域国际顶级开源项目(4/9)

2018年8月28日,TiKV 被全球 知名云原生计算基金会 (CNCF) 接纳为托管项目,这是 CNCF 基金会全球范围内接纳的第一 个 KV Database 项目。 https://www.cncf.io/blog/2018/0 8/28/cncf-to-host-tikv-in-the-sa ndbox/

TiKV 项目地址由 http://github.com/pingcap/tikv 变为 http://github.com/tikv/tikv TiDB 已成为数据库领域国际顶级开源项目(5/9) 多次海外分享 海外媒体广泛报道 ● Percona Live Europe 2018 @ Frankfurt Germany Introducing the Kubernetes Operator ● Boston Apache Spark Meetup 2018 @ Cambridge for TiDB ● Big Data Application Meetup 2018 @ GSV Labs 5 Questions for Evaluating a ● Bay Area NewSQL Database Meetup 2018 @ Redwood Distributed Database ● RustConf 2018 @ Portland PingCAP eyes US market with ● Boss Workshop 2018 @ Rio database targeting operational and analytical workloads ● Rust Belt Rust 2018 @ Wyndham Garden Chaos Tools and Techniques for ● IEEE Infra Conference 2018 @ San Francisco Testing the TiDB Distributed NewSQL ● FOSDEM 2018 @ Brussels Database ● Percona Live 2018 @ Santa Clara TiDB: Performance-tuning a distributed ● Spark + AI Summit 2018 @ San Francisco NewSQL database ● Open Source Summit Japan 2018 @ Tokyo The Hybrid Database Capturing Perishable Insights at Yiguo ● VLDB 2018 @ Rio ● Kubecon + CloudNativeCon 2018 @ Seattle Tick or Tock? Keeping Time and Order in Distributed Databases ● Percona Live 2017 @ Santa Clara ● Cloud + Data Tech Summit 2017 @ Seattle TiDB Brings Distributed Scalability to SQL ● Percona live 2016 @ Amsterdam ● HKOSC 2016 @ Hongkong TiDB 已成为数据库领域国际顶级开源项目(6/9)

多家机构联合参与开发 TiDB Cloud TiDB

● 韩国三星研究院 ● AWS ● 美团点评 ● Google Cloud ● Mobike ● Microsoft Azure ● CoreOS

● Databricks ● Facebook

Rust 社区顶级项目

● 除 Firefox 之外最大的开源项目 TiDB 已成为数据库领域国际顶级开源项目(7/9)

❏ RocksDB (Facebook) ❏ Gravity (Mobike) ❏ 26 PRs 25 merged ❏ A Data Replication Center ❏ Fix bugs(8), improve ❏ https://github.com/moiot/gravity performance(4), new feature(1), others(10+) ❏ etcd (CoreOS) ❏ Titan (美图) ❏ 6 PRs 5 merged ❏ A Distributed Redis Protocol ❏ Improve read(2), improve drop Compatible NoSQL Database proposal(1), improve API(2), fix ❏ https://github.com/meitu/titan panic(1), fix prevote(1) ❏ grpc-rs / raft-rs / rust- / ❏ Soar (小米) parser (PingCAP) ❏ SQL Optimizer And Rewriter ❏ https://github.com/xiaomi/soar TiDB 已成为数据库领域国际顶级开源项目(8/9)

TiDB Stars Increasing Trend TiDB Contributors Increasing Trend TiDB 已成为数据库领域国际顶级开源项目(9/9)

2018年 TiDB Repo(master)PRs 统计,超高速迭代新 feature TiDB 得到了全球用户的高度关注

● 2015 年 5 月 在 GitHub 创建项目; ● 2016 年 6 月 发布 Beta 版; ● 2016 年 12 月 发布 RC 版本; ● 2017 年 10 月 发布 1.0 GA 正式版; ● 2018 年 4 月 发布 2.0 GA 正式版, 重构 SQL 优化器,OLAP 性能大幅度提升,同月发布 TiSpark 1.0 GA 正式版; ● 2018 年 11 月 发布 2.1 GA 正式版,性能再次大幅提升; ● 高速迭代开发和产品改进,上万次重要代码递交和更新; ● 截至 2018 年 9 月,已经有 300+ 客户将 TiDB 用于线上生产环境。进行测试的客户超过 1400 家, 涉及互联网、游戏、银行、保险、证券、航空、制造业、电信、新零售、政府等多个行业,包括美国、欧 洲、日本、东南亚等海外客户。 ● 集群规模在数十台到数百台,典型数据量规模在 5000万+/单表 至 2000亿+/单表不等。 TiDB 部分上线客户(Apr 2019) TiDB 部分用户公开案例(Mar 2019) 互联网 ● 【美团点评】http://t.cn/EAFCqhl ● 【爱奇艺】http://t.cn/EvErsc1 ● 【一面数据】http://t.cn/RT9r5di ● 【今日头条】http://t.cnEMf ● 【易果生鲜】http://t.cn/RTYVhzH ● 【猿辅导】http://t.cn/RTKnKSX ● 【转转(一)】http://t.cn/R1MAXEq ● 【同程旅游(一) 】http://t.cn/RmXeNKR ● 【凤凰网】http://t.cn/RHRQfNT ● 【转转(二)】http://t.cn/EfuJ4vi ● 【同程旅游(二) 】http://t.cn/EAmsF08 ● 【Mobikok】http://t.cn/Rm1F6lg ● 【摩拜单车(一)】http://t.c/RnLfn/RT8FbP6 ● 【去哪儿】http://t.cn/RTKnsL7 ● 【二维火】http://t.cn/R8bXM2f ● 【摩拜单车(二)】http://t.cn/EVjPYgj ● 【Shopee】http://t.cn/EbvJYl4 ● 【客如云】http://t.cn/R1wSEJH ● 【小米科技】http://t.cn/Ey2xCDK ● 【火星文化】http://t.cn/EAuvfcs ● 【乐视云】http://t.cn/Rnv3IVs ● 【零氪科技】http://t.cn/REj7tSv ● 【G7】http://t.cn/RQVePoX

金 融 ● 【北京银行】http://t.cn/RnY8fGn ● 【上海证券交易所】http://t.cn/EfuJs4D ● 【量化派】http://t.cn/EUZ8Q3o ● 【中国电信翼支付】http://t.cn/R3Wd9p3 ● 【360金融】http://t.cn/RTKnTev ● 【Ping++】http://t.cn/RE5xYKn

制造业 ● 【海航】http://t.cn/REXx0Qe ● 【特来电】http://t.cn/RrHzUGW ● 【丰巢科技】http://t.cn/EAuvLIv 其他大型企业 ● 【某电信运营商】http://t.cn/RTYWADg ● 【盖娅互娱】http://t.cn/RT9r7hx ● 【西山居】http://t.cn/RBP12zj ● 【万达网络】http://t.cn/RTKm6ds ● 【威锐达测控】http://t.cn/R3CrviR ● 【游族网络】http://t.cn/R8k4AWB ● 【FUNYOURS JAPAN】http://t.cn/Rnoab5D TiDB 核心特性 TiDB 核心特性 (1/2)

● 「支持分布式事务和强一致性的」水平弹性扩展

无论多大的数据量,只需 轻松增加节点即可解决,业务开发人员再也无需考虑分布式事务、数据的强 一致性等问题,简单的把 TiDB 当作一个无限扩展的 MySQL 使用即可。极大的简化程序设计,降低运 维复杂度。是传统数据库中间件(Cobar / TDDL / MyCAT / KingShard)、数据库分库分表等 Sharding 方案非常优雅而理想的替换方案。

● 「数据量越大,读写越快的」高性能并行集群处理能力

通过简单的增加节点,提供无上限的、 线性扩展的的高并发、高吞吐的集群处理能力。TiDB 独有的分 布式并行架构,在大数据量下(例如千万 级别以上),随机写入和复 杂查询性能远远优于 MySQL(提升 1~2 个数量级)。

配合 TiSpark,可以提供复杂 OLAP 能力,提供一体化的 HTAP (Hybrid Transaction/Analytical Processing)解决方案。 TiDB 核心特性 (2/2)

● 「真正金融级 高可用和故障自恢复的」跨数据中心多活

不同于传统数据库的主从复制方案, TiDB 基于 Raft 多数派分布式选举算法,自动完成多副本写入、 数据分片(region)的拆分、聚合、重分布, 是目前唯一能100%保证跨数据中心数据强一致性的数据库 ,同时保证在任意数据中心宕机或者集群故障 时,数据100%不丢失且自动切换,真正意义上实现业务 连续性与无人值守的运维自动化。

● 「可自适应调度的」真正的云数据库(DBaaS)

通过增加节点即可获得无限数据存储能力,从架构层面轻松支持多个业务系统底层数据打通,便于集 中管控,降低运维成本,避免信息孤 岛,提升数据价值。

配合 Kubernetes、、多租户等技术,实现数据层面资源最有效的动态分配和调度,大幅提高数 据中心资源利用率,降低成本。是适配超大 规模数据中心的真正的云数据 库。 TiDB 核心技术精读 TiDB 整体架构 TiDB - 开源 F1 实现

● 无状态的分布式 SQL 层 ● MySQL 协议兼容 ● 针对分布式场景的执行计划,优化器 ○ 计算下推 / MPP ● Online DDL ○ 业务不中断,进行表结构变更 ● 复杂计算 - JOIN ○ Hash / Sort Merge/ Index Lookup JOIN ○ 引擎自动选择,业务开发可通过 Hint 干预 TiKV - 分布式存储引擎 (1/2)

● TiKV 是一个分布式且支持事务的 Key-Value 存储引擎 ● 数据存储在 RocksDB 中 ● 节点之间通过 Raft 协议 保持数据一致性 ● 事务模型采用 Google 的 Percolator

API (gRPC) Transactional KV API (https://github.com/pingcap Transaction /tidb/blob/master/cmd/ben chkv/main.go) TiKV MVCC Raft (gRPC) Raw KV API (https://github.com/pingc RocksDB ap/tidb/blob/master/cmd /benchraw/main.go) TiKV - 分布式存储引擎 (2/2) RPC (gRPC) Transaction 存储空间被划分为 ● Region MVCC ○ Region: 连续的 Key-Value 段 Raft ● 数据以 Region 为单位进行存储、计算、复制 RocksDB

Region 1:[a-e] Region 1:[a-e] Region 2:[f-j] Region 1:[a-e]

··· Region 3:[k-o] Region 2:[f-j] Region 3:[k-o] Region 2:[f-j] Raft group Region 3:[k-o] Region 4:[p-t] Region 4:[p-t] Region 5:[u-z] Raft group Region 5:[u-z] Region 4:[p-t] Region 5:[u-z] ...... TIKV Instance TiKV Instance TiKV Instance TiKV Instance TiDB 生态工具 TiDB 生态工具(1/2)

MySQL Connector/C,MySQL Connector/C++,MySQL Connector/J,MySQL Connector/Net,MySQL Connector/ODBC,MySQL Connector/Python,MySQL C API,MySQL PHP API,MySQL Perl API,MySQL Python API,MySQL Ruby APIs 数据库驱动及 ORM Java ORM:Mybatis,Hibernate 等 应用及客户端兼容 Python ORM:SQLAlchemy 等 Golang ORM:Beego orm、gorm、sqlx、gorp、xorm 等

TiDB 是 MySQL 兼容的,MySQL 社区所有的周 边工具都可以使用 第三方开发/管理工具 Navicat,MySQL Workbench,Kettle 等支持 MySQL 协议接入的主流工具

数据迁移 (逻辑) 全量导出:建议使用 Mydumper 进行 MySQL 数据库的导出(多线程导出) Mydumper / Loader 全量导入:建议使用 PingCAP 提供的 Loader 进行数据导入(支持断点续传、错误重试)

数据加载 (物理) 高性能数据加 载:将 MyDumper 导出的数据文件,以流的方式 转换成 KV 物理存储格式, TiDB Lightning 直接加载到存储引擎底层,实现最快速度的数据 导入。

数据交换工具 TiDB DM 实时读取和解析 MySQL 的 Binlog 数据流,并同步到 TiDB。TiDB 像 MySQL 的 数据实时同步 一个 Slave 一样工作,方便用户进行同步测试、验证、平滑上线。TiDB DM 支持从 MySQL TiDB DM 分库分表进行同步,包括 Sharding DDL、主键转换合并等特性,运 维管理工具友好, 监控 (Data Migration) 同步进度,异常问题在线处理。

数据实时备份 TiDB 提供自身的 Binlog 输出,实时生成数据增量 备份,也可以实时同步数据到 MySQL、 TiDB Binlog TiDB 或者其他数据存 储,给用户最大的自由度,避免 Vendor-Lockin。 TiDB 生态工具(2/2)

分布式实时复杂分析引擎 TiSpark 是 PingCAP 推出的为了解决用户实时复杂 OLAP 需求的产品。 TiSpark (行存,基于 TiKV) 借助 Spark 平台本身的优势,同时融合 TiKV 分布式集群的 优势,无需 ETL 过程,和 TiDB 一起为用户一站解决 HTAP (Hybrid Transactional / Analytical Processing)需求。 高性能分析引擎 TiFlash 是 PingCAP 推出的为了解决用户极速实时复杂 OLAP 需求的产品。 独立极速实时复杂分析引擎

TiFlash 通过结合 Spark 引擎,与独立的高性能列式存 储引擎的分布式架构,提供极速性能的 实 (列存) 时复杂 OLAP 分析计算需求。

Cloud TiDB 是 TiDB 和公有云进行整合后的产品形态,借助容器和 Kubernetes 的强 大编排能力,以及由 PingCAP 开源的 TiDB-Operator 组件,为 TiDB 在云上的部署和 运维提供强大的管理能力,极大提高 产品易用性。 数据库云平台 数据库云 Cloud TiDB 借助 TiDB-Operator 引擎,使得 Kubernetes 可以更有效的 调度有状态的分布式数据 库 服务,融合 TiDB 的专业领域知识,可以快速与公有云 / 私有云进行整合落地,提供 一体 化的 DBaaS 服务。 TiDB 生态工具:Data Migration (数据迁移和同步工具)

● 整合 Syncer / Loader / Mydumper 的一体化管理工具 ● 从 MySQL 到 TiDB 的一键数据迁移 + 实时同步 ● 支持从 MySQL 分库分表进行同步,包括 Sharding DDL、主键转换合并等特性 ● 运维管理工具友好,监控同步进度,异常问题在线处理

TiDB Cluster

TiDB Cluster

MySQL MySQL MySQL (master) (master) (master)

binlog binlog binlog TiDB 生态工具:TiDB-Binlog(数据实时备份)

● 收集和转换 TiDB 产生的 Binlog,吞吐能力可以通 过增加 pump 节点横向扩展 ● 生成实时增量备份文件 ● 实时同步数据到 TiDB / MySQL / TheFlash ● 支持输出到 Kafka,并且提供开源的 binlog 解析工具,满足客户定制化需要

Pump Cluster

PD Third-party Pump Drainer Downstream bucket Platform

TiDB Drainer TheFlash Server Pump bucket

TiDB Drainer OR Cluster MySQL TiDB Pump bucket Server

… ... Incremental Backup … ... TiDB 生态工具:TiDB-Lightning(极速物理加载工具)

● 相对 SQL 方式加载,提供 10x 导入速度 ● 支持 MyDumper 数据格式作为导入数据源 ● 完备的监控界面,可以查看导入进度显示 ● 支持断点续传和导入数据校验

TiDB PD TiKV MySQL Server Server Server

mydumper ingest SST file

TiDB TiKV TiKV Lightning Importer Server kv stream 全量文件 ingest SST file

TiKV Server TiDB 生态工具:TiSpark(实时复杂分析和查询)

● 通过实现索引支持、区间裁剪、计算下推等独有功能,使 Spark 无缝智能接入 TiDB / TiKV,Spark 整 个生态都可以接入 TiDB 集群。 ● 无需 ETL 过程,提供实时分析,复杂 OLAP 分析查询能力。

Spark Driver gRPC Placement TiSpark Driver (PD) retrieve data location

Spark Exec Spark Exec Spark Exec TiSpark TiSpark TiSpark

gRPC retrieve real data from TiKV

TiKV TiKV TiKV TiKV TiKV

Distributed Storage Layer TiDB 生态工具:TiFlash(独立极速实时复杂分析引擎)

● 一套支持高速更新的列存分析引擎,通过实时同步 TiDB 的数据,它提供了比行存的 TiSpark 更高的速度,更好的资源隔离 ● 通过 TiDB Binlog 实时无缝同步数据,让数据在设定的延迟内(秒 - 分钟级)到达 ● 存储分离架构让系统更好扩展,更适合云端部署 TiDB 生态工具:Cloud TiDB 云数据库方案

Cloud TiDB 是基于: ● TiDB 数据库 ● TiDB Cloud Manager ● TiDB Dashboard ● TiDB-Operator ● Kubernetes

打造的商业数据库云解决方案 TiDB 生态工具:TiDB-Operator(开源云原生调度接口)

● 弥补和扩展 Kubernetes 对于有状态服务管理的能力 ● 实现 Kubernetes 云环境中对 TiDB 的高级调度管理能力 ● 轻松整合公有云 / 私有云,提供 DBaaS 服务

● Create TiDB-Operator ● Rolling update ● Scale in/out ● Failover ● Backup/Restore

CRD

Kubernetes

项目开源地址:https://github.com/pingcap/tidb-operator TiDB 生态工具:TiDB-Operator(开源云原生调度接口)

● Kubernetes 包管理能力支持 ● Kubernetes 环境安全的动态扩缩容 TiDB 集群 ● 滚动升级 TiDB 集群 ● 自动监控 TiDB 集群 ● 多租户支持 ● 高级故障切换 ● TiDB 周边工具整合

产品发展路线图:https://github.com/pingcap/tidb-operator/blob/master/ROADMAP.md TiDB 性能测试及解读 TiDB 性能测试:sysbench 测试

详细测试报告及解读请参见 https://github.com/pingcap/docs-cn/blob/ma ster/benchmark/sysbench.md TiDB 性能测试:扩展性测试

详细测试报告及解读请参见 https://github.com/pingcap/docs-cn/blob/ma ster/benchmark/sysbench.md TiDB 性能测试:TPCH 对比测试 (TiDB 2.0 vs TiDB 1.0)

详细测试报告及解读请参见 https://github.com/pingcap/docs-cn/blob/ma ster/benchmark/tpch.md TiDB 性能测试:Sysbench 对比测试(TiDB 2.1 vs TiDB 2.0)

详细测试报告及解读请参见 https://github.com/pingcap/docs-cn/blob/ma ster/benchmark/sysbench-v3.md TiDB 性能测试:TPCH 对比测试 (TiDB 2.1 vs TiDB 2.0)

详细测试报告及解读请参见 https://github.com/pingcap/docs-cn/blob/ma ster/benchmark/tpch-v2.md TiDB 典型应用场景 主打场景1:纯 OLTP: TiDB 产品核心价值点和主打场景 数据量剧增(90%)或者并发非常高(10%),即将分库分表 ,TiDB 平滑迁移,省时间、省成本、不用改业务、有原生在线

TiDB 核心优势 TiDB 机制 传统 OLTP 现状 传统 OLAP 现状 ddl、对业务逻辑频繁改动的项目非常友好。

主从无法强一致 核心价值,企业前台 的核心生产系 强一致高可用 TiDB mission critical Raft (O-RAC 例外) 无需求 统。 多副本选主 强一致跨机房高可用 主从复制无法做到 北京银行、美团、今日头条、转转、mobike、游族 etc 水平扩展 增加 TiKV 存不下 擅长 中等并发就扛不住,且无法 高并发写入 + 更新 增加 TiDB 扛不住 更新 主打场景2:HTAP = 实时写入 + 实时更新 + 实时分析

引入新系统增加学习、运 高度兼容 MySQL - - ● 有较大数据写入且 update 的需求(实时) 维、招聘成本 ● 轻中量(TiDB) / 中量(TiSpark) / 重量(The Flash) 分析需求 超越 MySQL 的 OLAP 性能 强大的优化器 没有分析能力 更偏向于后台分析 ● MySQL 接口 + Spark 接口打天下

一个数据库平台,一套接口,无需 ETL 过程,支持高并发 的 写+更新,轻中量级的查,重量复杂分析。

已分库分表后的汇聚查询:同程旅游、mobike、凡普; 实时数仓:mobike、易果生鲜、凡普; 一套技术栈覆盖前台+中台场景 实时风控:万达、360金融; 实时报表:二维火、餐行健、客如云、美味不用等; TiDB 典型应用场景

● 海量数据高并发 OLTP 系统 ○ 不再分库分表,不再使用妥 协的数据库中间件,业务不再受制于基础架构 ● 海量数据高性能实时分析 ○ 兼容 MySQL,大数据量下比 MySQL 快 1~2 个数量级的融合 OLTP 和 OLAP 的 HTAP 数据库 ● 多源高吞吐汇总与实时计算 ○ 多源(数十至数百异构数据源)高吞吐(数十万 QPS)汇聚写入 AD-Hoc 准实时查询 ● 实时数仓

○ 通过 TiSpark 无缝连接 Spark,无需 ETL,提供实时的大规模复杂 OLAP 分析查询能力。 ● 金融级别多数据中心多活

○ 故障自动恢复、无需人工介入的真正意 义上的高可用 ● 云数据库(DBaaS) ○ 同 Kubernetes、Docker 等容器技术完美整合,自动调度有状态的服务 典型应用场景(1)海量数据高并发 OLTP 系统

SQL Layer 数据库中间件 Transaction API MVCC 大数据时代,当单机数据库容量 及处理能力达到瓶颈时,由于没 有完美的分布式解决方案, 业界 [0-10] [10-20] [20-30] [30-40] 普遍采用妥协的数据库 Proxy + Sharding 方案

DB Proxy & Sharding NewKV NewSQL | TiDB DB Proxy&Sharding vs TiDB

类型 传统数据库中间件 / 分库分表 TiDB

强一致的分布式事务 不支持 支持

水平扩展 不支持 支持

复杂查询 不支持 支持 (JOIN/ GROUP BY/...)

无人工介入的高可用 不支持 支持

业务兼容性 低 高

多维度支持 不友好 友好

全局 ID 支持 不友好 友好

机器容量 很浪费 随需扩容

注:强烈建议阅读这篇文章:http://t.cn/RTDvTEt 详细介绍了数据库 Sharding+Proxy 的成本问题 TiDB 上线客户 - 美团点评

美团数据库现状: 美团下一代的数据库:

● MySQL + NoSQL ● 未来,新美大业务几十倍的增长目标,需要更强大 ● 数千服务器 + 万亿级请求数/天 的技术支持,数据库是关键基础组件之一 ● 自研了两套 NoSQL 、两套 MySQL Proxy ● 所以需要新一代分布式关系型数据库 NewSQL > ● 拥有多个业内顶级存储开发、数据库内核开发小组 MySQL + NoSQL ● 新美大 NewSQL 选择:TiDB

今年计划: 深度合作: ● 成立专门 DBA 小组来进行 TiDB 试点、推广 ● 上线数百服务器,主要业务线全覆盖 ● 成立专门基础研发小组来进行 TiDB 开发合作 ● 全职人力投入 ● 已经上线 10 个业务线,近 200 个物理节点,覆盖外 ● n+ contributors & committer 卖、配送、酒旅、金融、打车、基础平台 等

明年计划: 案例文章:

● Titan ● 美团点评携手 PingCAP 开启新一代数据库深度实 ● Cloud TiDB (based on Docker & K8s) 践之旅 ● TiDB HTAP Platform ● 文章链接:http://t.cn/EAFCqhl ● 物理备份方案,跨机房多写 TiDB 上线客户 - 转转(All in TiDB)

业务现状: 解决方案:

● MySQL + MongoDB ● All in TiDB ● 大数据量性能瓶颈 ● 已经上线 14 套 OLTP 系统,包括核心的 IM、交易、 ● 业务侵入 - 被迫 shading 用户、商品、保买、拍卖等 ● 业务多维度成本、复杂度叠加增加 ● 待上线近 10 套,最终完成 90% 系统上线 ● 运维成本 ● 几十T 数据量、千亿级表、万级 TPS ● 故障切换时间长 & 高可用方案

案例文章: 实施效果: ● TiDB 整体响应延时非常稳定,不受业务流量高峰影响 分布式数据库在转转的应用实践 ● TiDB ● TiDB/TiKV通过线性扩容无缝提升吞吐量 文章链接: ○ http://t.cn/R1MAXEq ● 微信小红点、世界杯促销承担 5 倍容量增长 ● TiDB 在转转的业务实战 ○ 文章链接:http://t.cn/EfuJ4vi TiDB 上线客户 - Mobike 核心订单系统(OLTP)

业务现状: 实施效果:

● 核心订单系统 Sharding 方案已经无法继续支撑摩 ● 使用 TiDB 以后,弥补了 MySQL 单机容量上限、 拜快速增长的订单量 传统 Sharding 方案查询维度单一等缺点 ● 单库容量上限、数据分布不均 ● 集群水平扩展变得更容易 ● 为业务提供多维度的查询

解决方案: 案例文章:

● 使用 TiDB 替换了原有的 Sharding 方案 ● TiDB在摩拜单车在线数据业务的应用和实践 ○ 文章链接:http://t.cn/RT8FbP6 ● TiDB 在摩拜单车的深度实践及应用 ○ 文章链接:http://t.cn/EVjPYgj 典型应用场景(2)海量数据高性能实时分析

TiDB 可以提供可扩展的、无上限的实时写入能力,同时,TiDB 独有的强大的分布式查询引擎可 提供比 MySQL 快 1~2 个数量级的复杂查询性能,用户可将 TiDB 用于各种实时分析场景

实时写入 实时分析

分析 Application Server 报表

风控

TiDB 集群 OLAP 性能:MySQL vs TiDB

TiDB 实现了多种物理算子并尽可能并行化,使得 TiDB 在大数据量下的复 杂查询性能会远优于 MySQL

OLAP MySQL TiDB

并行扫表/索引 不支持 支持

分布式聚合 不支持 支持

并行 Join 不支持 支持

Spark SQL* 不支持 支持

* 无需进行 ETL 和数据搬运,在 TiDB 平台上统一无延迟处理多种 Workload,让数据分析,推荐系统,报表等多种大数据 和OLAP 场景和 OLTP 平台无缝结合,并减轻数据运维的负担 典型应用场景(3)多源高吞吐汇总与实时计算

Syncer 汇总查询

业务系统 A / 微服务 A’ TiDB 可以通过 Syncer 工具将原先孤 Syncer 立的各个业务系统(或微服务系统)实 时同步到一个巨大的 TiDB Slave 集 业务系统 B / 微服务 B’ 群,然后用简单的 SQL 即可实现跨库 的实时业务查询。 Syncer

TiDB Slave 集群

业务系统 C / 微服务 C’

可支撑数十万 QPS TiDB 上线客户 - 同程旅游 火车票/飞机票分析系统

业务现状: 解决方案:

● 同程旅游网站的火车票后台订单库,连接在微信九宫格 ● 使用 TiDB 实时同步火车票/飞机票业务的 MySQL 里,承载 7*24 小时火车票/飞机票订票业务。 数千个分片,在 TiDB 中进行关联查询。 ● MySQL 中间件方案承载业务订单,数千个分片。 ● MySQL 主库只能进行 OLTP 业务,分析能力较弱 实施效果:

● 热点时间,分析工作不敢在 MySQL 中间件主库进行 ● 使用 TiDB 以后,火车票/飞机票的分析不影响主库 ● 集群吞吐/计算能力强悍,春节等节日期间运行稳定

● 随着企业成长带来的基础设施压力只需要简单增加 x86 机器就可以解决。

案例文章:

● TiDB 在同程旅游的应用 ● 文章链接:http://t.cn/RmXeNKR TiDB 上线客户 - 某一线券商 财富管理系统

业务现状: 实施方案: ● 新建财富管理系统,数据量巨大,分析数据要求至少 ● 从 Oracle 及 Hive 持续同步和解析交易数据到 TiDB集群 近五年,数据规模数百亿级,需要支持高并发、高扩 ● 在 TiDB 集群中通过分层计算作业,执行批量数据处理 展、海量数据实时写入且实时查询的数据库支持。 ● 对业务平台提供 高性能查询和统计分析 ● 需要灵活的多维度标签化业务建模和高性能查询计 ● 规划引入 TiSpark 作为复杂 OLAP 计算引擎执行复杂计 算分析能力。 算和统计分析

实施效果: ● T +1 计算升级为实时数据处理及计算。 ● TiDB 满足了金融基础的数据量线性扩展的问题。 ● 在提供复杂业务计算能力的同时,提供了对数据的大 规模再加工和高性能写入。 ● 灵活的多维度数据处理分析能力满足了标签化业务建 模的业务要求。 ● TiDB 强壮的金融生产级可靠性提供了业务安全保障 典型应用场景(5)金融级别多数据中心多活场景

方案 方案特点

传统硬件数据复制方案 1、造价昂贵(存储、带宽),两中心硬件配置需在满足SLA的前提下尽可能完全一致 (存储、主机) 2、采用多中心存储硬件级复制方案,则建设成本高昂,运维复杂度高。 3、冷备,资源闲置,主生产中心故障时,需手动判断切换窗口并安成切换业务。 4、主生产中心出现写错误,可能导致数据同步出错,备中心无法启动。

Oracle Active Data Guard 1、需额外购买 诸如 ADG/OGG/DSG 等许可证,且通过外部软件实现数据同步。 Oracle Golden Gate 2、备机只能读,不能写入,无法实现真正意义上的数据中心双活架构。 DSG (国内方案) 3、主生产中心故障时,会有秒级到分钟级的数据无法真正同步,数据一致性无法 100% 保障(RPO > 0),需要切换后人工核验和补偿。 4、主生产中心故障时,需手动判断切换窗口并切换业务。

MySQL 没有原生的安全的同步方案。MySQL 原生的同步复制方案无法满足灾备级的网络环 境和容错要求。

NewSQL | TiDB 标准配置即可保障所有的数据中心 100% 同步,实现真正意义上的多活架构。

完全达到 <<商业银行业务连续性指引>> 银监发 [2011] 中关于 RTO 和 RPO 的要 求。 TiDB 上线客户 - 北京银行 核心在线支付

业务现状: 实施方案: ● 核心支付基于 AS 400/DB2 及 Oracle 的核心数据 ● 使用 TiDB 实现跨三中心的多中心容灾多活核心数据库集 库,包括相关的账户核心批处理业务。 群。(集群跨北京同城两中心及西安中心部署) ● 第三方金融支付机构的支付业务交易逐年增加,每 ● 使用 TiDB 承担包括核心网联支付/银联无卡支付业务,支付 年在类似电商大促等时期产生支付类短时高峰交易 对账,核心批量作业 等一批核心交易应用。

● 央行支付结算司要求的 2018 年 商业银行 “断直连”

注:央行支付结算司下发《关于将非银行支付机构网络支付业务由直连模式迁移至 实施效果: 网联平台处理的通知》,要求自2018年6月30日起,支付机构受理的涉及银行账户 的网络支付业务全部通过网联平台处理。 ● 实现达到银行业最高安全等级保护五级标准的核心交易 系统,实现两地三中心五副本容灾多活架构。 实现支付类业务从成本高昂的传统硬件和数据库向 ● Intel x86 架构和开源分布式数据平台下迁和架构演进。 案例文章: ● 北京银行企业级 NewSQL 数据库赋能金融科技建设 ● 文章链接:http://t.cn/RsOkkFY 典型应用场景(6)云数据库场景(DBaaS)

TiDB 实现了 Kubernetes 的 operator 接口,使得 K8S 可以真正的调度有状态的数据库服务,真 正的打通了 K8S 同分布式数据库的完美协同。TiDB + K8S 是完美的云数据库解决方案。

User1 User2

Load Balance Load Balance VPC

Kubernetes

IaaS

关于 Cloud TiDB 技术方案,强烈建议阅读《Cloud+TiDB 技术解读》http://t.cn/RHUO2XL 附:

公司主页 https://www.pingcap.com/ PingCAP 公众号 TiDB 知乎后花园

项目地址 https://github.com/pingcap/tidb

中文文档 https://github.com/pingcap/docs-cn

联系方式 [email protected]