从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读( 二 )


基于 ByteHouse 重构兴趣圈层平台RDS 作为行式数据库更适合单点事务分析工作显然不符合当前平台诉求 , 我们分别从查询场景、查询性能、存储成本、迁移成本对存储选型 。
查询场景

  1. 圈层信息由模型生产,按时间分区批量导入,不存在临时导入,为 Append only 场景 。
  2. 圈层特征多,业务方按照诉求对和自身业务相关的特征进行筛?。?列式存储比行式存储更合适 。
  3. 圈层主要以分析统计为主,不强需求事务处理,面向 OLAP 业务 。
查询性能
  1. MySQL 对于多列复杂的条件查询时 , 查询性能很难优化,需要通过强依赖 redis 缓存加速 , 否则平台功能不可用 。
  2. 圈层场景通常限制在局部数据中聚合分析,如计算圈层id位于集合内的关键词频率统计,若该集合范围过大索引失效会被劣化为全表扫描 。
详细场景测试【从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读】重构前后存储对比
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读

文章插图
具体场景对比
数据管理信息查询场景:
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读

文章插图
应用工具分析场景:
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读

文章插图
总结综上可以看到,基于 ByteHouse 替换 MySQL 重构抖音兴趣圈层平台后,不同几个典型场景的查询效率平均提升了 100 倍左右 , 大大提升了用户体验 。由于 ByteHouse 出色的查询性能和良好的数据压缩比,中等资源的服务器就能很好的满足需求,这也降低了综合硬件成本 。此外,ByteHouse 具有良好的水平扩展能力,如果数据量进一步增长,也可以便捷的通过增加服务器数量来提升分析能力 。




推荐阅读