一、基本资料

1、官方文档

https://prestodb.github.io/docs/current/sql/select.html

二、常用命令

1、kill任务,登录presto客户端

CALL system.runtime.kill_query(query_id => '20220317_083239_04518_ik27u', message => 'Using too many resources');

2、日期函数

--前7天
select date_format(date_add('day', -7, CURRENT_DATE), '%Y%m%d')
--前1天
select format_datetime(date_add('day', -1, CURRENT_DATE), 'yyyyMMdd')
--获取前一个小时
select date_format(current_timestamp - interval '1' hour,'%H')
--日期转data
select from_unixtime(unix_timestamp('20220324','yyyyMMdd'),'yyyy-MM-dd') as dt
--日期转周
select weekofyear('2022-03-24') as dt

3、字符串处理

--字符串截取
select substring('20220324',0,4) as dt
--字符串拼接
select concat('a','b') as str

4、分区操作

--查看分区
show partitions bdg_inf.table1
--删除分区
alter table bdg_inf.table1 drop partition(dt=20241122);

三、分析Sql

1、提取出filter.conditions数组中,field字段内容,并且只展示.之后的字符串[app_version、page_version]

数据内容:

{
"filter": {
"conditions": [{
"field": "event.app_version",
"function": "equal",
"params": ["", "4.99.20", "6.2.0.0.1"]
}, {
"field": "event.page_version",
"function": "equal",
"params": ["", "14.1"]
}],
"relation": "or"
},
"gid": "compass",
"t": "m3r2sww2"
}

执行sql:

select field_last,count(1) as request_num from (
SELECT
json_extract_scalar(c.value, '$.field') AS field
,regexp_extract(json_extract_scalar(c.value, '$.field'), '.*\.(.*)', 1) AS field_last
FROM
table
CROSS JOIN
UNNEST(CAST(json_extract(params, '$.filter.conditions') AS ARRAY<JSON>)) AS c (value)
WHERE
dt>= '20241021' and dt<= '20241121'
AND event_id = '777'
AND page_url in ('/eventAnalysis')
AND json_format(json_extract(params, '$.filter')) <> '{}'
-- AND md5_log='12222222'
)
group by field_last

Presto常用命令的更多相关文章

  1. Presto 常用配置及操作

    一.介绍 Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节. Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处 ...

  2. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  3. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  4. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  7. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  8. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  9. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  10. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

随机推荐

  1. LinkedList原码分析(基于JDK1.6)

    <Java集合类>一文中已经最List的基本操作进行说明,并且比较了ArrayList和LinkedList的效率.本文将进一步解析LinkedList. LinkedList也和Arra ...

  2. golang之路由库gorilla/mux

    gorilla/mux是 gorilla Web 开发工具包中的路由管理库.gorilla Web 开发包是 Go 语言中辅助开发 Web 服务器的工具包.它包括 Web 服务器开发的各个方面, 有表 ...

  3. php-fpm常见错误

    1. WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf' # cd /usr/loc ...

  4. 设计模式【3.3】-- CGLIB动态代理源码解读

    cglib 动态代理 cglib介绍 CGLIB 是一个开源项目,一个强大高性能高质量的代码生成库,可以在运行期拓展 Java 类,实现 Java 接口等等.底层是使用一个小而快的字节码处理框架 AS ...

  5. nvm node版本管理

    1.说明 NVM是NODE JS的版本管理工具,可以安装nodejs切换nodejs版本. 2.安装NVM https://github.com/coreybutler/nvm-windows/rel ...

  6. fastadmin表格 - 自定义接口

    1.文本过长溢出 文本超过250px则隐藏,如果需要修改此宽度,请在具体页面中重新定义formatter方法 点击通过弹窗展示完整的内容 弹窗插件使用Layer.js 调用方法 {field: 'co ...

  7. 前端好用API之scrollIntoView

    前情 在前端开发需求中,经常需要用到锚点功能,以往都是获取元素在滚动容器中的位置再设置scrollTop来实现的. scrollIntoView介绍 scrollIntoView()方法将调用它的元素 ...

  8. Fiddler对手机APP进行抓包

    1.下载安装Fiddler 2.打开Fiddler菜单项Tools-> Options->HTTPS 勾选CaptureHTTPS CONNECTs,点击Actions, 勾选Decryp ...

  9. openEuler欧拉配置Nacos集群

    ​一.安装Nacos systemctl stop firewalld ​systemctl disable firewalld mkdir -p /home/nacos tar xvf nacos- ...

  10. 2024年1月Java项目开发指南7:增删改查与接口测试

    我们之前,是从Controller层写到Service层,然后mapper层. 接下来我们反过来,从mapper层写到Controller层 两种方式都可以,你喜欢就行,甚至你先写service层也可 ...