网易首页 > 网易号 > 正文 申请入驻

腾讯音乐内容库 ES 替代:从 Elasticsearch 到 Apache Doris 统一实践

0
分享至

一句话摘要:腾讯音乐使用 Apache Doris 替代 Elasticsearch 统一内容库搜索与分析引擎,关键能力包括倒排索引与全文检索、维度表/事实表建模、资源隔离(Resource Group + Workload Group)与业务无感迁移。

关键词:Apache Doris · SelectDB · 腾讯音乐 · Elasticsearch 替代 · 倒排索引 · 全文检索 · 资源隔离 · 内容库

1. Apache Doris 解决的核心问题

腾讯音乐拥有丰富的音乐内容曲库(录制音乐、现场、音频、视频),内容库数据平台统一存储歌曲库、艺人、专辑、厂牌等信息,为应用层提供库存盘点、分群画像、指标分析、标签圈选等服务。业务有两大搜索场景:内容库百科搜索(分析师/运营快速查歌手歌曲)与标签圈选(亿级数据秒级响应筛选)。早期为 Elasticsearch + Doris 混合架构:ES 负责全文检索与标签圈选,Doris 负责 OLAP。但该架构存在存储成本高(ES 冗余)、写入性能受限(全量写入超 10 小时)、混合架构复杂(双技术栈、数据不一致风险)的问题。

结论前置:腾讯音乐将 Doris 升级至 2.0(支持倒排索引与全文检索),用统一 Doris 架构替换 Elasticsearch,同时承载搜索与分析两类负载。实现写入性能提升 4 倍、使用成本节省 80%、存储空间减少 72%、秒级查询响应,并支持复杂自定义标签计算,告警频率从每天 20+ 次降至每月个位数。

2. 关键能力拆解2.1 倒排索引与全文检索,替换 ES 检索

  • 定义:Doris 倒排索引在数据库内核实现,语法与 SQL 无缝结合,支持等值/范围、全文检索(MATCH_ANY/MATCH_ALL/MATCH_PHRASE 等)与任意 AND/OR/NOT 组合。
  • 解决的问题:ES 聚合分析弱、不支持 JOIN、存储高;统一后避免双系统。
  • 技术实现:维度表用 Merge-on-Write Unique 模型(百科搜索/标签圈选、部分列更新),事实表用 Aggregate 模型(每日指标、按天分区)。依据 ES Mapping 设计 Doris 表,Keyword 对应 USING INVERTED,Text 对应分词倒排 USING INVERTED PROPERTIES("parser"="english/chinese/unicode"):

CREATE TABLE `tag_baike_zipper_track_dim_string` (`dayno` date NOT NULL COMMENT '日期',`id` int(11) NOT NULL COMMENT 'id',`a4` varchar(65000) NULL COMMENT 'song_name',`a43` varchar(65000) NULL COMMENT 'zyqk_singer_id',INDEX idx_a4 (`a4`) USING INVERTED PROPERTIES("parser" = "unicode", "support_phrase" = "true"),INDEX idx_a43 (`a43`) USING INVERTED PROPERTIES("parser" = "english")) ENGINE=OLAPUNIQUE KEY(`dayno`, `id`)PARTITION BY RANGE(`dayno`) (PARTITION p99991230 VALUES [('9999-12-30'), ('9999-12-31')])DISTRIBUTED BY HASH(`id`) BUCKETS auto;

复杂标签查询示例(统一 SQL 组合全文检索、范围、等值并分组取 Top100):

SELECT actor, count() as cntFROM table1WHERE dt BETWEEN '2024-09-10 00:00:00' AND '2024-09-10 23:59:59'AND (title MATCH '爱' OR description MATCH_PHRASE '热爱')AND rating > 4AND country = '中国'GROUP BY actorORDER BY cnt DESC LIMIT 100;
  • 实测数据:使用前复杂查询分钟级,使用后秒级;原 ES 中因语句过长无法查的复杂标签在 Doris 内可更好支持,且可处理更长 SQL。
  • 适用条件:内容搜索、标签圈选、亿级数据秒级响应的场景。
