首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flink SQL空闲状态保留时间实现原理

前言 如果要列举Flink SQL新手有可能犯的错误,笔者认为其中之一就是忘记设置空闲状态保留时间导致状态爆炸。...但是这些状态数据基本都有时效性,不必永久保留。例如,使用Top-N语法进行去重,重复数据的出现一般都位于特定区间内(例如一小时或一天内),过了这段时间之后,对应的状态就不再需要了。...setIdleStateRetentionTime(Time.hours(24), Time.hours(36)) 注意setIdleStateRetentionTime()方法需要传入两个参数:状态的最小保留时间...minRetentionTime和最大保留时间maxRetentionTime(根据实际业务决定),且两者至少相差5分钟。...在Table/SQL模块中还有一个内置的触发器StateCleaningCountTrigger,它可以对窗口中的元素进行计数,并按照计数阈值或者空闲状态保留时间阈值来清理(即FIRE_AND_PURGE

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flink 1.9 - SQL 空闲状态保留时间实现原理

    Flink SQL 空闲状态保留时间和参数配置 Flink SQL 空闲状态保留时间是针对 SQL 中聚合 Key 而言的,空闲的时间也就是 Key 没有更新的时间。...设置 Flink SQL 空闲状态保留时间有两个参数,状态空闲最小保留时间和状态空闲最大保留时间,很多人会问,为什么会设置两个时间参数呢,设置一个参数不就好了吗,先来看看这两个参数的定义: The minimum...如果当前时间 + 状态最小的空闲状态保留时间 > 上一次注册 Timer 的触发清理的时间,那么也重新注册 Timer,Timer的时间也为当前的时间 + 最大空闲状态保留时间,同时,删除上一次注册的清理的...所以,请确保设置合理的空闲状态保留时间。 3....总结 Flink SQL 虽然没有 DataStream API 那样为每个算子单独来设置状态的保留时间,不过在 Flink SQL 我们可以设置空闲状态的保留时间,具体的时间业务方根据实际情况而定。

    87410

    搞定GTD - 时间日志

    记录时间的花费后,你可以对自己时间有一个清晰的认识,慢慢对时间有一种感觉。...我最早是从2011年10月开始记录时间日志,当时用的是iPhone上的Momento软件,该软件界面和功能设计的都很好,最大缺点就是没有云同步功能,这是当时iPhone4时代的一个界面截图: 2012...年5月至今开始使用Evernote来记录时间日志,免费版的evernote1个月有60M数据量限制,但如果只是记录时间日志,不存照片的话,完全够用,evernote for Windows上的抓图: 一开始实践...时间日志的好处之一是填写项目周报时很容易,只需要翻开本周的时间日志,把与工作有关的内容粘贴出来就行了,不用在周五的时候才挖空心思地想昨天做了什么?前天做了什么?周一做了什么?...另一个好处是:有一段时间心情不好,做什么都没劲,时间日志上内容会比较空虚,但只要不间断地记录,慢慢地会调整过来。因为当感觉到时间在慢慢溜走时,有一种罪恶感,提醒自己尽快调整回来。

    1.3K110

    Apache日志中的处理时间

    Apache的日志有很多可以自己定义的项目,其中一个 %T 能够显示出服务器处理请求所用的时间。我就是对这个的定义发生了疑问,所以做了一些考证。...由此可见,这个时间表示的是服务器处理这个请求的总时间。 而不是Apache服务器解析PHP脚本,并且输出脚本的时间。...可以记录服务器处理请求的微秒时间(注意和%T的定义不同)。 我在服务器上做了一次测试,代码中嵌入了一个执行时间的检查判断,同时监视日志文件中产生的时间。...结果为:页面监测脚本执行时间为10009206毫秒,而日志中记录的是10009838,两者时间并不一样,日志中记录的时间稍微长一些,包含了DNS查询等一系列的过程。...有这样一个办法,在Header中输出服务器的响应时间,用户收到后,判断收到的时间,这个时间差就是在服务器和客户端之间所消耗的时间

    1.4K10

    Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间

    笔记内容: 12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间 笔记日期:2017.10.20 12.10 Nginx访问日志 ?...crontab -e 增加以下内容,这是定义0点的时候执行这个脚本: 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh 12.12 静态文件不记录日志和过期时间...(js|css)$  //使用正则匹配js和css文件    {          expires      12h;   //定义过期时间          access_log off;  /...然后cat一下日志文件,可以看到只记录了.html文件的访问,没有记录.js和.jpg文件的访问: ? 加上-I选项看一下是否有过期时间: ?...如果没有定义过期时间的话,是没有这个Cache-Control: max-age的。

    5.3K20

    导出Tomcat指定时间日志

    绝大多数情况下项目出问题了,第一时间就会打开服务器,cd… tail … 一套连招查看到底除了什么错误日志,虽然这种方法直达问题本质,但好像有些不太优雅,毕竟打开Xshell等也需要耗费时间,看时间只能输入命令和上下查看...解决这个问题主要核心问题只有2个: 一个是根据选择的时间生成脚本,获取对应时间区间的日志。 以文本或其他形式导出日志。...意思是选择区间内的时间,将当前目录下error.log里的对应日志截取,导出到error.txt当中。...,接下来的任务就比较简单了,读取下载错误日志即可。...下载日志 name是生成的日志文本名,指定了response的格式方便前端作处理。

    1.2K30

    基于时间戳的日志回放引擎

    之前写过一个日志回放引擎的第一代千万级日志回放引擎设计稿,当时理解的日志回放就是把日志记录的请求重新发出去,这就是回放线上用户的流量了。可是在我最近看goreplay的过程中,重新刷新了我的认知。...查阅了一些资料,终于算是了解了一些基于时间戳的方案和思路。大体如下:通过工具把线上某段时间的流量记录下来,其中包含时间戳等信息,然后通过回放引擎把流量回放出去。...按照时间戳排序,通常使用现成的工具这一步是可以省略,但是由于日志记录是已经存在的组件,这里需要做一些兼容性工作 日志回放,通过线程池和连接池两个池化技术可以解决性能方面的问题。...高性能队列之Disruptor性能测试 2022-02-14 Java&Go高性能队列之channel性能测试 2022-02-17 本来想是用多线程去读取日志的过程中,通过判断每一条日志是否到时间点,...为什么要从日志文件中转一手呢?因为日志是不按照时间戳排序的。

    29630
    领券