一文讲解大数据处理分析引擎Presto
大数据的时代对数据处理和分析提出了许多要求。企业用户希望从业务数据中生成报告,执行操作分析,并执行实时推荐计算。因此,在大数据处理和分析领域出现了许多工具。Collupar Databases Clickhouse和Hbase提供存储和分析功能,Hadoop系列中的MapReduce和HDFS提供离线计算功能,并且Hive以数据仓库的形式简单且易于学习。分析能力,实时计算发动机传递还提供流批量计算能力,可以说每个都有自己的优点!但是,有成千上万的工具,只有适合您的工具是最好的。今天,我们将介绍Prestopresto是Facebook的开源分布式SQL查询引擎,支持PB级数据计算。原因是它在许多分析发动机中。选择它的主要原因是它可以独立运行并且不依赖于其他外部系统;此外,简单的数据结构使得易于访问大部分数据;最后,丰富的插件接口可以连接到许多数据源系统。基于存储器的计算模式和基于管道设计的运行和输出结果的运行模式也使PRESTO能够快速获得处理数据。总之,Ali和Meituan等互联网巨头也使用Presto作为数据分析中的底层发动机。Presto的体系结构如下所示,
其中包括五个部分:客户端,探索服务,协调员,工人和连接器。客户端包括Presto自己的客户端和jdbc客户端调用api;探索服务是一个注册表,所有工作人员都会在它中注册,协调器从中获取工作者节点,这与MicroService体系结构中的“制作人”有点类似于MicroStration中心-消费者“关系;工作者负责从连接器获取数据并执行数据分析任务;连接器负责获取数据源信息,可以从文件系统(如HDF)接收数据,也可以接收数据库,例如MySQL,单击数据库,甚至是Kafka等消息队列中的数据。所以如何执行Presto中的SQL查询任务?要简单地放置它,它如下所示:用户在客户端上发送SQL查询请求,协调器接受来自客户端的请求,解析SQL语句,生成查询计划并生成SQLQueryexecution-“SQLStageExecution->HttPremoteplan”根据查询计划。,将最终计划任务分配给工作节点;工作节点根据连接器获取数据任务内容,执行计算,并在计算完成后将结果给出协调器。协调器获取结果并将结果写入缓存,并且客户端在执行任务中的查询结果后持续轮询协调器,数据显示给用户。在介绍Presto如何执行SQL任务后,让我们来看看其数据结构和存储模型。presto中的数据结构是三层模型,目录-“架构->表,目录对应于数据源,模式对应于数据源中的数据库,表对应于数据库中的表。存储模型presto包括页面-“块。页面是多行数据的集合(每行包含多列数据),也是presto计算和处理的最小数据单元。块是特定数据列。数据presto的结构和存储模型很清楚,并且在访问presto时变得更加清晰。Presto的处理速度很快。除了基于存储器的工人节点的计算处理之外,管道模型用于在工作者内计算节点和工作者节点之间。这使用户能够非常快速地,并且在输入输入时将获得结果。首先查看以前的结果,然后看看后续结果。对于s AME数据处理和分析引擎,处理速度的差异不同,主要与所使用的工具的架构和操作原理相关。在早期,Facebook使用Hive进行数据分析和处理。后来,因为它太慢,它自身开发并写了presto。据说同样的SQL查询任务在蜂巢中几乎需要几乎一分钟,但在PRESTO人中少于1秒。,然后今天我们也觉得一股Facebook的数据分析和处理历史。关于Hive,它是一个基于Hadoop的数据仓库工具。您还可以使用Hive进行数据查询,分析和处理。让我们来看看蜂巢的作品吗?在Hive中,所有HQL语句都转换为数据查询任务。所有数据划分为处理前相同大小的数据。通过地图模型首次处理数据以获得中间结果,然后通过降低模型进行两次中间结果。,最后获取分析数据并将其存储在HDFS中。在该模型中,所有数据分析和处理都需要多次转换为中间结果,这相对较慢;其次,在MR模型中生成的中间数据存储在磁盘中,每次数据进入磁盘时,都会从磁盘读取。把它拿出来,它非常消耗IO,时间延迟太长了。介绍Presto后,我们将返回现实并了解互联网的当前状态。互联网的不断发展,移动互联网,事物,5克,人工智能,云计算等技术,生产越来越多的数据,以及企业精致运作的要求,已经产生了大量的数据处理和分析工具。使用数据仓库,数据集市,数据湖泊和数据中心等商业格式,我们继续向大数据领域提供权力,对数据分析人才的需求也在增加。在波浪之后,让我们一起欢呼!