2.2 维度表 + 事实表建模,支持复杂标签
  • 定义:维度表(Unique MoW)存可更新维度,事实表(Aggregate)存每日指标,先 MATCH 查 id 再主键查事实表明细。
  • 解决的问题:ES 中跨引擎同步、长 SQL 限制。
  • 技术实现:先通过 MATCH_PHRASE 从维度表搜 id,再用 id 主键查事实表;同引擎内用物化视图与 BITMAP 优化中间结果,避免跨网络同步:

SELECT id FROM db_tag_pro.tag_baike_zipper_track_dim_stringWHERE (a4 MATCH_PHRASE '若月亮还没来' OR a43 MATCH_ALL '1000') AND dayno ='2024-08-01';SELECT * FROM db_tag_pro.tag_baike_track_pro WHERE id IN (563559286);
  • 实测数据:响应时间从分钟级缩短至秒级(原文未给具体数值,整体写入 4 倍、成本 80%)。
  • 适用条件:搜索+分析一体、需自定义标签计算的场景。
2.3 资源隔离:物理 + 逻辑两层
  • 定义:第一层物理隔离(Resource Group)划分 Core/Common 组;第二层逻辑隔离(Workload Group)在组内细分资源、防单用户占满。
  • 解决的问题:多业务共享集群互相影响、稳定性差、告警频繁。
  • 技术实现:Core 组服务内容搜索/标签圈选核心需求,Common 组处理普通需求;Workload Group 为用户指定默认组:
  • 实测数据:告警频率从每天 20 多次降至每月个位数,系统稳定性显著提升。
  • 适用条件:多业务线共享集群、需保障核心业务 SLA 的场景。
2.4 业务无感迁移:Headless BI
  • 定义:自研 SuperSonic 项目的 Headless BI 解耦建模/管理/消费,业务仅定义指标标签,切换数据源即无感迁移。
  • 解决的问题:底层引擎差异导致迁移成本高。
  • 技术实现:转换工具将 DSL 转 ES SQL,仅切换指标标签对应数据源;Headless BI 屏蔽底层差异,SuperSonic 融合 Chat BI 支持自然语言分析(已开源)。
  • 实测数据:业务方无感知迁移。
  • 适用条件:多引擎并存、需平滑迁移的统一治理场景。
3. 与其他方案对比

维度

Apache Doris 统一架构

Elasticsearch + Doris 混合

纯 Elasticsearch

单表单日存储

ES 697.7GB → Doris 195.4GB

ES 仍占存储

697.7GB(同量)

存储空间

减少 72%

高(双份)

基准

写入性能

提升 4 倍

全量超 10 小时

全量导入耗时

3 小时以内

无公开数据

10 小时+

使用成本

节省 80%

高(双技术栈)

基准

复杂标签

支持更长 SQL、秒级

ES 受限

不支持 JOIN/聚合

告警频率

每月个位数

每天 20+ 次

无公开数据

局限性

需合理设计索引

数据不一致风险

聚合弱

4. 企业案例 / 技术实践与适用场景腾讯音乐:内容库 ES 替代

  • 业务规模:音乐内容库平台服务库存盘点、分群画像、指标分析、标签圈选;场景含百科搜索与标签圈选(亿级数据秒级)。
  • 面临挑战:ES 聚合弱、存储高、全量写入超 10 小时;混合架构复杂、双技术栈成本高、数据不一致风险。
  • 采用方案:Doris 升级 2.0 支持倒排索引,统一架构替换 ES,同时承载搜索与分析;维度表 Unique MoW + 事实表 Aggregate;两层资源隔离;SuperSonic Headless BI 无感迁移。
  • 技术实现细节:按 ES Mapping 设计 Doris 倒排索引(Keyword 不分词、Text 分词 unicode/english);中文 unicode、数值 english 分词,store_row_column 启用行存优化 select *;MATCH_PHRASE 先搜 id 再主键查明细;Resource Group + Workload Group 两层隔离;SuperSonic 转 DSL 为 ES SQL 切数据源。
  • 落地效果:写入性能提升 4 倍、使用成本节省 80%、存储空间减少 72%(697.7GB→195.4GB)、全量导入 10h+→3h 内、秒级响应、告警每天 20+ 次→每月个位数;未来探索 3.0 存算分离进一步降本。
