`
yugouai
  • 浏览: 497558 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Prestodb概述及性能测试

 
阅读更多

概述内容

(1)简介

(2)Hive and Prestodb, comparison of functionality

(3)Hive and Prestodb, comparison of performance

 

(1)简介

Presto是由facebook开发的一个分布式SQL查询引擎, 它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window functions)。

Presto框架图如下:



     下面的架构图中展现了简化的Presto系统架构。客户端(client)将SQL查询发送到Presto的协调员(coordinator)。协调员会进行语法检查、分析和规划查询计划。计划员(scheduler)将执行的管道组合在一起,将任务分配给那些里数据最近的节点,然后监控执行过程。客户端从输出段中将数据取出,这些数据是从更底层的处理段中依次取出的。

     Presto的运行模型和Hive或MapReduce有着本质的区别。Hive将查询翻译成多阶段的MapReduce任务,一个接着一个地运行。每一个任务从磁盘上读取输入数据并且将中间结果输出到磁盘上。然而Presto引擎没有使用MapReduce。它使用了一个定制的查询和执行引擎和响应的操作符来支持SQL的语法。除了改进的调度算法之外,所有的数据处理都是在内存中进行的。不同的处理端通过网络组成处理的流水线。这样会避免不必要的磁盘读写和额外的延迟。这种流水线式的执行模型会在同一时间运行多个数据处理段, 一旦数据可用的时候就会将数据从一个处理段传入到下一个处理段。这样的方式会大大的减少各种查询的端到端响应时间。



 

 

(2)Hive and Prestodb, comparison of functionality

        √: Yes; ×: No; Blue: The main differences between hive and presto

 

 

hive 0.11.0

presto 0.56

Implement

Java

Java

DataType

 

integer

string

floating point

boolean

map

list

struct

uniontype

×

timestamp

DDL(数据定义语言)

 

create/alter/drop table

×

create view

×

truncate table

×

desc

create index

×

DML(数据操作语言)

 

load data

×

insert

explain

tablesample(基于column做bucket)

group by

order by

having

limit

inner/left/right/full join

union

sub queries

Enhanced Aggregation, Cube, Grouping and Rollup

×

lateral view

×

Function

 

UDF

×

Mathematical Functions

String Functions

Date and Time Functions

Regex

Type Conversion Functions

×

Conditional Functions

Aggregate Functions

Windowing

Distinct

Url

Json

 

功能上,Presto与Hive有几个不同的地方,也可以说是Presto功能不完善,毕竟Presto推出时间不长,详见如下:

1. Presto完成没有数据写入功能,不能使用create语句建表(可通过CREATE TABLE tablename AS query),建立视图、导数据。

2. Presto不支持UDF(用户自定义函数)。

       3. Presto支持窗口函数,但比Hive相对较少。

 

(3)Hive and Prestodb, comparison of performance

测试环境如下:



     由于部分机器涉及应用,暂用4台机器作为prestodb的集群,prestodb所有运算都在内存,所以配置大内存有助于提高prestodb的运算速度(现配置4G)。

以下为具体的测试结果:

记录数:169984827

DML

Hive(s)

Prestodb(s)

limit

5.493

0.05

where

49.255

0.05

count(*)

184.974

86

group by

161.633

110

sub queries

105.686

0.09

join

657.006

177

注:prestodb查询时间只精确到秒,后带小数忽略



 

参考资料

Prestodb官网:http://prestodb.io/

ZOL频道:http://jishu.zol.com.cn/78874.html

  • 大小: 30.3 KB
  • 大小: 31.5 KB
  • 大小: 37.5 KB
  • 大小: 8.7 KB
分享到:
评论

相关推荐

    prestoDB在京东的应用实践

    京东在使用PrestoDB的过程中进行了详细的性能测试,并与传统数据库系统进行了比较。通过对10GB数据量下的12个实际业务场景进行测试,PrestoDB展现出了优异的性能表现。此外,京东还针对PrestoDB进行了一系列的功能...

    Facebook Presto 研究与性能测试v2.3.docx

    ### Facebook Presto 研究与性能测试 #### 一、概述 Presto是一款由Facebook开源的分布式SQL查询引擎,旨在实现对大规模数据集的高效查询。它不仅能够访问HDFS,还支持多种数据源,如RDBMS、Cassandra等。Presto的...

    分布式大数据查询引擎 PrestoDB.zip

    据称该引擎的性能是 Hive 的 10 倍以上。 PrestoDB 是 Facebook 推出的一个大数据的分布式 SQL 查询引擎。可对从数 G 到数 P 的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别。 Presto 可以查询包括 ...

    OSTC2015-京东吕信-prestoDB在京东的应用实践 - V3.0

    主题:PrestoDB在京东的应用实践 演讲人:吕信,京东商城集团运维...演讲介绍:PrestoDB的基础架构和原理、PrestoDB与Hive在实际业务中的性能对比、京东集团对PrestoDB所做的改造、优化以及PrestoDB在京东的应用实践。

    PrestoDB的WebUIAirpal.zip

    Airpal 是一个基于 Web 的查询执行工具,利用 Facebook 的 PrestoDB 进行查询和获取结果。提供了查找表、元数据、浏览数据行,编写和执行查询的功能,这些功能全部通过浏览器完成。一旦查询开始执行,用户可跟踪查询...

    开源项目-prestodb-presto-go-client.zip

    "prestodb-presto-go-client"是其中一个优秀的开源项目,专注于为Presto数据库提供Go语言的客户端库。本文将深入探讨这个项目的背景、功能、使用方法以及其在实际开发中的应用。 Presto是一个高性能、分布式SQL查询...

    presto-tempto

    - **性能测试**:除了功能测试外,还需要进行性能基准测试,以评估系统在高负载下的表现,这通常通过另一套工具——Benchto来实现。 #### Tempto简介 - **端到端的产品测试框架**:Tempto被设计用于进行端到端的...

    docker-prestodb:带Db2连接器的Presto服务器

    docker-prestodb 这是具有映像。 注意:从标签325开始,它开始将基本映像从openjdk切换到正式的prestosql容器映像 。 建造 运行以下命令以使用prestodb版本347和Db2连接器构建映像: docker build --build-arg ...

    pypresto:python中的prestodb客户端协议实现

    PyPresto PyPresto是客户端协议实现 。 Presto是用于大数据的分布式SQL查询引擎。 该客户端实现异步调用,并对结果集进行基本配置。 很抱歉缺少文档,以后我会尝试制作一个更全面的版本。 要求 ...

    PhpPrestoClient:用于连接 PrestoDB 的 PHP 类

    PhpPresto客户端连接到 PrestoDB 服务器的简单 Php 类,该服务器针对 Hadoop HDFS 集群运行分布式查询。 Presto 使用 SQL 的子集作为其查询语言。 Presto 是 Hadoop-Hive 或 Impala 的替代方案。用法有关如何使用它...

    数仓即席查询—Presto

    官网:https://prestodb.io/ Presto架构 Presto由一个coordinator和多个worker组成 Presto优缺点 优点 1.基于内存计算,减少了磁盘IO,计算更快 2.能够连接多个数据源,跨数据源连表查,如从hive查询大量网站访问记录,...

    presto-python-client:Presto 的 Python DB-API 客户端

    安装 $ pip install presto-python-client快速开始使用DBAPI接口查询Presto: import prestodbconn = prestodb . dbapi . connect ( host = 'localhost' , port = 8080 , user = 'the-user' , catalog = 'the-...

    nimPresto:带有nim的prestodb连接器

    Nim语法简洁且类似Python,但具备C/C++的性能,支持生成C、C++或JavaScript代码,这使得它能够在多种平台上运行,并能轻松地与现有的C库集成。 nimPresto连接器的实现基于Nim的异步I/O模型,这允许非阻塞的数据库...

    presto-hazelcast:用于 Hazelcast 的 PrestoDB 连接器。 在内存数据网格上运行 SQL

    这在使用PrestoDb对Hazelcast上运行SQL查询实验。 它启动一个 PrestoDb 服务器和一个嵌入式 Hazelcast 实例。 连接器用于查询地图,就像它们是表一样。 地图中的对象被视为行。用法使用 gradle (2+) 启动服务器。 ...

    presto-go-client:Go编程语言的Presto客户端

    下载并安装presto数据库/ sql驱动程序: go get github.com/prestodb/presto-go-client/presto 确保已在$ PATH中安装了Git。用法该Presto客户端是Go的database/sql/driver接口的实现。 为了使用它,您需

    presto-hbase-connector:presto hbase connector 组件基于Presto Connector接口规范实现,用来给Presto增加查询HBase的功能。相比其他开源版本的HBase Connector,我们的性能要快10到100倍以上

    我们的性能比其他开放源代码版本的HBase连接器快10到100倍。性能比较环境细节资料大小事件表包含500万条记录和90个字段工人3 硬件16个逻辑核心64GB内存(分别为Presto和HBase 16GB内存)4T * 2硬盘 详细信息: : ...

    presto-gateway:用于prestodb的负载平衡器代理网关

    网关用于presto计算引擎的负载均衡器/代理/网关。如何设置开发环境第1步:设置mysql。 首次设置时,安装docker并运行以下命令: docker run -d -p 3306:3306 --name mysqldb -e MYSQL_ROOT_PASSWORD=root123 -e ...

    Presto大数据查询引擎-其他

    Presto是用于大数据的分布式SQL查询引擎。 环境要求: Mac OS X或Linux Java 8 Update 151或更高...Presto有一套全面的单元测试,可能需要几分钟才能运行。您可以在构建时禁用测试: ./mvnw clean install -DskipTests

    Presto大数据分布式SQL查询引擎的官方主页——prestodb/ Presto

    Presto Presto is a distributed SQL query engine for big data. See the for deployment instructions and end user documentation. Requirements Mac OS X or Linux Java 8 Update 151 or higher (8u151+), 64-...

Global site tag (gtag.js) - Google Analytics