大数据工具——Presto

一、什么是Presto

        Presto是一款分布式SQL查询引擎, Presto可以独立提供计算分析操作, 不需要依赖于其他的计算引擎。而HIVE仅 仅是一个工具, 最终计算是依赖于MR或者其他的执行引擎 Presto可以对接多种数据源, 可以从不同的数据源中读取数据进行分析处理, 一条presto查询可以将多个数据源 进行合并, 可以跨越多个不同的组织进行分析 Presto是完全基于内存的计算引擎,这也导致Presto不能对海量大量的数据进行统计分析操作,数据集一般在 GB ~ PB左右(集群数量越多,资源越多,可以计算的数据量越高)

性能对比图表 :

原理图:

二、Presto应用场景

适用场景 :

(1) 适用于对数据源统一查询 (多数据源场景)。

(2) 适用于 GB TB 快速的数据查询操作, 数据量越大, 资源占用越高。

(3) 适用于在开发测试中, 基于测试数据查询从而加快测试开发的速度。

不适用场景 :

(1) 多张数据量比较大的表Join操作。

(2) 不适合进行清洗 转换  维度退化的相关操作, 主要应用在数据分析上。

三、prosto架构

整个presto是一个 M-S架构 (主从架构) :

coordinator: 主节点

作用 : 负责接收客户端发送的SQL, 对SQL进行编译, 形成执行计划, 根据执行计划, 分发给各个从节点进行执行操作

discovery service : 附属节点

作用 : 一般内嵌在主节点中, 主要负责维护从节点列表, 当从节点启动后, 都需要到 discovery 节点进行注册操作

worker节点 : 从节点

作用 : 负责接收coordinator传递过来任务, 对任务进行具体处理工作(读取数据, 处理数据, 将处理后结果数据返回 给coordinator)

四、Presto相关的时间函数

        在presto中, 对于数据类型要求比较严格, 比如 数据字段类型为date类型,那么在基于这个字段进行过滤的时候, 编 写的过滤条件上值必须也是date类型。

日期转换操作 :

--date_format(timestamp,format) : 将一个带有年月日 时分秒的日期对象 转换为字符串

--date_parse(string,format) ---> timestamp: 将带有年月日 时分秒的日期字符串 转换为 日期对象

--date(日期对象)--->date : 将带有年月日 时分秒的日期对象, 转换为仅包含年月日的日期对象 说明 : date类型 : 表示只有年-月-日;timestamp类型 : 表示年-月-日-时-分-秒;format格式 : 年:%Y     月:%m     日:%d      时:%H     分:%i     秒:%s     周几:%w(0..6)

-- timestamp ' 日期字符串数据'  直接转换为 日期对象 , 要求 后面的日期字符串的数据必须是标准格式的日期 -- 即使 日期字符串数据, 只有年月日 依然是可以转换的, 只不过 时分秒都是 0:

select  date_format( timestamp '2020-10-10 12:50:50'  , '%Y/%m/%d %H:%i :%s' ) ;

-- date_parse : 可以将指定日期格式数据转换为日期对象:

select  date_format( date_parse('2020-10-10 12:50:50','%Y-%m-%d %H:%i :%s')  , '%Y/%m/%d %H:%i :%s' ) ;

-- date '字符串':直接转换为日期对象, 仅能处理标准的年月日的数据, 无法处理带有时分秒的操作 select  date_format( date '2020-10-10'  , '%Y/%m/%d %H:%i :%s' ) ;

日期计算的操作 :

date_add(unit,value,timestamp) → [same as input] :

根据 unit设置时间单位, 对timestamp的时间数据 进行 value计 算 , 计算为 + 号 , 如果想计算减号, 可以让value为负数即可

date_diff(unit, timestamp1, timestamp2) → big in t :  

根据 unit单位,时间timestamp2 - 时间timestamp1 , 得出差值

五、基于DataGrip连接Presto

如何启动:

Presto : bin/launcher start

访问WEB:

http://主机ip地址:8090/ui/

使用之前需要配置连接器:

  • 在/export/server/presto/etc/catalog目录下配置文件

参考官网配置,官网地址:MySQL Connector — Presto 0.286 Documentation

配置举例(mysql):

在catalog目录下创建文件:vim mysql.properties

将配置信息写入文件:

connector.name=mysql
connection-url=jdbc:mysql://主机ip地址:3306
connection-user=root
connection-password=123456

配置完成后关闭

/export/server/presto/bin/launcher stop

然后再开启

/export/server/presto/bin/launcher star

web端访问:http://主机ip地址:8090/ui/

DataGrip连接Presto:

  • 40
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行大数据财务分析时,可以使用Python作为编程语言来处理和分析数据。Python有丰富的数据处理和分析库,如Pandas、NumPy和Matplotlib,可以帮助处理大规模的数据集和生成可视化报告。此外,还可以使用开源的分布式SQL查询引擎Presto来进行交互式的分析查询。Presto适用于处理大规模的数据,并可以实现快速的交互式分析。它可以对250PB以上的数据进行快速地交互式分析,并且在处理速度方面比传统的查询引擎如Hive和MapReduce要好上10倍以上。 另外,Amazon Kinesis Streams是一个用于处理流数据的服务,可以从数十万种来源中连续捕获和存储大量的数据。它可以用于收集和分析网站点击流、财务交易、社交媒体源、IT日志和定位追踪事件等数据,满足大数据财务分析的需求。 对于商务智能方面的需求,可以使用开源的商务智能软件Pentaho。Pentaho是一个基于Java平台的商业智能套件,包括报表、分析、图表、数据集成、数据挖掘等工具软件。它以工作流为核心,强调面向解决方案而非工具组件,可以满足商务智能的各个方面的需求。 综上所述,大数据财务分析可以基于Python编程语言进行处理和分析数据,并可以借助Presto进行交互式查询和分析。此外,Amazon Kinesis Streams可以用于处理流数据,而Pentaho则是一个全面的商务智能套件,可满足各种商务智能需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值