带你读《Apache Doris 案例集》——05 当 Apache Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP 构建智能数据服务平台(3)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 带你读《Apache Doris 案例集》——05 当 Apache Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP 构建智能数据服务平台(3)

更多精彩内容,欢迎观看:

带你读《Apache Doris 案例集》——05 当 Apache   Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP  构建智能数据服务平台(2):https://developer.aliyun.com/article/1405739


Apach  Doris性能优化实践 

 

Colocate Join 宽表优化 

image.png

 

在上文架构改造中我们提及,由于宽表开发会不断叠加字符数据,消耗存储空间,降低查询性能,因此我们充分利用了Colocate Join 功能对宽表拆分、本地关联查询加速进行优化,具体过

程如下:

 

●指标大宽表:采用 Apache Doris Aggregate  Key 模型,使用增量的方式将数据覆盖写入;

 

缓慢维度表:主要通过start_date  end_date   的设置进行表建设,同时利用end_date   行分区,当我们需要查询最新的维度数据时只需要将 end date设置为‘9999-12-31'即可。此外我们引用 Doris 2.0版本中的写时合并,利用 Unique Key 模型进行维度数据聚合,使查询性能在该场景中得到很大的提升。

 

●对外访问视图:在指标与维度表建设完成之后,利用CREAT   VIEW 提供统一对外访问视图,同时添加 end date条件,使视图保持最新数据的展示。通过这样的方式不仅能够大幅度降低查询的复杂性,还能够充分利用 Doris 特性实现查询加速。

 

Rollup 解决指标膨胀问题

 

宽表拆分为指标表与维度表后,我们发现每一次视图产生都需要定义多个指标,出现指标膨胀的情况。以歌曲播放量结算为例,当仅定义单一指标时,我们需要将各个平台+各类内容进行排列组合,使语义层定义很多指标数据,造成指标数量过多。此外这些指标都需要通过离线生产任务进行加工,并通过 Hive 导入至Apache Doris 中,造成链路较长、加工维护比较困难。


平台指标:覆盖四大音乐平台,包括酷我、QQ 音乐、酷狗、K

内容指标:包含歌曲、歌手、专辑以及厂牌等数据

image.png

 为了有效解决指标膨胀问题,我们引入了Doris  Rollup 功能。如图所示,在 Doris  Base 表数据基础之上,可以根据指定维度来创建任意多个 Rollup 视图并自动进行 GROUP  BY,  实现各个平台与各类内容指标定义不重复、查询性能提升的目标。

 

 物化视图实现查询加速 

 image.png

 除了减少指标数量外,我们还希望能够衍生指标并且做到查询加速。Apache Doris 2.0 版本中我们采用了物化视图功能进行衍生指标的开发。目前,我们主要在单一维度表中单独地去查询自定义标签与维度,在定义复杂口径后自动的通过语义层物化任务。

 

如上图所示我们将指标 M1M2M3与维度T1T2T3分别进行定义,并通过SUM 加工衍生标签,在加工完成之后创建物化视图加速查询。此外,Doris后续2.1版本中还会支持多表创建物化视图,我们也非常期待使用该功能。

 

 Apach Doris 导入性能调优实践

 

目前,腾讯音乐具有90+数据来源表、 3000+维度和指标、导入数据量达到千亿级别,我们希望数仓能够支持大规模数据快速导入,且导入过程中保证数据写入的准确性。

 image.png 

 

导入链路如图所示,主要分为离线与实时两个部分,离线链路中指标表与变更维度表通过Spark进行批量导入,两类表利用Flink聚合形成宽表后写入;实时链路主要利用Kafak消息队列进行流式写入。最终,离线与实时两条链路利用Flink实时写入Apache Doris数仓中。

 

由于 Flink 聚合为攒批写入,如果出现写入任务失败,会导致数据丢失;同时,在聚合任务过多、字段过多的情况下存在Compaction不及时的情况,导致实时能力不可控;此外在加工宽表的过程中,也会造成重复写入的问题,无法保证数据写入准确性。 

 

Apache Doris 2.0版本发布后,我们引入了其全新功能 Flink Doris ConnectorDoris Compaction,有效解决了 Flink聚合引起的问题。

 

Flink Doris Connector 实现快写入

 

Flink Doris Connector主要是依赖Checkpoint机制进行流式写入,同时该功能默认开启两阶段提交,保证写入过程中 Exactly Once 语义。值得注意的是,我们在引入最新版的 Flink Doris Connector 功能后,实现了从关系型数据库到Apache Doris 的一键整库同步,承载了我们实际业务中千亿级别的实时并行写入,满足数据快写入与不丢不重的需求。

 

Doris  Compaction 保证写入稳定性

 

