Flink
总结问题
胖墩的IT
一步一个脚印走下去,相信自己能成功,
学习的3W原则:who,what,which
生活的3W原则:who,what,why
展开
-
flink通过类构造函数给算子传递外部参数
场景: flink中的算子在初始化时想添加一些外部参数,这些外部参数只有在main启动时才会传入,可能数据的值不同自已创建了一个类继承了RichFlatMapFunction<Row, Row> implements Serializable,实现了RichFlatMapFunction的flatMap方法,像下面的示例一样public class FlatFunction1 implements FlatMapFunction<Row, Row> { private S.原创 2021-10-09 00:47:04 · 839 阅读 · 2 评论 -
Flink部署单机运行jar包时报Unable to instantiate java compiler
场景:自己在测试环境部署了一套flink单机运行环境,在运行jar包时会报Unable to instantiate java compiler 异常原因:有jar报冲突,flink-table-planner 在运行环境上有,jar包中就不用带着了,只需要设置<scope>provided</scope>就可以了flink官方文档中介绍flink-table-planner怎么设置 ...原创 2021-10-09 00:30:57 · 1467 阅读 · 0 评论 -
FlinkSQL报java.util.UnknownFormatConversionException: Conversion = ‘‘‘
场景:FlinkSQL很多时候会用到通配符,比如%这种,但是在形成作业链时,报了java.util.UnknownFormatConversionException: Conversion = ‘’’ 错误原因: 项目中String.format 对SQL进行处理了,(在jar包中使用了flinkSQL)解决办法:使用%%对%进行转义 比如是 name like '孔%' 改成name like '孔%%'...原创 2021-10-09 00:21:29 · 262 阅读 · 0 评论 -
flinkSQL count中加case when
场景: 当想统计字段等于某个值count时,而且不想用where, 因为where是全局的,当只统计一个字段等于某个值的总数没问题,当一个字段分别等于某两个值的总数就有问题,所以就可以在 count中加case when例子:SELECT count(case when 字段='某值' then 1 else null end) as count1 FROM 表名...原创 2021-10-09 00:17:19 · 1444 阅读 · 0 评论 -
ValidationException: Field reference expression or alias on field expression expected.
在生成flink作业链时报了org.apache.flink.table.api.ValidationException: Field reference expression or alias on field expression expected.我以为我使用了关键字,或者特殊别名等,最后检查出来是因为FlinkSQL中有一个字段词中间的连接符是"-" 而不是"_",改正后就没问题了...原创 2021-07-11 01:51:53 · 788 阅读 · 0 评论 -
Flink自定义聚合函数与滑动时间窗口共同实现环比
业务场景:后五分钟的数据和前五分钟的数据做环比,得出比值再进行后续的操作,即使有此函数,还是需要和 滑动时间窗口(HOP) 一起使用,,阿里云FlinkSQL滑动窗口介绍不能触碰公司红线,所以代码是从flink官方文档聚合函数的例子改造的,纯手敲,没有IDEA验证是否正确,有错误告诉我一声/** * 中间临时存储数据的类. */public class Accum { /** * 两个环比的时间的中间时间 **/ public Long time; /** * 前.原创 2021-05-30 01:10:06 · 1102 阅读 · 0 评论 -
Flink自定义聚合AggregateFunction实现计算特定时间内某个字段的TP99
业务场景: 所有的请求都需要经过网关,而且对于每一请求网关都会记录日志,想要网关的运营报表,像TP99,TP50等等,又因为日志量太多,ES集群又贵,只能把需要数据单独留下来组成报表,我参考了flink官方文档自定义函数 虽然可以,但是处理数据的性能降低了之后有参考flink实战-使用自定义聚合函数统计网站TP指标,才知道如果存储状态的accumulate太大,会显著形影响处理数据性能,看下面不懂的可以先看上面两个链接对于下面为什么Double和BigDecimal之间的转换需要经过先转换字符串,.原创 2021-05-09 23:38:26 · 769 阅读 · 0 评论