PowerData-杨国栋 PowerData
PowerData
数据之力 非同凡想
■ ■ ■
思考 交流 贡献 共赢
○
○
全文共 4357 字,建议阅读 15 分钟
系列前言 / Series Preface
本系列文章为阅读学习《大数据SQL优化原理与实践》陈鹤 杨国栋◎著 一书的学习笔记。在阅读整篇之后,进行提炼和个人思考,欢迎讨论。
此书分为4篇,包含10章内容。
认知篇(第1章):主要面向初学者阐述为什么大数据计算或存储引擎发展至今,最终都会选择以SQL作为统一查询语言的原因及利弊,大数据SQL从业者目前面临的主要问题是什么,以及调优的两个根本目标。
原理篇(第2章)以深入浅出的方式解读SQL的本质,为了降低读者理解的门槛,本篇还以Hive、Spark和Flink这三个主流的引擎框架为例,从源码的角度探索SQL执行背后的秘密。
实践篇(第3-9章):首先深入解读引擎查询优化器的两大优化策略——基于规则的优化和基于代价的优化的实现原理、示例和局限性,然后以Hive、Saprk、Flink等主流引擎为蓝本,探索SQL优化(包括结构与参数调优、子查询优化、连接优化、聚合优化)的解决思路和方法论,并给出作者的多年总结的一些“坑”。
案例篇(第10章):以实践篇的各种真实需求调优历程为基础,以点带面,以小明大,分享电商、金融、银行这三个典型行业的典型公司大数据SQL调优案例,还给出了内容平台数仓、查询高可用、实时性数仓等业务场景的解决方案。
作者:PowerData-李钊丞|编辑:PowerData-李钊
Chapter
01
大数据的发展历程
个人总结的大数据发展时期
其一为开源组件蛮荒发展时期,各种组件针对不同的场景,寻求差异化竞争八仙过海,各显神通。
其二为场景化查漏补缺时期,已有设计的组件已难以支撑不断发展的业务场景、倍增的数据规模以及高效率读写统计分析需求。
其三为一体化集成式大数据平台时期,这时候开始提出建设一站式大数据平台,降低开发门槛和运维难度,提高工作效率。
其四为大数据理论体系建设时期,这时候阿里率先提出OneData,腾讯、华为等公司相继跟进输出各自的数据之道 or 数据之路,旨在数据基础建设时同步开展数据治理,元数据管理等工作,开始在数据服务体系发力。
其五为当下,已有的综合解决方案如数据中台,数据仓库的大基建时代已经过去,开始精益化管理、运营和服务,做降本增效,做数据资产。
自2021年之后,大数据领域再没有开天辟地式的理论或产品出世,大都踩在巨人的肩膀上做更细化场景的增删改查。湖仓一体也是这个阶段提出的,湖上建仓和数仓沉湖,改变存储架构及介质,以降本增效开拓市场。同时MPP数据库在查询层(PB级以下)做到了实质性的场景统一,性能提升,也是以降本增效开拓市场。
个人总结未来大数据可能发力方向
1. 统一生态,赢者通吃:比如说MPP数据库在中小规模数据(PB级以下)处理上的优势显现,正在逐步替代传统架构中的Redis、HBase、ADS层Mysql、Oracle、PG库等组件,形成更加精简高效的解决方案。
2. 上云趋势:不仅是数据,还包括应用和服务都在向云端迁移。尤其是大型企业会以自建异地多活机房 or 私有化云为主,以确保数据安全性和灵活性。
3. 数据架构与生态统一:应用场景确定需求,并由需求驱动生态和架构的选择。从Lambda架构到Kappa架构,再到湖仓一体和存算分离,架构选择始终受业务需求的影响。
4.大数据与AI融合:如何高效利用数据成为核心竞争力的关键。结合人工智能的新架构和模式不仅提升了效率,还为企业开辟了新的市场机会。
5. 数据治理与元数据管理:数据治理体系和元数据管理保证数据质量,是实现数据价值最大化的基础。
6. 数据中台建设:通过整合资源、复用组件、统一数据规范、统一数据模型、统一数据服务,做到以上几点从而实现企业全域数据的集中管理和优化,促进数据的服务化、价值化和资产化。
7. 业务与数据双驱动:数字化转型的成功案例表明,数据和业务相互促进,共同推动企业的持续发展,具体学习可以参考数字化转型灯塔项目,每个灯塔项目都是数字化转型成功的现实案例。
Chapter
02
大数据与SQL
SQL语言作为声明式编程语言,其核心优势在于它能够极大地简化数据操作过程。用户只需专注于所需的数据目标和逻辑,而无需深入了解具体的实现细节。SQL的这一特性,加上其广泛支持的数据查询功能、丰富的内置函数以及ANSI标准化的语言结构,使得学习和使用SQL变得更加容易。无论在过去、现在还是未来,那些能够方便用户操作、帮助其实现降本增效的产品始终是主流。
尽管SQL语言本身降低了技术门槛,但是“会易精难”。同样的查询结果可以通过多种不同的SQL写法来实现,而这些不同写法之间在资源消耗和执行时间上的差异可能呈指数级增长。即使目前计算引擎和MPP数据库已经能够进行成本优化和任务调度,但对于从业者而言,理解SQL执行原理,掌握基于成本(CBO)和基于规则(RBO)的优化技巧,依然是编写高性能SQL的关键所在。
通过深入学习这两种优化器的工作机制,了解常见的“踩坑点”及其对应的调优策略,从业者可以避免常见的性能瓶颈,确保所编写的SQL代码高效且易于维护,从而提高查询效率以及降低资源和时间成本。
Chapter
03
大模型与TextToSql
SQL语言作为标准化的语言,不仅简化了用户的编写过程,还为大模型解析自然语言并生成SQL查询提供了便利。在智能数据分析场景中,这种能力让用户能够通过简单的语言或文本指令进行数据查询,极大地降低了开发和技术门槛。当前市场上一些领先的解决方案已经可以满足超过70%的日常数据查询需求,并且不仅限于基本的数据检索,还支持诸如同比、环比以及波动分析等更为复杂的数据分析功能。
此外,这些系统基于查询结果提供的简单数据报告生成功能。用户可以根据预设或自定义模板快速生成格式化的报告,这使得客户能够在日常工作流程中轻松完成报送、抄送以及日报和周报的撰写等工作。
实现TextToSQL的步骤可以概括为以下六个步骤:
1. 数据与知识语料准备:收集和整理必要的自然语言查询样本及其对应的SQL查询,构建一个详尽且高质量的知识库。这个知识库应该包含领域特定术语、同义词表、数据库表结构及字段释义等信息,以支持后续的解析和转换过程。
2. 知识预处理:对收集到的知识和语料进行深度梳理,包括但不限于:明确各实体之间的关系(如通过构建知识图谱),整理同义词列表,深入理解库表模型及其含义,并对文本数据进行清洗,去除噪声,确保数据的质量和一致性。
3. 特征提取:采用词分法、词嵌入和实体识别等方式,从输入的自然语言中抽取有意义的特征。这些特征将作为训练模型的基础,帮助系统更好地理解和解析用户意图。
4. 模型训练:采用序列到序列(Seq2Seq)架构、注意力机制、提示学习或强化学习等先进技术来训练模型。让模型学会如何将自然语言查询转化为正确的SQL语句,同时能够应对各种复杂的查询场景。
5. 测试与验证:对生成的SQL语句进行语法检查、语句优化、查询结果验证,确保系统输出符合预期。
6. 部署与应用:完成上述所有步骤后,将训练好的模型集成到实际应用环境中,使其能够接收用户的自然语言输入并返回相应的查询结果。
让大模型更好地识别数据库表字段的不同释义的关键原则:
1. 首先要明确,人工智能是运用统计学的方法,让机器变得更聪明,并不支持“无中生有”。
2. 具有一定水平的开发者看不懂的库表字段,那么大模型更不可能看懂。
3. 数据模型和数据质量越高,最终实现的效果和准确率越高。
4. 预训练大模型本身综合能力越强,最终实现的效果和准确率越高。
为了使大模型更准确地理解库表字段的释义,以下是三种主要的实现路径及其优缺点:
01
大模型+知识图谱
将库表字段及释义,通过知识图谱进行存储,大模型在解析自然语言时,会和知识图谱进行查询做知识增强生成SQL。
优点:
- 语义理解更深入:知识图谱以图形化的方式表示实体之间的关系,使大模型更准确地理解自然语言中的实体和它们之间的关系,尤其是在处理复杂或领域特定的查询时。
- 知识增强:大模型在解析自然语言时,可以与知识图谱进行交互查询,获取额外的知识信息,从而提高SQL生成的准确性。
- 可扩展性:知识图谱可以方便地扩展和更新,以适应新的数据和领域。
- 可解释性:知识图谱提供了清晰的关系结构,提高生成SQL的透明度和可解释性。
缺点:
- 构建成本高:构建和维护一个高质量的知识图谱需要大量的人力、物力和时间投入。
- 查询复杂性:与知识图谱进行交互查询可能会增加系统的复杂性,降低查询效率,特别是在图谱规模较大时。
- 知识覆盖面有限:知识图谱无法覆盖所有领域的知识,导致在某些情况下生成的SQL出错或生成不出来。
02
大模型+向量知识库
将库表字段及释义,通过向量知识库进行存储,大模型在解析自然语言时,会和向量知识库进行查询做知识增强生成SQL。
优点:
- 高效查询:向量知识库支持高效的相似度搜索,有助于大模型快速找到与自然语言问题相关的库表字段及释义。
- 灵活性:向量知识库可以存储各种类型的知识,包括结构化、半结构化和非结构化知识。
- 可扩展性:向量知识库可以方便地扩展和更新,以适应新的数据和领域。
缺点:
- 向量表示的局限性:向量表示可能无法完全捕捉知识的复杂性和多样性,导致在某些情况下生成的SQL不够准确。
- 构建成本:构建和维护一个高质量的向量知识库也需要一定的投入。
- 语义理解能力有限:向量知识库主要依赖相似度搜索,可能在语义理解方面存在一定的局限性。
03
大模型
将库表字段及释义通过训练作为模型自身参数,大模型在解析自然语言时,会直接根据智能看数产品的架构生成SQL
优点:
- 端到端学习:大模型可以通过训练直接学习库表字段及释义与SQL之间的映射关系,实现端到端的学习。
- 无需额外知识库:不需要构建和维护额外的知识图谱或向量知识库,降低了系统的复杂性。
- 泛化能力:大模型具有较好的泛化能力,可以适应不同的数据和领域。
缺点:
- 训练数据需求大:需要大量的标注数据进行训练,以覆盖各种可能的自然语言问题和SQL查询。
- 计算资源需求高:大模型的训练和推理需要大量的计算资源,可能导致系统成本较高。
- 可解释性差:大模型的内部工作机制较为复杂,可能导致生成的SQL难以解释和理解。
Chapter
04
本文小结
在大数据发展历程中,我们经历了从开源组件的百花齐放到场景化查漏补缺、一体化集成平台的建设,再到理论体系和数据治理的深化。当前阶段强调的是精益管理和降本增效,如湖仓一体架构的提出以及MPP数据库在查询性能上的优化,都是为了适应更高效的市场需求。
对于SQL语言而言,其声明式特性极大地简化了数据操作,使得SQL成为大数据处理不可或缺的一部分。然而,编写高效SQL语句仍需深刻理解优化器原理(CBO、RBO),这对从业者提出了更高要求。
结合大模型与TextToSQL的应用,可以看出三种主要实现路径各有千秋:
1. 大模型+知识图谱:这种方法通过图形化表示实体关系,增强了对自然语言的理解深度,提高了SQL生成的准确性和可解释性,但构建和维护成本高,且查询效率可能受影响。
2. 大模型+向量知识库:利用高效的相似度搜索来增强SQL生成能力,具备良好的灵活性和扩展性,不过在复杂语义理解和知识覆盖面方面有所不足。
3. 纯大模型:采取端到端学习策略,减少了对外部知识库的依赖,拥有较强的泛化能力,但需要大量训练数据,并且内部机制复杂,影响了可解释性。
未来,随着统一生态的发展、云服务的趋势加强、AI与大数据的深度融合,以及数据治理的重要性日益凸显,大数据行业将继续向着更加智能化、精细化的方向前进。同时,国家政策的支持也将推动数据资产化和交易市场的健康发展,为行业注入新的活力。
往期精彩文章合集
【开源人物专栏】
【技术文章专栏】
【技术实践】Doris数据查询性能解析:Explain 与 Profile 功能深度应用
【社区活动专栏】
活动回顾 |【数字经济·城市脉动】PowerData西安开源行
活动回顾 |【数字经济·城市脉动】PowerData 杭州开源行
<<< END >>>
PowerData是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。
社区整理了一份每日一题汇总及社区分享PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您提升自我,成功上岸。
扫码关注下方公众号,点击"加入社区",即可加入社区群,免费领取资料,报名社区活动,与社区共同成长。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。