算子
java命令
Posted on
In
shell
idea问题汇总
Posted on
In
tools
idea软件使用教程
Posted on
In
tools
NoSuchMethod错误排查
Posted on
In
java-problem
- 如果包含了不同版本的包,它的加载顺序是如何的?
- NoSuchMethod的报错是error级别的,exception是catch不住的。
flink窗口类
Posted on
In
flink
- WindowAssigner
- SlidingProcessingTimeWindows
- BaseAlignedWindowAssigner
- SlidingAlignedProcessingTimeWindows
- TumblingEventTimeWindows
- TumblingTimeWindows
- MergingWindowAssigner
- ProcessingTimeSessionWindows
- DynamicProcessingTimeSessionWindows
- DynamicEventTimeSessionWindows
- EventTimeSessionWindows
- TumblingProcessingTimeWindows
- SlidingEventTimeWindows
- SlidingTimeWindows
- GlobalWindows
WindowAssigner
1. SlidingProcessingTimeWindows
1 | /** |
6. SlidingEventTimeWindows
1 | /** |
6.1 SlidingTimeWindows(废弃)
2. BaseAlignedWindowAssigner
1.1 SlidingAlignedProcessingTimeWindows
5. TumblingProcessingTimeWindows
3. TumblingEventTimeWindows
1 | /** |
3.1 TumblingTimeWindows(废弃)
1 | /** |
4. MergingWindowAssigner
4.1 ProcessingTimeSessionWindows
4.2 DynamicProcessingTimeSessionWindows
4.3 DynamicEventTimeSessionWindows
4.4 EventTimeSessionWindows
7. GlobalWindows
总结
适用场景
- 滑动窗口
- 每条数据会发送到多个滑动窗口中,即在最终的输出中,一条数据要被统计多次
- 适合统计据当前时间往前一段时间内的数据汇总
- 滚动窗口
- 每条数据只会在一个滚动窗口中
- 适合对数据进行简单聚合后,再次聚合的场景
- 适合输出明细,不做聚合的场景,比如join后直接输出
占用内存比较
- 滑动窗口
- 理论上一条数据会复制到多个窗口,被复制几次,占用内存就会扩大几倍,但不清楚是否有优化,比如只复制数据的引用?
- 滚动窗口
关于时间点
窗口的开始时间
- 首先要明确的是,开始时间只与system time和offset参数相关,与程序开始运行时间无关
- 比如设置了窗口size是1h,那么在
窗口的结束时间
hive常用函数
常用
8位dt转10位
from_unixtime(unix_timestamp(t.dt,'yyyymmdd'),'yyyy-mm-dd')
8位减1小时
dt格式2019120100from_unixtime(unix_timestamp(dt,'yyyyMMddHH') - 60*60, 'yyyy-MM-dd')
8位日期计算
regexp_replace(date_sub(from_unixtime(unix_timestamp(t.dt,'yyyymmdd'),'yyyy-mm-dd'), 10), '-', '')
当前日期前一天
保留2位小数
round(123.4567, 2)
时间戳转换
1 | select hour(from_unixtime(event_timestamp/1000,'yyyy-MM-dd HH:mm:ss')) hour_time, count(distinct session_id) |
计算
保留小数
hive-官网索引
Posted on
In
hive
https://cwiki.apache.org/confluence/display/Hive/Home#Home-GeneralInformationaboutHive
https://cwiki.apache.org/confluence/display/Hive/LanguageManual
首页
语法手册
1. 命令行与客户端
1.1 数据类型
- 数据类型转换(Change Types)
- 数据类型隐式转换矩阵(Allowed Implicit Conversions)
1.2 参数配置
- 常用参数配置
1.3 select语法
- All and DISTINCT 语句,UNION语句可以有相同效果
- Partition Based Queries
- HAVING Clause
- REGEX Column Specification
- GROUP BY
- SORT/ORDER/CLUSTER/DISTRIBUTE BY
- JOIN
- UNION
- TABLESAMPLE
- Subqueries
- Virtual Columns
- Operators and UDFs hive函数
- LATERAL VIEW
- Windowing, OVER, and Analytics
- Common Table Expressions 临时表语法
快捷键
Posted on
In
Mac
术语
Posted on
In
概念
SOP(Standard Operating Procedure) 标准作业程序