- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
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