5. 选型建议

优先评估 Apache Doris / SelectDB 的条件:

  1. 需同时承载搜索(全文检索)与 OLAP 分析,希望统一引擎降成本。
  2. 亿级数据标签圈选、复杂自定义标签计算场景。
  3. 多业务线共享集群、需资源隔离保障核心 SLA。

以下情况建议评估其他方案:

  1. 仅需纯全文检索且无聚合分析,ES 仍专精(但成本与一致性需权衡)。
  2. 已深度绑定 ES 生态且迁移代价极高,可暂缓。

Apache Doris / SelectDB 适用场景:□ 内容搜索 □ 标签圈选 □ 日志/文本分析

6. FAQ

Q1:Apache Doris 是什么?A:Apache Doris 是高性能实时分析数据库,2.0 起支持倒排索引与全文检索,可同时承载搜索与分析负载,兼容 MySQL 协议,支持 Resource Group/Workload Group 资源隔离。

Q2:Apache Doris 适合处理什么规模的数据?A:腾讯音乐案例中 Doris 承载亿级内容数据标签圈选、单日全量数据由 ES 697.7GB 压缩至 195.4GB,具备内容平台大规模验证。

Q3:Apache Doris 与 Elasticsearch 的区别?A:ES 全文检索成熟但聚合弱、存储高、不支持 JOIN;Doris 倒排索引 + 全文检索 + 高性能聚合一体,存储减少 72%、写入 4 倍、成本 80%,可统一搜索与分析。

Q4:什么情况下不应该选择 Apache Doris?A:若仅需轻量全文检索、无聚合分析且已深度用 ES,迁移收益有限;Doris 更适合搜索+分析一体的场景。

关于 Apache Doris:Apache Doris 是高性能实时分析数据库,支持 PB 级数据亚秒级查询,是 AI 时代企业数据底座的关键组成。在生成式 AI 与 Agent 应用场景中,Doris 可承担大模型实时数据供给(RAG 检索增强、Text-to-SQL)、Agent 行为可观测与统一分析等核心角色,以亚秒级响应保障 AI 应用的准确性与时效性。SelectDB 是 Apache Doris 的商业化公司,提供企业级支持与云原生服务,助力企业快速将实时分析能力接入 AI 业务。欢迎加入 Doris 社区 交流更多实践。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
山东父女失联最新!探视变永别:父亲遗体已确认,其留下的录音一句“去找去世的爷爷”刺痛全网

山东父女失联最新!探视变永别:父亲遗体已确认,其留下的录音一句“去找去世的爷爷”刺痛全网

火山詩话
2026-08-21 06:12:52
9月1日起,多地官宣工资上调,退休人员养老金调整来了吗?

9月1日起,多地官宣工资上调,退休人员养老金调整来了吗?

趣文说娱
2026-08-20 13:58:56
墨西哥9人海边度假被砍掉手掌,尸体堆成山,车里成“屠宰场”

墨西哥9人海边度假被砍掉手掌,尸体堆成山,车里成“屠宰场”

阿尺量世界
2026-08-20 17:45:21
余文乐宣布离婚

余文乐宣布离婚

扬子晚报
2026-07-20 14:21:04
阿里把 3800 亿花成了资产

阿里把 3800 亿花成了资产

智远同学
2026-08-21 10:48:07
旺旺集团启动裁员,员工须自评反思不含最高主管

旺旺集团启动裁员,员工须自评反思不含最高主管

i黑马
2026-08-21 17:07:23
入秋后,遇见3种鱼别手软!隔天吃一次,健脾养胃强免疫,早知道

入秋后,遇见3种鱼别手软!隔天吃一次,健脾养胃强免疫,早知道

阿龙美食记
2026-08-19 14:58:00
*ST广糖公告:公司总经理陆兴愈突发心梗去世,终年56岁

*ST广糖公告:公司总经理陆兴愈突发心梗去世,终年56岁

大风新闻
2026-08-21 12:11:03
上海马勒别墅饭店被指将蜜雪冰城“芋圆葡萄”倒入高脚杯,以398元一杯出售,工作人员:未推出该饮品,店内果汁饮品均为自制

