暂无图片
暂无图片
13
暂无图片
暂无图片
暂无图片

汽车之家从 SQL Server 到 TiDB 5.0 的架构变迁

PingCAP 2021-08-20
1503

昨天,2021 年 818 全球汽车节正式拉开帷幕。对于广大车友而言,“818 全球汽车节”就像是电商中的双十一、618 一样,是专为购车用户打造的节日狂欢。作为这一 IP 的首创者,汽车之家已连续举办三届  818 全球汽车节,在车友圈里热度不断升高。

说起汽车之家,车友们肯定不会陌生。汽车之家成立于 2005 年,围绕看车、买车、用车多场景服务,为消费者提供优质的汽车消费和汽车生活服务。汽车之家社区作为汽车之家最老的业务之一,十几年来沉淀了亿级帖子、十亿级回复数据,每天有千万级 DAU、亿级访问量,接口日均调用量 10 亿+ 次 。

业务挑战

汽车之家社区 IT 架构历经多次升级重构、技术栈升级,但数据始终存放在 SQL Server 中。随着业务的不断扩大,汽车之家社区的访问量和发表量不断上涨,SQL Server 数据库遇到的问题也越来越多。

汽车之家社区的回复库采用了分库分表设计,用以解决 SQL Server 单表过大时性能下降等问题。但这也导致回复库有 100+ 个库、1000+ 张表,结构异常复杂;同时,在数据量突飞猛进的情况下,每隔一段时间就要增加更大容量的存储服务器,存储成本不断上涨,汽车之家不得不寻找一个新的数据库替换方案。

经过对主流分布式数据库进行分析测试后,汽车之家最终选择了兼容 MySQL 协议、设计架构更加优秀、社区活跃的 TiDB 分布式数据库

解决方案

TiDB 切实解决了汽车之家在应用 SQL Server 时的许多痛点

  • 水平伸缩:在当前集群内可以随时加节点,更换节点轻而易举;

  • 海量数据支持:基于其特性以及业内使用的经验,十亿乃至百亿级别的数据量轻松搞定;

  • 高可用:相较 SQL Server 的主从模式,TiDB 基于 Raft 协议,可以实现 100% 数据强一致性,并且在多数副本可用的情况下,可实现自动故障恢复;

  • HTAP:TiDB 的 HTAP 能力支持一定程度的 OLAP 场景,更复杂的 OLAP 分析也可以通过 TiSpark 完成。

在从 SQL Server 迁移到 TiDB 的过程中,汽车之家采用在线迁移的方式,来保障社区的业务连续性。汽车之家数据库负责人陶会祥表示,这一方案无异于“给行驶中的汽车换轮子”,要求整个过程中,应用的读写数据场景不受影响。为此,汽车之家制定了严格的迁移流程,在迁移过程中确保了用户及业务方对迁移无感知。并通过优化 SQL ,保证了汽车之家线上 TP99 表现稳定,与迁移之前并无太大差别。

整体迁移架构图

迁移至今,汽车之家部署的 TiDB 集群超过了 10 套,100 + 物理节点,数据量 100+ TB。目前,TiDB 主要应用于汽车之家的财务广告报表、社区核心应用以及大数据资源池中。

在汽车之家,每年的 818 全球汽车节都是一个非常关键的活动,汽车之家会和车友进行大量的互动、红包活动 。该活动的系统就在使用 TiDB 作为底层支撑,在 TiDB 社区的帮助下,汽车之家活动期间可以实现在线不停业务随时扩容,从容应对数据暴增

5.0 升级初体验

TiDB 从 5.0 版本开始,在 TiFlash 基础上引入了 MPP 架构,这使得大型表连接类查询可以分散到不同 TiFlash 节点分担共同完成,加速聚合类查询。汽车之家被该项特性所吸引,将核心大数据资源池由 4.0.9 升级至 5.0.1,对聚合查询类 SQL 进行针对性测试。

汽车之家的测试集群包含 3台 48 核 256G 物理机作为 TiDB 节点,3 台 128 核 256G 物理机作为 TiKV 节点,并专门配置了 2 台 64 核 256G 物理机作为 TiFlash 节点加速查询。

为了检测 TiDB 5.0 在真实业务场景中的表现,测试环境均为汽车之家业务管理台中实际使用的 SQL。测试包含单表非聚合查询、多表非聚合查询、单表聚合查询、多表聚合查询等 SQL。测试结果显示,TiDB 5.0 在 Sysbench OLTP 基准测试中,在不同并发线程情况下,性能提升 13-25% ;对于聚合类查询,MPP 加速作用十分明显,测试的 4 个业务 SQL(每个SQL 包含一张 3 亿行记录的表和一张 1000 万行记录的表),速度提升达到惊人的 27-50 倍!

大数据资源池是汽车之家 P0 级业务,主要负责对用户进行用户画像打标,根据用户画像实时推荐喜好信息与促销信息。在竞争激烈的汽车市场中,如何更快准确定位、精准识别用户需求是获取用户的关键。

传统时效性不佳的离线数据分析已经无法满足汽车之家对分析决策的需求,海量、实时、在线的数字化新常态需要更实时的数据分析,TiDB 5.0 在引入 MPP (Massively Parallel Processing,即大规模并行处理)架构后, 大幅提升了海量数据下的并行计算与分析能力,TiDB HTAP 能力实现了质的提升。从 SQL Server 迁移至 TiDB,从传统关系型数据库到分布式 HTAP 数据库,从商业授权到开源社区,是汽车之家社区历史上一次重大的技术方向转型。

自 2018 年上线第一个 TiDB 集群至今,汽车之家历经了 TiDB 2.0 ~ 5.0 四次产品迭代,通过对 SQL Server 的逐步替换,支撑着汽车之家社区的高速发展。对基础软件而言,真实场景是最好的架构师。正是有着大量与汽车之家一样的用户,在实际业务场景中不断尝试、反馈、应用,TiDB 才得以在六年时间中快速迭代五大版本。我们希望每一次升级带给用户的不仅仅是新增几项特性,而是帮助用户解决掉更多业务中的挑战,携手并肩走向成功。

最后修改时间:2021-08-20 09:51:34
文章转载自PingCAP,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论