TiDB Executive Summary

Wesley13
• 阅读 503

一、重要文档
● 【TiDB 中文文档】 https://pingcap.com/docs-cn
● 【FAQ】 https://pingcap.com/doc-FAQ-zh

●  【OPS】https://www.tidb.cc
二、TiDB 的技术原理
● 【TiDB 技术内幕】
○ 说存储 http://t.cn/RTKRRWv
○ 说计算 http://t.cn/RTKRkBh
○ 说调度 http://t.cn/RTKEZ0U

rocksdb

  wiki: https://en.wikipedia.org/wiki/RocksDB

  github:https://github.com/facebook/rocksdb/wiki/RocksDB-Basics
● 【TiDB 基准测试】
http://t.cn/RT8oi0j
● 【TiDB 最佳实践】
http://t.cn/RTKEWf0
● 【TiSpark】
○ 用户指南 http://t.cn/RTKEgWm
● 【TiDB 事务相关】
http://t.cn/RaxOmRZ
● 【Raft 相关】
http://t.cn/ROYYxse
● 【TiDB 在线 Schema 变更】
http://t.cn/RbDaPjf
三、TiDB 核心特性
● 水平线性弹性扩展
● 数据强一致的分布式事务
● SQL支持(TiDB 是 MySQL 兼容的)
● 故障自恢复的高可用
● OLTP & OLAP 混合数据库
四、TiDB 典型应用场景
● 需要弹性扩展的场景
○ 传统单机关系型数据库,比如 MySQL 对大表的支持很不友好,很容易遇到性能拐点,更
重要的是这类单机数据库读写容量有一定上限,尤其是写入流量超过一定值后,就会导致
从库同步延迟等问题,而为了解决这个问题,普遍采用分库分表 + Proxy 的方案,但分库
分表 存在业务维度选定,多维度数据冗余及一致性、SQL 限制(不能聚合、Join 等) 、全局
序列、跨库事务等等问题,TiDB 是完美的 Sharding + Proxy 替代方案。
● OLTP、OLAP 混合的场景
○ 通过在 TiKV 集群上部署多个 TiDB 或者 Tispark 节点能快速满足 OLTP、OLAP 混合需求,比
如,通过 TiDB 来解决 TP 业务或者一般复杂度的 SQL 查询;通过 TiSpark 来解决 AP 业务多
表关联的复杂 SQL 查询,由于数据 不需要 ETL, 对实时分析查询或者准实时分析查询的场景
是个绝佳方案。
● 多数据源的汇总查询
○ 比如已做分库分表 MySQL 集群或者多个 MySQL 集群之前有数据汇总查询需求,可通过
TiDB 生态工具 Syncer 、Wormhole 将多个 MySQL 数据汇总到一个大的 TiDB 集群进行
OLAP 分析。
● 大数据量下的 SQL 查询
○ TiKV 自动会将大表拆分成固定物理大小的单位进行存储,并通过下推技术进行多并发处
理,进而提升海量数据的查询性能。
● 数据强一致的高可用场景
○ 比如泛金融行业,TiDB 计算层是多节点、存储层多副本,任何一个节点故障都会自动高
可用,对应用无感知,同时数据的持久化使用 Raft 进行了同步复制,保证数据强一致和
安全。
五、安装配置 TiDB
● 【Ansible 部署方案】(强烈推荐) http://t.cn/R9vib7R
● 【TIDB 软硬环境要求】 http://t.cn/R9viLCi
六、MySQL 兼容性
● 【不支持】存储过程,视图(18年计划支持),触发器,自定义函数,外键
● 【有差异】自增 ID、DDL、事务(乐观模型)
● 【系统表差别】 http://t.cn/ROHfGjE
● 【具体参见】 http://t.cn/RKq7kxV
七、数据迁移
● 【全量导入历史数据】checker + mydumper + loader
● 【增量同步新的数据】syncer
● 【必读:导入数据最佳实践】 http://t.cn/R9iehf1
● 【具体参见】 http://t.cn/RVeUKjs
八、监控
● 【Prometheus + Grafana】 http://t.cn/R9vJh4v
● 【重要监控指标详解】 http://t.cn/R9JUEhD
○ 目前监控的指标特别多,大部分指标是供数据库开发使用,用户只需要关心 Overview 这
个面板就可以了。
九、备份和恢复
● 【具体参考】 http://t.cn/ROHfO1V
○ TiDB 本身就是高可用的架构(三副本),若有备份需求,推荐使用 mydumper 定时备份,
使用 Loader 进行恢复。
十、TiDB Roadmap
● 【具体参考】 http://t.cn/RG0JF8L
十一、公有云入口
● 【腾讯云 TiDB 入口】 https://cloud.tencent.com/product/tidb
● 【UCloud TiDB 入口】 https://www.ucloud.cn/site/product/cloudtidb.html
● 【京东云 TiDB 入口】 https://www.jdcloud.com/products/tidb
十二、用户案例
● 【北京银行】 http://t.cn/RnY8fGn
● 【 海航 】 http://t.cn/REXx0Qe
● 【 今日头条 】 http://t.cnEMf
● 【转转】 http://t.cn/R1MAXEq
● 【 摩拜单车 】 http://t.c /RnLf n/RT8FbP6
● 【 饿了么(一) 】 http://t.cn/RucuK6m
● 【 饿了么(二) 】 http://t.cn/RnsqFT6
● 【 爱奇艺 】 http://t.cn/EvErsc1
● 【 易果生鲜 】 http://t.cn/RTYVhzH
● 【 同程旅游 】 http://t.cn/RmXeNKR
● 【 去哪儿 】 http://t.cn/RTKnsL7
● 【 G7 】 http://t.cn/RQVePoX
● 【一面数据】 http://t.cn/RT9r5di
● 【凤凰网】 http://t.cn/RHRQfNT
● 【 猿辅导 】 http://t.cn/RTKnKSX
● 【 Mobikok 】 http://t.cn/Rm1F6lg
● 【 二维火 】 http://t.cn/R8bXM2f
● 【 客如云 】 http://t.cn/R1wSEJH
● 【 Ping++ 】 http://t.cn/RE5xYKn
● 【乐视云】 http://t.cn/Rnv3IVs
● 【零氪科技】 http://t.cn/REj7tSv
● 【威锐达测控】 http://t.cn/R3CrviR
● 【 盖娅互娱 】 http://t.cn/RT9r7hx
● 【游族网络】 http://t.cn/R8k4AWB
● 【FUNYOURS JAPAN】 http://t.cn/Rnoab5D
● 【特来电】 http://t.cn/RrHzUGW
● 【 万达网络 】 http://t.cn/RTKm6ds
● 【 华泰证券 】 http://t.cn/RTKmUI9
● 【 360金融 】 http://t.cn/RTKnTev
● 【中国电信翼支付】 http://t.cn/R3Wd9p3
● 【某电信运营商】 http://t.cn/RTYWADg
● 【更多案例持续放出,请关注 PingCAP 公众号】
十二、开发者文档
● 【扩展文档】
○ 知乎专栏 http://t.cn/RHWaHTD
○ TiDB Weekly http://t.cn/RHWSx0K
○ MySQL 官方文档 http://t.cn/R9hKxuD
○ 唐刘的博客 http://t.cn/RHWal5I
○ 马晓宇的知乎 http://t.cn/RHWaBaG
● 【测试相关文档】
○ 分布式系统测试那些事儿 - 理念 http://t.cn/R1zYJ57
○ 分布式系统测试那些事儿 - 错误注⼊ http://t.cn/R1zYnBM
○ 分布式系统测试那些事儿 - 信心的毁灭与重建 http://t.cn/R1zYFMY
○ 当 TiDB 遇上 Jepsen http://t.cn/R1zTyYm
○ Linearizability ⼀致性验证 http://t.cn/RNoocQY
○ 性能测试工具的 Coordinated Omission 问题 http://t.cn/R1zTNOf
○ ⾃动化错误注入测试 - 让你的猴子更加智能 http://t.cn/R1zTnqq
○ 测试分布式系统的线性⼀致性 http://t.cn/R0F9JeE
○ 为什么随机测试能有效的发现网络隔离下的 Bugs http://t.cn/R1zH22B
○ 使用 fio 进行 IO 性能测试 http://t.cn/R1zHVy6
○ go-ycsb:一个 Go 的 YCSB 移植 http://t.cn/R1zHadl
○ 使用 Chaos 测试分布式系统线性⼀致性 http://t.cn/R1zHQJN
○ TiDB Sysbench 性能对比测试报告 - v2.0.0 对比 v1.0.0 http://t.cn/R1zHeKz
○ TiDB TPC-H 50G 性能测试报告 http://t.cn/R1zQzqy
○ TiDB & 腾讯云使用及性能测试 http://t.cn/R1zQ5fH
● 【原理解析】
○ 十问 TiDB :关于架构设计的一些思考 http://t.cn/RBdRyB4
○ TiDB 源码阅读系列文章(一)序 http://t.cn/Rnf3xYS
○ TiDB 源码阅读系列文章(二)初识 TiDB 源码 http://t.cn/Rnf3qGK
○ TiDB 源码阅读系列文章(三)SQL 的一生 http://t.cn/Rnf3v1L
○ TiDB 源码阅读系列文章(四)Insert 语句概览 http://t.cn/Rnfugwq
○ TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现 http://t.cn/RnIXSVs
○ TiDB 源码阅读系列文章(六)Select 语句概览 http://t.cn/RnFlAsK
○ TiDB 源码阅读系列文章(七)基于规则的优化 http://t.cn/RmXTpLU
○ TiDB 源码阅读系列文章(八)基于代价的优化 http://t.cn/R1zj4Gj
○ TiDB 源码阅读系列文章(九)Hash Join http://dwz.cn/80KLcZ
○ TiDB 源码阅读系列文章(十)Chunk 和执行框架简介 http://t.cn/RrIZf3e
○ TiDB 源码阅读系列文章(十一)Index Lookup Join http://t.cn/RrjF0qp
○ TiDB 源码阅读系列文章(十二)统计信息(上) http://t.cn/RedTPYO
○ TiDB 源码阅读系列文章(十三) 索引范围计算简介 http://t.cn/RedTtVv
○ TiDB 源码阅读系列文章(十四)统计信息(下) http://t.cn/RgEKoCd
○ TiDB 源码阅读系列文章(十五) Sort Merge Join http://t.cn/RD8Cu0L
○ TiDB 源码阅读系列文章(十六)INSERT 语句详解 http://t.cn/RFrSgW6
○ TiDB 源码阅读系列文章(十七)DDL 源码解析 http://t.cn/RFroxyC
○ TiDB 源码阅读(十八)tikv-client(上) http://t.cn/RscYAfZ
○ TiDB 源码阅读系列文章(十九)tikv-client(下) http://t.cn/EhBIuJ8
○ 在线 Schema 变更算法 http://t.cn/RUoYxEG
○ 在线 Schema 变更解读 http://t.cn/RHWoLPT
○ 在线 Schema 变更参考 http://t.cn/RHWKaVA
○ Percolator 和 TiDB 事务算法 http://t.cn/RHWTQSV
○ TiKV 的 MVCC 机制 http://t.cn/RHWYKS2
○ TiKV 事务模型概览 http://t.cn/RHWY0WZ
○ TiKV 源码解析系列 - Placement Driver http://t.cn/RHWKZ7I
○ TiKV 源码解析系统 - PD Scheduler http://t.cn/RHWKbaI
○ TiKV 源码解析系列 - Lease Read http://t.cn/RHWjm1a
○ TiKV 源码解析系列 - multi-raft 设计与实现 http://t.cn/RHWjk4X
○ TiKV 源码解析系列 - 如何使用 Raft http://t.cn/RHWYLYs
○ TiKV 源码解析系列 - Raft 的优化 http://t.cn/RHWYxSr
● 【接口文档】
○ Google 开源的一个高性能的 RPC 框架 gRPC http://t.cn/RHWKBfN
○ 深入了解 gRPC http://t.cn/RHWjPar
○ gRPC-rs 从 C 到 Rust http://t.cn/RHWT5L2
● 【生态工具扩展】
○ TiDB Binlog 使用文档 http://t.cn/RHWpTX8

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Stella981 Stella981
2年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这