首页
学习
活动
专区
工具
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 我们可以设置空闲状态的保留时间,具体的时间业务方根据实际情况而定。

83410

MySQL 排序规则

排序规则是一组用于比较字符集中的字符的规则。 每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符的比较规则,包括是否区分大小写,是否区分重音等。...2.支持的排序规则 MySQL 使用 SHOW COLLATION 语句查看各种字符集支持的排序规则: SHOW COLLATION [LIKE 'pattern' | WHERE expr]...这是MySQL内部使用的标识符。 Default:是否为默认排序规则。如果是默认排序规则,将显示“Yes”;否则,显示“”No”。 Compiled:是否已编译排序规则。...如果没有指定排序规则,MySQL 会基于字符集设置一个默认的排序规则。...英文通常按照字母排序,而中文通常按照拼音、偏旁部首或者笔画进行排序MySQL 8.0 默认使用的排序规则 utf8mb4_0900_ai_ci 对于中文按照偏旁部首进行排序

34720

mysql】order by排序

排序数据 1. 排序规则 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 使用 ORDER BY 对查询到的数据进行排序操作。...使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 2....单列排序 按照salary从高到低的顺序显示员工信息 SELECT employee_id,last_name,salary FROM employees ORDER BY salary DESC; [...BY department_id DESC,salary ASC; [在这里插入图片描述] 可以使用不在SELECT列表中的列排序。...在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序

2.4K60

排序算法】经典空间换时间基数排序

基数排序的说明: 基数排序 经典空间换时间的思想流排序算法 基数排序(桶排序)介绍 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket...,分桶,一般来说排序的次数和最大数的位数一致,但是空间占用会越来越大,金典的空间换时间的算法 第二轮 最后 动图演示 代码思路实验 要求:将数组 {53, 3, 542, 748, 14, 214...名明确,基数排序是使用空间换时间的经典算法 int[][] bucket = new int[10][arr.length]; //为了记录每个桶中,实际存放了多少个数据...使用到了1g的内存,从各方面都可以看出,基数排序是经典的空间换时间的算法 基数排序的说明: 基数排序是对传统桶排序的扩展,速度很快....基数排序是经典的空间换时间的方式,占用内存很大, 当对海量数据排序时,容易造成 OutOfMemoryError 。 基数排序时稳定的。

59030

第09问:MySQL 莫名崩溃,如何保留现场?

问题 我的 MySQL 偶尔崩溃,如果需要追查原因,应该如何保留现场? 实验 MySQL 随着版本不停迭代,崩溃的现象越来越少,也越来越隐蔽。...一旦遇到生产环境上的 MySQL 崩溃,就需要保留现场信息,供分析用。虽然 MySQL 的 error log 中会打印部分信息,但对于比较隐蔽的崩溃,往往显得力不从心。...core file 的限制,使其能生成 core dump: 最后,我们要在 MySQL 配置里,允许 MySQL 生成 coredump: 现在我们可以再次运行 MySQL: 可以看到 MySQL...在 error log 中也会有同样的信息: 我们来看一下这个 coredump 文件: coredump 文件会将崩溃当时的内存情况全部保留下来,所以文件体积会比较大。...结论 通过开启操作系统级别、放开用户限制、启用 MySQL 参数三个步骤,我们启用了 MySQL 的 coredump 功能,使得 MySQL 崩溃时留下了足够的线索。

78020

线性时间非比较类排序

原理:不通过比较来决定元素间的相对次序,它可以突破基于比较排序时间下界,以线性时间运行,因此称为线性时间非比较类排序。...*      * 缺点:桶排序需要尽量保证元素分散均匀,否则当所有数据集中在同一个桶中时,桶排序失效      *      * 分析:      * 时间复杂度:      * 最好:...O(n+k)      * 最坏:O(n^2)      * 平均时间复杂度: O(n+k)      * 空间复杂度: O(n+k)      * 稳定性:稳定(其稳定性是根据桶内排序使用的算法)      ...     *      * 原理:      *      * 分析:      * 时间复杂度:      * 最好:O(d*(n+r))      * 最坏:O(d*(n+r))...* 基数排序基于分别排序,分别收集,所以其是稳定的排序算法      *      * 分析:      * 时间复杂度:      * 最好:O(d*(n+r))      * 最坏:O(d*

96820
领券