TiDB在小红书的实践案例分享

讲述 TiDB 在小红书大促实时看板、数据仓库、社区电商业务等方向的使用尝试和思考,以及未来的展望。
展开查看详情

1. TiDB在⼩红书的实践案例分享 张俊骏 jzhang4@xiaohongshu.com 2019.01.12

2.整体架构 Online App Online App Online App Online Database Online Database Realtime Dataflow Offline Database Offline Dataflow Presentation Data Warehouse 2

3.项⺫1: ⼤促实时看板 Order App Online App Online App Mongo/Mysql Online Database Realtime Dataflow TiDB/Redis Offline Dataflow Dashboard Data Warehouse 3

4.项⺫1: ⼤促实时看板 ▪ 业务场景 ▪ 共需⽀持8个实时报表,QPS最⾼的报表写⼊均值5000条/s,峰值接近200000条/s ▪ 每2s会有⼀个较⼤的聚合查询query ▪ 部分聚合结果先写⼊redis, 再pop到tidb ▪ 集群规模 ▪ 10 tikv + 3tipd ▪ 每个节点挂载4T*6块NVME SSD ▪ 实现细节 ▪ 采⽤多线程保证最终⼀致性的⽅式写⼊ ▪ batch insert size = 100时⼤致能达到吞吐和延迟综合最优 ▪ 全程写⼊和查询稳定,写⼊时延<20ms,查询时延<1s 4

5.项⺫2: 分库分表Mysql ETL Online App Online App Online App 分库分表Mysql Online Database Realtime Dataflow TIDB Offline Dataflow Presentation Data Warehouse 5

6.项⺫1: ⼤促实时看板 ▪ 业务场景(以最⼤的表为例) ▪ 上游10节点的MySQL,共计10000个分表,存量数据1000亿条左右,每⽇增量10亿+ ▪ QPS写⼊均值3000条/s,峰值接近10000条/s ▪ 增量ETL任务,故离线库只需保留约30天的dtm表 ▪ 每⽇夜间(⽩天偶尔)会有基于sqoop的抽数任务触发 ▪ 集群规模(以最⼤的数据表为例) ▪ 10 tikv + 3tipd ▪ 每个节点挂载4T*6块NVME SSD ▪ 实现细节 ▪ 对mysql⾃增ID进⾏了处理 ▪ 对sqoop进⾏了部分对于tiDB的适配 ▪ 调整了tidb的max transaction size,以优化抽取效率 6

7.项⺫3+ ▪ 数仓⽅向 ▪ 承担更多ETL任务 ▪ 事务隔离性要求低 ▪ 线上服务⽅向 ▪ 已有⼀些业务接⼊hive -> tiDB的T+1级别数据服务 ▪ 实时读写数据服务还在测试阶段 ▪ ⾃动化运维⽅向 ▪ tiDB on k8s ▪ 主机模式,性能损耗很⼩ ▪ 隔离物理环境 ▪ 维护docker image优于维护yum源 ▪ 跨数据中⼼部署 7

8.Questions? 8

TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。