大数据项目课程-大数据体系介绍与 SQL 处理流程

47 阅读2分钟

需要回答的问题:

  1. 什么是SQL?
  2. 大数据体系构成?
  3. SQL处理流程?
  4. SQL在分布式环境下如何展开数据处理?

一. 大数据体系

基础设施、储存系统、资源调度、分析引擎、权限管控数据开发、业务应用 课程主要集中于分析引擎存储系统消息队列

二. SQL

1.大数据体系和SQL

(1)SQL是提供分析引擎的功能:他是一种处理大数据的标准方式和语言 (结构化查询语言) (2)基本流程:

SQL AST logical plan physical Plan

Parser --> Analyzer ------> optimizer --> executor
(3)介绍

Parser

-> AST

parser是一个文本解析器,对输入的文本进行词法分析(拆分成单元)和语法分析(按照规定的语法规则检查单词组合)

AST是抽象语法树,把parser拆解出来的各种单元按照树形储存,不同节点有不同的语法功能 例子: x = 1+2 parser 负责解析这个代码的意思,AST负责按照树的结构储存代码的功能

AST

--->Analyzer

Analyzer执行的检查功能,他的输入是AST,他负责检查语义是否正确,SQL语句引用的数据是否可以操作,是否存在等问题

Logical Plan是语句的逻辑表示,由一些针对数据基本操作(operator)组成:选择、投影、连接、分组等,他不涉及数据的具体操作,只表示逻辑先后

例子:analyzer检查AST是否合适,可能要对第一列第二列相加,结果第一列第二列不存在。Logical Plan负责将语句转化为逻辑树

(left-deep tree:连接操作树结构,多个二元连接组成的树状结构,左边的节点代表已经操作好的执行任务,从左往右计算)

logical plan

------> optimizer

为什么查询优化:找到一个正确的能够完成数据处理目标的代价最小的物理执行计划,因为SQL只给定了目标,没有给定操作方式,也没有给定不同节点处理哪些数据,数据如何传输等

例子:比如说上一个阶段的logical Plan中要求排序,那么有很多种排序方法,代价不同 要充分利用数据的亲和性:尽量针对同一批数据的操作、数据传输读取在同一节点进行

目的是:最小化网络数据传输,因为网络传输比较慢

physical Plan ----> executor

plan fragment:优化器会将操作拆分优化到不同节点,每个节点获取获取一部分任务 节点之间用shuffle算子连接

Executor:节点执行任务