首页
学习
活动
专区
工具
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.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Google Analytics 4 里的数据保留时间

不同于UA里的数据保留时间是没有限制,你可以在报告里查看到过去多年的历史数据,但GA4里的数据保留时间是有限制的。...GA4的数据保留时间 免费版 付费版 数据保留 最多 14 个月可选时长:2 个月、14 个月 最多 50 个月可选时长:2 个月、14 个月、26 个月、38 个月和 50 个月 免费版的最长是14...有什么影响 数据保留时间对探索会有影响,探索里能选择的最大时间范围就是你设置的保留时间,如果你没有设置,默认是2个月,那么探索里最多可以对最近两个月的数据做分析,所以,一定要将数据保留事件设置为最长时间...如何设置 在GA4的「管理」——「数据设置」——「数据保留」——「用户数据和事件数据的保留期限」,选择最长时间后保存即可。...如何保存更长时间 有两种方式: 将GA4关联到BigQuery,原始数据图同步到Bigquery,这里拿到的是原始数据,需要注意BigQuery是需要付费 通过API将数据导出到自己的数据库,这里拿到的是处理后的数据

29730

备份保留时间要求究竟是多长?

之前的文章中分享过Backup & Archive也就是备份和归档的区别,备份与归档的最大的区别在于其目的的不同,备份是为了系统发生灾难或者数据异常时的恢复,通常情况下理解,备份并不需要保留太长时间,而归档则是按照文件保留的要求...,制订的长时间的文件保存期限的要求和策略。...参见以下MHRA数据完整性指南最新版中的两段定义: 备份和归档都属于数据的保存阶段,归档在于长时间保存数据,备份在于对动态数据进行保存,以用于灾难恢复。...很多时候备份和归档之所以容易搞混,在于系统中的动态数据和静态数据本身就没有一个很明确的区分,从数据库的设计来说,不敢说100%,至少我好像没有见过数据在动态状态下保存在一个数据库中,在静态状态下又保存在另外一个数据库中的情况...不知道数据后台的逻辑是不是已经写入到了另外一个数据库中,正是由于系统架构上的这种设计缺陷,或者说有些供应商的软件本身具备数据归档的功能,但是这个功能可能在日常的业务活动中又没有很好的定义,所以造成了系统中实际的情况是动态和静态的数据混在一起

2.2K50

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

81310

从AdventureWorks学习数据库建模——保留历史数据

区域与销售人员的关系在增加了中间表形成多对多后,仍然保留了原来的一对多关系,从数据上来看不是这样的,因为两个表的数据是不一致的,所以我推断这是另外一个一对多关系,而不是原来的区域和销售的分配对应关系表。...AdventureWorks数据库中使用了NULL值设为“结束时间”来表明这条数据是当前有效的,但是笔者并不推荐这么做,最好是把两个字段都设置为NOT NULL,在比较时可以得到统一的查询语句: where...最好是把两个字段都保留,用户只需要输入开始时间,由前端程序去初始化结束时间,然后一并保存。...我在AdventureWorks数据库中并没有看到关于实体的历史记录的设计,不过我们可以看SharePoint的数据库设计,就是采用我这里提到的版本设计的方法。...历史数据查询优化 前面提到由于保留历史数据的原因,所以会将数据库中对应表的数据量增加很多倍,数据量的增加必然导致查询变慢,所以我们在记录历史数据后很有必要对表进行查询优化。

54710

java 保留小数与四舍五入以及时间日期的转换和excel读入与数据库写入

,再对excel的时间进行一些处理,最后将处理过的内容放到一个新的数据库中     由于是单独的java demo,为了方便测试,首先是对数据库进行链接,按照驱动,URL,用户名,密码,和statement...,则设定结束时间为2015-05-31,开始时间为结束时间减去worktime(单位为月) 如果有开始时间则不更改开始时间,结束时间也为2015-05-31 这里就涉及到日期的增减,具体功能实现的步骤如下...这里运用了下面的方法 BigDecimal bigDecimal = new BigDecimal(worktime).setScale(0, BigDecimal.ROUND_HALF_UP);  上面的0代表保留的位数...,后面代表四舍五入 具体四舍五入和保留小数位数的方法可以参考,里面还有凑整等一系列的方法 http://www.cnblogs.com/xd502djj/archive/2011/07/21/2112683...,时间插入,字符,数组,等方式,是个很好的案例,第一个为序列值,数据库为oracle的命令,mysql会有点不同 stmt.addBatch(sql2); 为批量插入,具体可以参考之前的博文

20030

influxdb 时间序列数据库