为了解决 Flink 聚合引起的偶发性Compaction 不及时问题,我们引入最新版的 Vertical CompactionSegment  Compaction功能。

 

·VerticalCompaction功能优势:在单次合并过程中,我们不需要再将所有的列读出,只需要加载部份列数据即可,这能极大减少合并过程中的内存占用问题,提高压缩的执行速度,实现在大宽表场景下的部份数据合并。 

 

· Segment   Compaction功能优势: 在单批次大数据量的导入场景下可以有效减少 Flink写入

过程中产生的Segment数量,且能够使合并和导入两个过程并行,避免增加导入时间。

image.png

 如上图所示在引入Doris Compation 功能后,在写入量增加50%的情况下,Compaction Score 从平均650分降低至80分,技术人员不再需要担心夜间出现告警的情况,保证了整体链路的稳定性。 

 

 总结收益与展望 

 

在引入 Apache Doris 后,数据架构围绕降本增效的目标,不仅在写查方面的性能得到大幅度提

升,并且有效减少架构成本与资源开销,具体的收益如下:

 

极速查询分析: 通过 Apache DorisRollup物化视图、倒排索引功能,由原来的分钟级查询时间达到现如今秒级毫秒级;

 

 

导入性能提升:导入优化完成后,原本3000+维度、指标数据的导入时间需要超过一天,现如今能够在8 小时内完成导入,导入时间缩短至原来的1/3,实现快速导入需求;更重要的是,ApacheDoris 在保证数据快写入的同时,使数据能够不丢不重、准确写入:

 

链路极简与统一:ApacheDoris将查询与分析出口引擎统一,去除 Elasticsearch 集群使架构链路极简;

 

存储成本降低:通过大宽表拆分的方式,使存储成本降低30%,开发成本降低40%

 

在未来,我们将进一步拓展使用Apache   Doris 湖仓一体功能,对Hive MySQL、数据湖等多源异构数据库进行网关统一,实现真正意义上的实时统一分析引擎。同时,尝CCR跨集群数据同步功能,通过用户多集群的数据库表自动同步以提升在线服务数据的可用性。未来,我们也将在测试环节中验证读写负载分离以及多机房备份的性能效果。

 

目前,Apache Doris 社区已经公布了后续版本中将推出的存算分离全新架构,能够利用低成本 的共享存储系统简化上层计算节点的复杂度,使架构带来巨大的成本经济优势。我们也希望能够进一步探索,基于 Apache  Doris 本地高速缓存+共享存储系统的混合模式,在保障性能的同时降低系统存储开销。

 

最后,非常感谢SelectDB 技术团队的积极响应与专业解答,希望通过这篇文章分享大语言模型在互联网业务中的应用,也欢迎更多人参与Apache Doris社区与超音数平台的开源框架构建。最后,我们也会持续参与社区活动,将相关成果贡献回馈社区,希望Apache Doris飞速发展,越来越好!

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4月前
|
消息中间件 OLAP Kafka
Apache Doris 实时更新技术揭秘:为何在 OLAP 领域表现卓越?
Apache Doris 为何在 OLAP 领域表现卓越?凭借其主键模型、数据延迟、查询性能、并发处理、易用性等多方面特性的表现,在分析领域展现了独特的实时更新能力。
485 9
|
5月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
3月前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
618 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
4月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
364 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
8月前
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
755 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
8月前
|
存储 人工智能 数据处理
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
秉承“以场景驱动创新” 的核心理念,持续深耕三大核心场景的关键能力,并对大模型 GenAI 场景的融合应用进行重点投入,为智能时代构建实时、高效、统一的数据底座。
479 10
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
|
8月前
|
存储 SQL 关系型数据库
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
拉卡拉早期基于 Lambda 架构构建数据系统面临存储成本高、实时写入性能差、复杂查询耗时久、组件维护复杂等问题。为此,拉卡拉选择使用 Apache Doris 替换 Elasticsearch、Hive、Hbase、TiDB、Oracle / MySQL 等组件,实现了 OLAP 引擎的统一、查询性能提升 15 倍、资源减少 52% 的显著成效。
395 6
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
|
9月前
|
存储 安全 数据挖掘
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,部署节点超 3000 个,存储容量超 15PB
603 2
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
|
10月前
|
SQL 缓存 数据处理
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
Apache Doris 提出“数据无界”和“湖仓无界”理念,提供高效的数据管理方案。本文聚焦三个典型应用场景:湖仓分析加速、多源联邦分析、湖仓数据处理,深入介绍 Apache Doris 的最佳实践,帮助企业快速响应业务需求,提升数据处理和分析效率
641 3
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)

推荐镜像

更多