作者:腾讯音乐高级数据工程师 陈嘉奇,腾讯音乐高级运营开发工程师 高盛远
小编导读:
腾讯音乐娱乐集团是中国在线音乐娱乐服务开拓者,提供如 QQ 音乐、酷狗音乐等众多知名的移动音频产品。
随着对成本效益的关注不断增强及湖仓一体化技术不断进步,数据基建团队在 2023 年将原有的上千节点 ClickHouse 和 Druid 集群业务迁移至 StarRocks 存算分离。在效率不变的情况下,成本下降了 50%,成果显著。本文将深入探讨他们的迁移策略、实现的成果以及在此过程中积累的最佳实践。希望这些经验能够为大家提供宝贵的参考和指导!
背景介绍
腾讯音乐娱乐集团是中国在线音乐娱乐服务开拓者,提供在线音乐和以音乐为核心的社交娱乐两大服务。腾讯音乐娱乐在中国有着广泛的用户基础,拥有目前国内市场知名的移动音频产品:QQ 音乐、酷狗音乐、酷我音乐、全民 K 歌、懒人听书等产品。
数据基建团队负责搭建集团统一的数据平台,支持数据接入、数据处理、数据查询和数据资产治理等。

架构演进

腾讯音乐在 2021 年的时候为了响应业务敏捷分析的请求,对原有的数据架构进行了升级。
-
数据分析业务采用 ClickHouse ,打造了内部最大的 ClickHouse 集群,集群规模上千台,单日新增数据量在千亿级别。
-
监控服务场景通过 Apache Druid 集群为业务提供告警及实时多维分析的能力。总数据量超过 10PB。
随着对成本效益的关注不断增加及湖仓一体化技术的不断进步,腾讯音乐开始构建新的湖仓一体架构以进一步达成集团元数据的统一管理和管理效率提升。新的架构除了希望解决之前数据从湖导出至 OLAP 引擎而导致的元数据碎片化问题外,我们还希望通过引入弹性伸缩和分层存储技术来更进一步降本增效。然而,当时以 ClickHouse 和 Druid 组成的架构已经无法满足这些需求:
-
ClickHouse 在数据分析业务上有着不错的性能表现,但产品演进未重点投入湖仓方向,不符合公司湖仓一体化规划。此外,其存算耦合的架构在弹性能力和资源隔离能力上都存在明显不足。
-
Apache Druid 引擎主要用于腾讯音乐的监控告警、多维分析场景下使用,根据业务场景拆分了不同规格的集群。随着数据量的积累 Druid 集群 segment 瓶颈愈发明显,historical、broker 等组件异常重启后需要较长时间恢复,严重影响服务稳定性。
为解决这些问题,技术团队基于查询性能、运维难度、社区活跃情况、湖仓能力以及资源隔离能力对当前业界的方案做了调研后最终择了 StarRocks 作为我们的计算引擎。StarRocks 的产品路径规划更符合腾讯音乐对未来湖仓一体架构的设想。
湖仓一体选型

经过深入分析对比 ClickHouse、Presto 以及 StarRocks,我们得出以下关键结论:
-
在解决元数据碎片化、数据一致性问题以及成本控制方面,Presto 和 StarRocks 都展现出了湖仓一体化的能力,能够满足我们对湖上数据查询和统一元数据目录的需求。
-
然而,与 StarRocks 相比,Presto 在查询延迟上高出 2-3 倍,这无法满足我们对敏捷分析的要求。
综合考虑成本、性能等因素,StarRocks

最低0.47元/天 解锁文章
1077

被折叠的 条评论
为什么被折叠?



