这是我参与「第四届青训营」笔记创作活动的的第7天
一、概述
大数据与OLAP的演进
- 什么是大数据?
关于大数据这里我们参考马J希尔伯特的总结:大数据其实是在2000年后,因为信息化的快速发展。信息交换、信息存储、信息处理三个方面能力的大幅增长而产生的数据。
- Hadoop:基于廉价机器的存算分离的大规模分布式处理系统
1.谷歌在2003、2004年 发布Google File System论文、MapReduce论文。
2.2008年,Hadoop成为apache顶级项目
- OLAP(OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI) 应用程序背后的技术。
- OLAP VS MapReduce
-
MapReduce代表了抽象的物理执行模型,使用门槛较高。
-
与Mapreduce Job相比,OLAP引擎常通过SQL的形式,为数据分析、数据开发人员提供统一的逻辑 描述语言,实际的物理执行由具体的引擎进行转换和优化。
- 常见的OLAP引擎:
预计算引擎: Kylin, Druid
批式处理引擎: Hive, Spark
流式处理引擎: Flink
交互式处理引擎: Presto, Clickhouse, Doris
- Presto设计思想
Presto最初是由Facebook研发的构建于Hadoop/HDFS系统之上的PB级交互式分析引擎, 其具有如下的特点:
多租户任务的管理与调度
多数据源联邦查询
支持内存化计算
Pipeline式数据处理
二、Presto基础原理和概念
- 基础概念介绍-服务相关 Coordinator:
解析SQL语句、生成执行计划、券爱执行任务GWoke节点
Worker:
sk处理数据、执行Tas、共其他Wotke交互传输数据
- 基础概念介绍-数据源相关 Connector:
一个Connector代表种数据源。 可以认为Connector是由Presto提供的适配多数据源的统一接口。
Catalog:
管理元信息与实际数据的映射关系。
- 基础概念介绍-query相关
Query
基于SQL parser后获得的执行计划
Stage
根据是否需要shufle将Query拆分成不同的subplan,每个subplan便是一个stage
Fragment
基本等价于Stage,属于在不同阶段的称呼,在本课程可以认为两者等价
Task
单个Worker节点上的最小资源管理单元在一个节点上,一个Stage只有一个Task, 一个Query可能有多个Task
- 基础概念介绍-数据传输相关
- 核心组件架构介绍
- 核心组件架构介绍-服务发现
- 核心组件架构介绍-通信机制