天穹数仓自治才干在大模型时代的新通常
1.大数据自治涵盖的范围
大数据自治是一个狭义的概念,涵盖从数据采集到数据接入、计算、存储、运行等一系列疑问。它不只包括数据控制,还触及数据研发和业务出现疑问的处置。大数据自治的目的是控制数据的整个生命周期,从数据发生到数据经常使用,再到数据销毁。
在过去的三十年中,数仓的开展历程阅历了从传统数仓到大数据数仓,再到数字数仓的三个阶段。传统数仓如 Oracle、DB2 等,架构繁多,关键处置结构化数据,数据规模较小,实时性较低。
随着 Google 三篇论文的宣布,开局进入大数据时代,Hive、Hadoop/MR、Spark 等大数据数仓先后问世,发生了 Lambda、Kappa 等较为复杂的架构,处置的数据规模呈爆炸性增长,结构化、半结构化和异构化数据并存,实时性要求更高,计算也变得更为复杂。
从 2020 年至今,处于数智数仓时代,实时性和计算复杂性进一步优化,架构也愈加复杂,包括流批一体、湖仓一体等,大模型也逐渐运行到数仓之中。
随着数仓技术的开展,数据处置的流程从传统的 ETL,变为大数据时代的 ELT,又提出了 EtLT 的概念。
EtLT 是 ELT 的裁减,其中 Extract、Load、Transform 的含意并没有扭转,在此基础上提出了小 t 和大 T 的区别。针对数智数仓的技术生态,小 t 更严密地联合湖仓技术,偏数据底层的工程架构,而大 T 阶段则更贴合业务,联合大模型的才干,成功偏数据下层运行的上班。
二、天穹大数据自治才干树立和落地:双引擎战略
天穹大数据自治平台驳回双引擎战略,联合 SQL 智能体和传统机器学习,推进平台自治。经过构建感知力、观测力、诊断力和优化力,成功对数据相关进程的细粒度感知和智能优化。才干范围包括从数据采集、数据接入,到数据计算、存储,再到运行的全流程,从资源、计算、研效等各方面启动了优化。
最终成功了包括算子粒度的回放和诊断才干的产品化:允许 40 多个算子粒度疑问的诊断,并优化了 SQL 粒度算子成功了智能 map join 配置,在 Presto 上测试效果清楚,CPU 和内存节俭清楚。SQL 引擎智能选用方面,优化了计算性能,缩小了资源糜费。作业义务资源优化方面,大幅降落了天穹上运转作业的内存和 CPU 老本。除此之外还有 SQL 智能体的优化改写等配置,这些配置在实践运行中取得了清楚效果。
感知力是数据系统的关键局部,选择着下层观测力、诊断力、优化力等才干体系树立的深度。天穹平台经过 JVM 级别的数据感知,已基本笼罩一切物理机和容器,每天感知的数据量到达了万亿规模。
经过对采集数据启动目的的聚合和形象,树立以肥壮分为外围的数据体系,成功义务进程粒度的数据上卷和下钻操作,使大数据生态的“黑盒”愈加透明化,发现底层目的或意外疑问。
(1)全链路诊断才干的构建
针对外部经常遇到的作业链路较长,疑问定位和诊断上班繁琐低效的疑问,天穹平台基于组件粒度构建了全链路诊断才干,使得用户能够明晰地了解疑问出当初哪个组件,并在此基础上启动深化开掘和对比。例如,假设疑问出当初计算引擎侧,能够明晰地告知用户作业在计算引擎层是因为资源抢占被 kill,或义务自身数据收缩、数据歪斜等要素造成的意外,并提供细粒度的判别。
同时,针对 SQL 义务,推出了算子粒度的诊断,可以将实践物理口头环节中出现的意外点与 SQL 逻辑片段对应起来,从而协助用户在冗杂的计算环节中极速准确地定位到疑问的详细要素。
在实践运行中,咱们曾经将算子粒度的回放和诊断才干产品化。这使得用户能够回放 SQL 计算的环节,诊断每一个算子的数据规模和资源占用状况。目前,咱们曾经允许了 40 多个算子粒度疑问的诊断。
针对在大数据计算环节中面临的应战,如义务运转缓慢、数据处置速度不理想以及义务资源启动艰巨等疑问,构建了优化力才干体系。在资源方面,针对 Spark 和 Flink 启动了深化优化。在性能方面,引入了 SQL 引擎选用、智能 SQL Hint 和智能 RSS 等技术。此外,经过 SQL 智能体的构建,成功了 SQL 优化改写、语法纠错和诊断等配置。
针对 Spark 的资源优化,关键构建了基于 Spark 历史运转数据的方法,驳回白盒和黑盒两种方式启动调整。白盒方法经过剖析历史运转环节中资源的实践进程粒度占用状况,拟合出适宜作业正确运转的资源参数。咱们依据历史运转曲线自定义计算弹性因子,并每天为作业介绍资源参数。而黑盒办规律无需用户感知,算法基于期间和性能两个维度智能调整参数,并每天定时启动迭代。经过前一周期的运转结果,调整下一周期的参数,并提交到集群中运转。
最终针对一些运行组清楚节俭了超越 50% 的内存老本和 30% 的 CPU老本,在资源优化方面取得了清楚的成绩,降落了资源的经常使用。
(2)SQL 引擎选用,让 SQL 计算愈加高效
在 SQL 计算引擎选用方面,依据 SQL 计算逻辑的复杂度判别其是 IO 密集型还是 CPU 密集型,并将不同的 SQL 散发到不同的计算引擎上以提高性能。同时从历史运转的 SQL 中提取特色,应用 XGBoost 模型启动训练,以优化底层的建模环节。
最终经过特色化和模型训练,引擎 failover 规避率有了清楚优化,进一步降落了资源糜费。
(3)SQL 算子粒度优化,反哺计算引擎
除了资源优化和 SQL 引擎选用外,还关注算子粒度的优化。从历史运转数据中开掘蕴含算子粒度信息的数据记载,经过布局处置后构成 SQL 算子粒度的数据体系。这有助于允许 SQL 的 CBO 代价模型优化。例如,假设提早知道计算环节的数据量,可以智能增加 map join 等揭示以优化效率。此外,关于每天定时调度的数据计算义务,因为 SQL 逻辑和数据量相似,可以经过历史数据启动预测和优化。
最终经过算子粒度的数据开掘,将运转环节中的数据量大小和数据记载数喂给 SQL 代价模型,成功了智能 map join 的配置,清楚提高了 SQL 计算的性能。在 TPC-DS 测试集中,智能 map join 的占比到达了 57%,清楚优化了 CPU 和内存的经常使用效率。
因为日常机器计算类型中 SQL 义务占比很高,且规范化水平较高,天穹联合大言语模型关于 SQL 的了解力,以优化 SQL 性能优化作业效率为目的,启动了 SQL 智能体的构建。
腾讯外部基于混元大言语模型,设计了多轮对话、问诊形式的 SQL 智能体,涵盖了 prompt 常识库、function call 等环节。
上方引见一下 SQL 智能体的构建环节。首先,经过现网搜集 SQL 优化和失误 SQL,以及 SQL 工单语料库,在此基础上树立 SQL 指令集,基于基座模型启动指令微调,并联合 prompt 强化用户用意。
最终经过 SQL 智能体的构建,从多方面成功了 SQL 的优化改写和诊断,清楚优化了 SQL 性能。
(1)正确性解析和转换
它能智能将硬查问中的 SQL 翻译为为 inner join,并实时对比优化前后的 SQL。
SQL 智能体在优化改写方面也取得了清楚的成绩。经过底层的 OLAP 引擎测试发现,性能优化了 17.19%。这标明 SQL 智能体能够有效地优化 SQL 计算,提高系统性能。
(2)SQL 长度优化
大模型能够了解长 SQL 内容,智能去除不用要的如 order by 的逻辑片段,提高计算效率。
(3)SQL 逻辑简化
此外,SQL 智能体还能够简化 SQL 逻辑,借助暂时表等技术,使得 SQL 计算逻辑愈加繁复和高效。
在未来的布局中,咱们将继续优化数据存储和研发才干,始终丰盛和优化大数据自治的才干。最终,咱们方案打造一个湖仓智能自治的处置方案,撑持大数据平台的智能化运行,推进大数据自治向更高档次开展。