Presto架构原理与优化介绍 | 青训营笔记

68 阅读2分钟

Presto架构原理与优化介绍

这是我参与「第四届青训营 」笔记创作活动的第7天简单介绍了一下OLAP和Presto的相关知识。

大数据其实是2000年后,因为信息化的快速发展。信息交换、信息存储、信息处理三个方面能力大幅增加而产生的数据

OLAP对业务数据执行多维分析并提供复杂计算,趋势分析和复杂建模数据能力。与MapReduce相比OLAP引擎通过SQL的形式为数据分析、数据开发人员提供了统一的逻辑描述语言,实际的物理执行由具体的引擎进行转换和优化

OLAP(OnLine Analytical Processing),即联机分析处理。OLAP对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。它主要用于支持企业决策管理分析,是许多商务智能(BI)应用程序背后的技术。OLAP使最终用户可以对多个维度的数据进行即席分析,从而获取他们所需知识,以便更好地制定决策。OLAP技术已被定义为实现“快速访问共享的多维信息”的能力。

OLAP操作

  • 钻取(Drill-down):在维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,比如通过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度4、5、6每个月的消费数据,如上图;当然也可以钻取浙江省来查看杭州市、宁波市、温州市……这些城市的销售数据。
  • 上卷(Roll-up):钻取的逆操作,即从细粒度数据向高层的聚合,如将江苏省、上海市和浙江省的销售数据进行汇总来查看江浙沪地区的销售数据,如上图。
  • 切片(Slice):选择维中特定的值进行分析,比如只选择电子产品的销售数据,或者2010年第二季度的数据。
  • 切块(Dice):选择维中特定区间的数据或者某批特定值进行分析,比如选择2010年第一季度到2010年第二季度的销售数据,或者是电子产品和日用品的销售数据。
  • 旋转(Pivot):即维的位置的互换,就像是二维表的行列转换,如图中通过旋转实现产品维和地域维的互换。

image-20220813172837460.png

常见的OLAP引擎

  • 预计算引擎: Kylin,Druid
  • 批处理引擎:Hive,spark
  • 流式处理引擎:Flink
  • 交互式处理引擎:Presto,Clickhouse,Doris

设计思想

  • 多租户任务的管理与调度
  • 多数据源联邦查询
  • 支持内存化计算
  • Pipeline式数据处理