Presto 架构原理与优化介绍 | 字节青训营

62 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的的第7天.

01.Presto 的概述

OLAP:OnLine Analytical Processing(在线分析处理),对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察到信息。

具有4个特点: image.png OLAP核心概念:①维度②度量 image (5).png

1. 常见的OLAP引擎:

  • 预计算引擎:Kylin,Druid(以空间换时间)

  • 批式处理引擎:Hive,Spark(注重吞吐量)

  • 流式处理引擎:Flink(注重实时性)

  • 交互式处理引擎:Presto,Clickhouse,Doris(注重查询时延的问题)

2. Presto 设计思想

image.png

02.Presto基础原理和概念

  1. Presto架构图

image (6).png 2. 基础概念的的介绍

Client端:发送查询请求,SQL语句,返回给查询请求的是结果集

Coordinator:解析SQL语句,生成执行计划,分发执行任务给Worker节点

Worker:执行Task处理数据,与其他Worker交互传输数据

Connector:一个Connector代表一种数据源。可以认为Connector是由Presto提供的适配多数据源的统一接口

Catalog:管理元信息与实际数据的映射关系

image.png

image.png

image.png

image.png

image.png

image.png

03.Presto 重要机制

  1. 多租户资源管理-Resource Group

  2. 多租户下的任务调度

  • Stage 调度

image.png

  • Task 调度

image.png Task数量的确定:

image.png

image.png

  • Split 调度

image.png

  • 内存计算

image.png

  • 多数据联邦查询

image.png image.png

04.性能优化实战

  • 常用性能分析工具:

image.png

image.png image.png

image.png

image.png