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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 带你读《Apache Doris 案例集》——05 当 Apache Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP 构建智能数据服务平台(2)

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

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


超音数平台框架构思 

 

根据上述大模型+OLAP  的四大解决方案进行了方案整合,以此进行框架设计并将其命名为超音数平台。大模型主要作用于自然语言与SQL  分析语句的连接与转化,OLAP引擎则作为数据存储与查询分析的核心基建。

 image.png

 

超音数平台对于业务流程如图所示,模型运转具体过程如下: 

 

用户输入问题通过 Schema  Mapper检索,判定字段是否匹配与业务知识库。

 

如若匹配则跳过大模型解析步骤,直接利用知识库中的指标计算公式触发OLAP  进行查询分析;如若不匹配则进入大模型,开启下一步判定。


 大模型首先通过人工经验判定问题复杂度,简单查询将指定OLAP引擎直接分析,复杂查询则开启语义解析形成 DSL 语句。

 

DSL 语句通过语义层进步过滤、拆解关联查询场景,生成简易单表 SQL  语句以触发OLAP 数据处理与查询加速。

 

针对需要与外部信息结合的查询场景,大模型会判断是否调用第三方插件来辅助完成查询。

image.png 某首歌曲能否在综艺节目播出为例,在经过检索匹配、语义解析后,大模型选择利用OLAP 数据查询与第三方版权行业插件结合的方式进行回答,最终呈现结果由数仓中的歌曲信息与插件判定结果构成。

 

如今,业务分析师只需要在超音数平台中定义指标含义、维度类型即可直接开展自然语言的问答交互服务。同时还可以在平台中内置插件、丰富指标市场来拓展语义解析能力,完全覆盖了业务在常规与定制化场景下的查询需求。平台基于大模型+OLAP  的模式加速业务分析效率,减少技术开发成本,向智能化、个性化、实时化的全新业务服务模式更近一步。

 

 在这里希望可以与大家分享该开源项目,让更多人体验和学习大模型构建,也欢迎感兴趣的读者们共同参与大模型开发与建设。

 

超音数开源框架: https://github.com/tencentmusic/supersonic

 

超音数平台框架演进

 

在平台构建的过程中,OLAP  引擎作为整体架构的基建对 SQL  语句处理、数据存储分析、上游应用层的查询响应等有着至关重要的作用,我们希望通过架构升级以加强大模型到OLAP  引擎的转化效率与结果输出准确性。  

 

接下来我们将对比介绍OLAP  早期架构与新一代架构在数据写入与查询两方面的差异,分享在架构演进过程中大模型+OLAP  模型优化历程,最终助力超音数平台的构建,开启新一代的数据服务模式。


 数据架构1.0

 image.png 


我们初期的业务架构如上图所示,分为处理层、分析层、应用层三部份,用户文本在进入大模型

之后解析为 SQL 语句使OLAP 开始执行任务,具体的工作原理如下: 

 

处理层:在ODS-DWD-DWS       三层中将数据整合为不同主题的标签和指标体系之后,通过DWS 调度与采集所需字段,在DWM   层将维度与指标数据加工成大宽表。

 

分析层:通过大宽表进入分析层,将数据导入Clickhouse Elasticsearch,其中Clickhosue    主要负责维度与指标两类数据的查询加速,作为分析引擎为后续提供报表开发服务; Elasticsearch     主要负责维度数据处理,作为搜索/圈选引擎。 

 

应用层:业务人员基于场景选取所需要的标签与指标,在应用层中创建数据集作为逻辑视图,同时可以二次定义衍生的标签与指标。

 

在实际业务使用中,早期架构的数据处理方式存在大宽表带来的数据延迟与存储浪费、多套组件导致架构冗余带来指标维度重复定义、学习与运维成本高等问题,具体如下: 

 

数据延迟:处理层不支持部分列表更新,DWS  层数据写入产生延迟后会造成大宽表的延迟,进而导致数据时效性下降。

 

  运维成本高: 在处理层大宽表中维度数据量平均占一张大宽表的50%,且在大部份情况下变化缓慢,这意味着每一张宽表的开发会将维度数据叠加,造成存储资源浪费、维护成本增加在分析层中存在多引擎使用问题,查询SQL 语句需要同时适配 Clickhouse Elasticsearch两个组件,增加人力成本,且两套组件也会加大运维难度,运维成本进一步升高。 

 

架构冗余:在应用层进行指标与维度定义时,导致相同数据会进行多次定义使各种指标、维度定义口径不一致,造成权限不可控,例如上图所示的T1  (标签)M1  (维度)在应用层中,被不同数据集多次定义。

 

数据架构2.0 

 

基于以上问题,我们开始对架构进行改造升级,并在众多 OLAP  引擎中选择了Apache  Doris

替换原有组件,主要因为Apache Doris 具备以下核心优势

 

实时导入:  Apache  Doris 能够支持海量业务数据的高吞吐实时写入,时效性可以做到秒级

完成导入。

 

引擎统一:支持 Multi-Catalog 功能,能够通过 Elasticsearch Catalog 外表查询,实现查询出口统一,查询层架构实现链路极简,维护成本也大幅降低。 

 

查询分析性能:Apache Doris MPP  架构,支持大表分布式 Join, 其倒排索引、物化视图、行列混存等功能使查询分析性能更加高效极速。 image.png 

