这是我参与「第四届青训营 」笔记创作活动的第3天.
本节课程有以下四点
- 介绍大数据与OLAP
- 介绍Presto的基础概念与原理,加深对Presto基础概念的理解
- 对Presto的特色和重要机制进行讲解和解析
- 基于实际工作中遇到的Case,介绍Presto常用的优化工具
概述
- 大数据:在信息化时代背景下,由于信息交互,信息存储,信息处理能力大幅度增加而产生的数据。
- OLAP:OLAP (OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI)应用程序背后的技术。现如今OLAP已经发展为基于数据库通过SQL对外提供分析能力
- Presto:Presto最初是由facebook研发的构建与Hadoop/HDFS系统之上的PB级交互式分析引擎,其具有如下特点:
- 多租户任务的管理与调度
- 多数据源联邦查询
- 支持内存化计算
- pipeline式数据处理
概念
- Presto的基础概念有哪些
- 服务相关概念
- 数据源相关概念
- Query相关概念
- 数据传输相关概念
2.Presto的通信方式有哪些,Thrift通信的优势有哪些
Http 1.1 VS Thrift Thrift具有更好的数据编码能力,Http1.1还不支持头部信息的压缩,Thrift具有更好的数据压缩力
3.Presto Worker的不同状态
- Active
- InActive
- Shutdown
4.Presto架构图
重要机制
- Presto用户多租户隔离: Presto 通过Resource Group对不同的用户创建不同Group从而实现不同租户,不同场景的资源管理
- Presto Resource Group的优点:支持通配符的形式,对不同租户,不同提交场景下的用户进行限制
- Presto Resource Group的缺点:资源的管理和判断是以当前用户正在运行的SQL资源使用量为基准,对于低频大SQL场景不太适用
- Presto是从以下方面实现了多租户的任务调度:
- Stage调度策略
- Task的节点选择策略
- Split调度策略
- Presto Stage调度的方式:
- AllAtOnceExecutionPolicy
- PhasedExecutionPolicy
- Presto多数据源支持的优点:支持多数据源的联邦查询
- Presto多数据源支持的缺点:针对不同数据源,还存在许多问题需要解决
- 谓词下推
- 每个数据源都需要单独的一套catalog管理
- 如何针对数据源进行分片操作
性能优化实战
- 常用的性能工具
- Grafana
- Arthas
- Flame Figure(火焰图)
- java指令:jstack等指令