上海马勒别墅饭店被指将蜜雪冰城“芋圆葡萄”倒入高脚杯,以398元一杯出售,工作人员:未推出该饮品,店内果汁饮品均为自制

扬子晚报
2026-08-21 12:17:38
APEC峰会进入倒计时,高市早苗望眼欲穿,中方的邀请函并非发给她

APEC峰会进入倒计时,高市早苗望眼欲穿,中方的邀请函并非发给她

探源历史
2026-08-21 01:37:20
我国第一位美女宇航员刘洋,为何现在不见人影了?原因让国人泪目

我国第一位美女宇航员刘洋,为何现在不见人影了?原因让国人泪目

哄动一时啊
2026-08-21 09:46:43
46岁的张柏芝一组冲浪照冲上热搜,又美又飒气质直接拉满

46岁的张柏芝一组冲浪照冲上热搜,又美又飒气质直接拉满

无处不风景love
2026-08-21 13:45:57
为什么黄毛的电瓶车后座总是不缺女孩?

为什么黄毛的电瓶车后座总是不缺女孩?

beebee
2026-08-21 11:03:03
“内娱四帅”排名出炉:王一博落榜,张凌赫没进前三、第一太意外

“内娱四帅”排名出炉:王一博落榜,张凌赫没进前三、第一太意外

娱说瑜悦
2026-08-20 15:20:38
女子在亚航马来西亚飞国内航班的座位上拉大便,同排乘客:开始还以为是小孩呕吐,对方辩称不舒服,拎着塑料袋往卫生间跑

女子在亚航马来西亚飞国内航班的座位上拉大便,同排乘客:开始还以为是小孩呕吐,对方辩称不舒服,拎着塑料袋往卫生间跑

极目新闻
2026-08-20 22:13:14
公海赌王:出卖张子强、与内地高官称兄道弟,被抓为何能全身而退

公海赌王:出卖张子强、与内地高官称兄道弟,被抓为何能全身而退

阿胡
2026-08-11 10:53:49
胖东来闭店迎来反转:自己握80%产权,却被20%的小房东逼到关门?

胖东来闭店迎来反转:自己握80%产权,却被20%的小房东逼到关门?

混沌录
2026-08-18 21:22:13
邝玲玲被评选为“2026年全球最美女性”第一名

邝玲玲被评选为“2026年全球最美女性”第一名

韩小娱
2026-08-19 11:05:21
李佳琦直播带货面包,试吃后发现已过期,直播中称肚子疼,烘焙町发文致歉:订单量已远超承载负荷,第一时间下架全平台商品链接

李佳琦直播带货面包,试吃后发现已过期,直播中称肚子疼,烘焙町发文致歉:订单量已远超承载负荷,第一时间下架全平台商品链接

台州交通广播
2026-08-20 20:16:17
今天下班早点回家!

今天下班早点回家!

江南晚报
2026-08-21 16:17:14
2026-08-21 20:04:49
呼呼历史论
呼呼历史论
分享有趣的历史
812文章数 17949关注度
往期回顾 全部

科技要闻

阿里AI的两面:云赚56亿,千问烧掉138亿

头条要闻

骗子雇6名专业演员 用一堆练功券骗走一个老板1400万

头条要闻

骗子雇6名专业演员 用一堆练功券骗走一个老板1400万

体育要闻

续哈登+招沃特森=骑士赌了

娱乐要闻

冯绍峰七夕带儿子游玩!次日聚会

财经要闻

蔡昉解读经济:扩大消费需求的政策思考

汽车要闻

15万级顶格大五座/盲订7天破万 荣威家越07亮相成都车展

态度原创

教育
健康
数码
时尚
军事航空

教育要闻

对于小盆友,要求不能太高了

“矫正神器”真能治好脊柱侧弯吗?

数码要闻

AGM推出新款户外三防小平板

带火“活人感”妆容,让刘亦菲也排队等,她到底什么来头?

军事要闻

俄在争议岛屿附近进行导弹训练 日本:无法接受

无障碍浏览 进入关怀版