在数据架构2.0版本中,数据架构保留处理层部份,主要升级分析层架构,并进行语义层叠加: 


分析层:引入Apache  Doris  替换 Clickhouse  组件,利用 Doris  Elasticsearch    Catalog

功能对 Elasticsearch    外表进行查询,实现查询出口统一; 

 

语义层:应用层不再需要创建数据集视图,直接通过语义层获取指标与标签内容执行查询任务,有效解决标签与指标口径问题。

 

数据架构3.0

 

由于宽表开发过程中,维度数据一般变化较小、字符存储空间较大,且分析查询一般只需要查询最新的维度数据。在这种情况下,如果不断叠加维度数据制作宽表,会造成存储空间浪费的问题,同时查询响应速度也受到影响。

 image.png

 

 为了进一步提升架构性能,数据架构3.0主要将处理层中大宽表进行拆分,同时将分析层统一使

Apache  Doris 作为查询分析引擎:

 

 处理层:按照业务分类在 DWM  中将大宽表拆分成缓慢维度表与指标表,使两类表在本地

Hive  中进行关联,通过Hive  导入Apache    Doris 分析层中加速任务;

 

 分析层:将关联数据表直接导入 Apache Doris 中,结合语义层暴露指标与维度以实现语义

统一,用户只需要通过过滤条件就能够直接查询数据,得到所需要的结果。

 

数据架构4.0 

 image.png

 

 我们延续了3.0架构中分析层统一的优势,对处理层、分析层、语义层架构进一步优化,使查询

性能显著提升:

 

分析层+处理层:数仓 DWD 层数据采用 Rollup 功能使事实表与维度表实时关联并创建多个视图进入 DWS 中。通过这种方式,分析层与处理层中的各类指标数据无需再重复定义,能够基于Apache Doris 全部写入新建的 Rollup 视图中并利用 GROUP   BY 将维度传入视图进行查询加速,直接对外暴露所需数据。

 

语义层:利用 Apache  Doris 物化视图对指标与维度自定义口径,通过语义物化层进行查询加速,并将指标与维度通过SUM  加工开发衍生标签与维度数据。

 

应用层:利用Apache  Doris  2.0 版本的倒排索引功能,对现有的索引结构进行丰富,满足了对知识库进行模糊查询、等值查询和范围查询等场景中的能力,进一步加速指标、维度查询响应速度。 

 

数仓架构基于Apache Doris迭代升级,最终实现导入实时、引擎统一、查询高效的现代化湖仓 OLAP  引擎,简化架构链路的同时,有效解决大宽表中指标重复定义所带来的问题。在架构演进的过程,我们也积累许多关于Apache Doris 性能优化经验,希望分享给读者们带来一些参考。


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

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

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4天前
|
消息中间件 Kafka Apache
流计算引擎数据问题之Apache Kafka Streams 没有采用低水印方案如何解决
流计算引擎数据问题之Apache Kafka Streams 没有采用低水印方案如何解决
12 0
|
4天前
|
消息中间件 Kafka Apache
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
11 0
|
13天前
|
监控 大数据 API
震撼来袭!Apache Flink:实时数据流处理界的超级巨星,开启全新纪元,让你的数据飞起来!
【8月更文挑战第6天】随着大数据时代的到来,企业急需高效处理实时数据流。Apache Flink作为一款开源流处理框架,以高性能、可靠性及易用性脱颖而出。Flink能无缝处理有界和无界数据流,支持低延迟实时分析,适用于实时推荐、监控及风控等场景。例如,在实时风控系统中,Flink可即时分析交易行为以检测欺诈。以下示例展示了如何使用Flink实时计算交易总额,通过定义Transaction类和使用DataStream API实现数据流的实时处理和聚合。Flink正以其强大的实时处理能力和高度可扩展性引领实时数据流处理的新时代。
35 0
|
2月前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【6月更文挑战第30天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送序列化消息到主题,消费者通过订阅和跟踪偏移量消费消息。Kafka以持久化、容灾和顺序写入优化I/O。Java示例代码展示了如何创建并发送/接收消息。通过分区、消费者组和压缩等策略,Kafka在高并发场景下可被优化。
90 1
|
2月前
|
存储 SQL BI
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
|
2月前
|
SQL 存储 运维
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
随着网易游戏品类及产品的快速发展,游戏数据分析场景面临着越来越多的挑战,为了保证系统性能和 SLA,要求引入新的组件来解决特定业务场景问题。为此,网易游戏引入 Apache Doris 构建了全新的湖仓一体架构。经过不断地扩张,目前已发展至十余集群、为内部上百个项目提供了稳定可靠的数据服务、日均查询量数百万次,整体查询性能得到 10-20 倍提升。
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
|
2月前
|
机器学习/深度学习 存储 关系型数据库
深入Doris实时数仓:导入本地数据
深入Doris实时数仓:导入本地数据
|
1月前
|
分布式计算 DataWorks Java
DataWorks产品使用合集之怎么选择Doris或StarRocks作为DataWorks的OLAP解决方案
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
存储 SQL BI
深入解析实时数仓Doris:Rollup上卷表与查询
深入解析实时数仓Doris:Rollup上卷表与查询
|
2月前
|
存储 SQL 大数据
深入解析实时数仓Doris:三大数据模型详解
深入解析实时数仓Doris:三大数据模型详解

推荐镜像

更多