这是我参与「第四届青训营 」笔记创作活动的第7天,在第七节课中主要了解到了Presto架构原理与优化介绍有关的内容。
概述
大数据与OLAP系统的演进
大数据:
- 通信和网络带宽的大幅增长
- 整理、转换、分析数据的能力大幅增长
- 计算机存储量的大幅增长 Hadoop:
- 基于廉价机器的存算分离的大规模分布式处理系统 OLAP:对业务数据执行多维分析,并提供复杂计算。趋势分析和复杂数据建模的能力,是许多商务智能应用程序背后的技术 OLAP核心概念:
- 维度、度量 常见的OLAP引擎:
- 预计算引擎:Kylin,Druid
- 批式处理引擎:Hive,Spark
- 流式处理引擎:Flink
- 交互式处理引擎:Presto、Clickhouse,Doris
Presto设计思想
特点:
- 多租户任务的管理与调度
- 多数据源联邦查询
- 支持内存化计算
- Pipiline式数据处理
Presto基础原理和概念
基础概念介绍
服务相关
Coornator:
- 解析SQL语句
- 生成执行计算
- 分发执行任务给Worker节点 Worker:
- 执行Task处理数据
- 与其他Worker交互传输数据
数据源相关
Connector:
- 一个Connector代表一种数据源,可以认为Connector是由Presto提供的适配多数据源的统一接口 Catalog:
- 管理元信息与实际数据的映射关系
Query相关
- Query
- Stage
- Fragment
- Task
- Pipeline
- Driver
- Split
- Operator
数据传输相关
- Exchange&LocalExchange
- Exchange
- LocalExchange
核心组件架构介绍
Presto架构图
服务发现:
- Worker配置文件配置Discovery Service地址
- Worker节点启动后会向Discovery Service注册
- Coordinator从Discovery Service获取Worker的地址 通信机制:
- Presto Client/JDBC Client与Server间通信:Http
- Coordinator与Worker间的通信:Thrift/Http
- Worker与Woker间的通信:Thrift/Http