5、基本概念: database 数据库 measurement 表 point 表中的一行数据 point由time(自动生成的时间戳),field数据,tags由索引的数据 series所有在数据库中的数据...9、查看数据库策略: SHOW RETENTION POLICIES ON test 数据保留时间:duration--持续时间,0代表无限制 创建数据只保留2小时的策略,并设为默认策略: CREATE...,是“key-value”的形式 field--数据,field主要是用来存放数据的部分,也是“key-value”的形式 timestamp--时间戳,作为时序型数据库时间戳是InfluxDB中最重要的部分...Retention policy--数据保留策略,可以定义数据保留的时长,每个数据库可以有多个数据保留策略,但只能有一个默认策略。。...而在 InfluxDB 中,通过 retention policy 设置数据的保留时间,当检测到一个 shard 中的数据过期后,只需要将这个 shard 的资源释放,相关文件删除即可,这样的做法使得删除过期数据变得非常高效

1K20

时间序列数据库概览

时间序列函数优越的查询性能远超过关系型数据库,Informix TimeSeries非常适合在物联网分析应用。...定义 时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 最新时序数据库排名: ?...特点& 分类: 专门优化用于处理时间序列数据 该类数据以时间排序 由于该类数据通常量级大(因此Sharding和Scale非常重要)或逻辑复杂(大量聚合,上取,下钻),关系数据库通常难以处理 时间序列数据按特性分为两类...高频率低保留期(数据采集,实时展示) 低频率高保留期(数据展现、分析) 按频度 规则间隔(数据采集) 不规则间隔(事件驱动)  时间序列数据的几个前提 单条数据并不重要 数据几乎不被更新,或者删除(只有删除过期数据时...,功能强 查询语法简单,功能强(弱于Influxdb) 后端时序数据库设计,写入快 设计并不是时序数据库,后端存储采用文档结构,写入慢 由此可见:高频度低保留期用Influxdb,低频度高保留期用ES

2.3K60

服务器时间数据库时间的校验

由于公司的服务器和数据库分别部署在不同的主机,所以会在启动时进行时间上的校验,如果两台主机的时间差超过600s就会抛出异常、启动失败。这个设定的时间差被存储在数据库中,以方便日后修改。...WebApp time and DB time final long timeDifferent = Math.abs(dbTimeMs - webAppTimeMs); 从代码可以看到,将服务器和数据库所在的主机的本地时间转换成默认的时区后...分析到这里,便开始进行验证:分别连接到两台主机并通过date命令来查询各自的时间,发现双方的时间差大概有15分钟左右,确实超过了600s。 于是问题来了,为什么会忽然出现这么大的时间差?...百度了下,也有人遇到这种类似的情况,Linux的系统时间忽然变慢了几分钟到十几分钟,也有的是时间变快了。暂时没找到具体的原因,解决办法基本都是直接修改系统时间。...如果哪位朋友知道的,欢迎评论告诉我一下O(∩_∩)O哈哈~ 今天写篇文章记录下这个问题,以前我还真没想到需要对不同主机的服务器和数据库进行时间校验,百度了下,倒是发现很多安卓app关于客户端和服务端进行时间校验的文章

1.7K20

「influxDB 原理与实践(四)」保留策略

常见的解决方法就是降低数据精度,即详细的、高时间精度的数据只能保留一段时间,同时对这些数据进行聚合计算得到低精度的、符合我们需求的数据,再根据实际情况存储一段时间然后删除高精度的数据,只保留低精度的数据...前一篇博文我们讲了连续查询,定期自动处理、聚合数据,降低数据的时间精度,把结果保存在指定的表中,而数据保留策略可以按照我们的需求,根据设置的保留时间,淘汰掉我们不需要的高精度冷数据。...InfluxDB会计算本地服务器时间和存储数据的时间戳差值,如果该差值比保留策略设置的保留时间长,则会讲这些过期数据删除。 创建保留策略 ? DURATION 指定了保留时长。...默认情况下,分片组的时间间隔会由保存策略的时间间隔决定。 ? DEFAULT 将所创建的保留策略设置为该数据库的默认保存策略,可选项。 一个数据库可以创建多个保留策略,名字必须唯一。...在创建数据库时,InfluxDB会自动生成一个永久保留策略"autogen"作为数据库的默认保留策略。 例:创建一个保留策略,数据以一个副本的形式保留1天。 ? 查询保留策略 ?

1.1K10

优化时间序列应用程序的数据查询

保留政策 在时间序列数据的世界里,数据点就像我的保鲜盒里的袋装沙拉:我可能会把它保留得比我应该的时间更长,但最终我需要把它扔掉。...您可以通过设置进程来删除过期数据来控制数据量。这是另一篇文章,其后台依赖于您正在使用的数据库,但这是一个常见的时间序列问题,因此您的数据库选择的解决方案比比皆是。除过期数据,节省一些……时间。...在列式数据库中,我们可以通过确保拥有更多点的序列更少而不是拥有更少点的序列来提高性能。时间序列中的压缩技术可以在长时间运行时效率更高,所以,如果我们想最大限度地利用数据库,我们需要遵循它的规则。...在建立在关系数据库上的时间序列数据库中,基数对索引的影响比其他任何事情都要多,所以我们需要关注索引的大小,以免它占用我们的资源。 结论 你在这里遇到了一些沉重的东西。...关注索引,查询范围,保留策略和基数可能无法解决您的所有问题,但是您对数据了解得越多,您就能够更好地处理查询。我们离成为时间序列大师又近了一步。

86880

大数据监控平台实践之路

InfluxDB: 高性能的布式时间序列指标数据库。...InfluxDB是为时间序列构建的高性能数据存储,提供类SQL的查询语言、特定分析时间序列的功能。通过设置数据保留策略,自动从系统中删除过期数据,释放存储空间。...,降低使用门槛 数据保留策略可以有效的自动清理过期数据 InfluxDB的数据是以shard groups形式存储,指定时间间隔的数据存储到一个shard groups里,这个时间间隔称为shardGroupDuration...zookeeper这个度量下: 查询数据保留策略: duration:数据保留时间,0表示无限制,InfluxDB默认30分钟检查一次保留策略。...Grafana: 时间序列分析和监控的开放平台,支持多种数据源(InfluxDB、OpenTSDB时间序列数据库)、丰富的展现形式、支持email/dingding报警。

1K40

influxdb基础入门

(1520052020000000000),时间戳不是必须的,如果不传则使用influxdb服务端本地时间戳,注意时间戳都是UTC时间 数据保留策略 Influxdb可支持每秒十万级别的数据量,如果长时间保存会对存储造成很大压力...,因此和一般数据存储系统一样有一个数据保留策略,同时针对大流量量数据可采样保存,小流量数据可全量保存。...influxdb通过保留策略(RP,Retention Policy)来管理过期数据,使用连续查询(CR,Continuous Queries)来进行数据采样。...RP:数据保留策略,过期数据会被清除,每个数据库可拥有多种RP策略; CQ:数据连续查询,定时跑的一个查询语句,比如周期性统计某个数据指标,查询语句需要在select语句中使用并且包含group by...默认写数据不指定保留策略(RP,Retention Policy)时,默认使用influxdb默认的RP,名字叫做autogen的RP会永久保留数据。

1.2K30

InfluxDB从原理到实战 - 什么是InfluxDB

时序型数据库排行榜上排名第一,广泛应用于DevOps监控、IoT监控、实时分析等场景。...丰富的聚合运算和采样能力,提供灵活的数据保存策略(Retention Policy)来设置数据的保留时间和副本数,在保障数据可靠性的同时,及时删除过期数据,释放存储空间,提供灵活的连续查询(Continues...InfluxDB是专注于时序数据场景(如,DevOps监控、IoT监控、实时分析等)的高性能时序型数据库,支持灵活的自定义保留策略(Retention Policy)和类SQL的操作接口等。...它通过采样和数据保留策略,以支持将高价值、高精度数据保存在内存中,将低价值数据保存到磁盘。...丰富的时效管理功能,自动删除过期数据,自定义删除指标数据。 7. 低成本存储,采样时序数据,压缩存储。 8. 丰富的聚合函数,支持AVG、SUM、MAX、MIN等聚合函数。

5.4K32

数据库时间类型数据的处理

序言 ---- 有关时间类型数据的处理其实一直都是一个很让人不爽的地方,在数据库中的存储时间类型默认使用的是 UTC 时间,比我们东八区晚了八个小时,直接使用 UTC 时间显示会让用户摸不着头脑,而如果先取出数据再用...Sequelize 三部分(这里是按我的个人习惯划分)简述: 1、数据库相关宏配置设置,即指定连接的数据库名、操作数据库的用户名和密码,数据库地址,连接池设置等等: 2、数据库中表的定义,这里将表对应为...问题及解决 ---- 言归正传,在上述定义数据库的宏配置时,我们指定了 timezone 为东八区,通过可视化工具如 Navicat 可以看到在数据库中的时间确实是我们想要的,但是查询出来后仍然是 UTC...时间,原因就在于 mysql 数据库和 sequelize 均会对 DATE 类型做处理,timezone 只保证了写入的格式,并没有保证读取的格式。...,而如果要想指定特殊的时间显示格式呢,显然我们应该允许自定义的 get 方法去设置特殊的时间显示格式。

1.2K30

mysql取得当前时间的函数_oracle数据库时间戳函数

一般排查问题、提交问题,首先需要确保大家使用的数据库版本是一致的,有时需要时间戳作为辅助判断。 以下命令在MySQL5.0~8.0都可以使用。...查看数据库版本 SHOW VARIABLES LIKE 'version'; 或 SELECT VERSION() 查看当前时间 -- 当前日期 SELECT CURDATE(); -- 当前日期+时间...(SQL语句开始执行的时间) SELECT NOW(); -- 当前日期+时间(每行数据准备时的时间) SELECT SYSDATE(); -- 当前时间的UNIX时间戳 SELECT UNIX_TIMESTAMP...(); 查看时间后,可通过DATA_FORMAT去任意格式化时间。...扩展 建议阅读《MySQL日期与时间函数(日期/时间格式化、增减、对比、时区、UTC和UNIX时间)》。 上面的几个函数,在这里都有详尽的解释。

3.4K50
领券