CN115203214B - 一种报表数据的更新方法和系统 - Google Patents
一种报表数据的更新方法和系统 Download PDFInfo
- Publication number
- CN115203214B CN115203214B CN202211128587.5A CN202211128587A CN115203214B CN 115203214 B CN115203214 B CN 115203214B CN 202211128587 A CN202211128587 A CN 202211128587A CN 115203214 B CN115203214 B CN 115203214B
- Authority
- CN
- China
- Prior art keywords
- data
- report
- module
- container
- changed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Abstract
本发明公开了一种报表数据的更新方法和系统,属于电数字数据处理技术领域,所述更新方法包括:监测报表的数据源,获取变动数据;获取时间窗口,所述时间窗口包括多个时间片段,所述时间片段具有数据容器;将所述变动数据保存到所述数据容器中;按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端。通过时间窗口内的多个时间片段及其数据容器对变动数据进行转存,通过第一滑动速度,控制变动数据的推送速度或流量,防止数据突增导致的网络阻塞,提升稳定性。
Description
技术领域
本发明涉及电数字数据处理技术领域,具体涉及一种报表数据的更新方法和系统。
背景技术
信息时代,数据是一种可贵的资源,报表是企业中常用数据整理分析工具,可从业务数据中梳理出重要数据,同时可对决策人员起到辅助作用。
在报表的应用系统中,用户越来越关注数据的实时性,希望最新发生的数据能在报表中及时体现出来,以此及时辅助决策、驱动运营。
当前报表系统实时数据展示方式大致有两种,短连接轮询和基于websocket推送数据。但是上述两种方式,受网络限制较大,容易产生网络堵塞,导致数据响应不及时或者无法推送变动数据等问题,并且报表系统还存在崩溃的风险。
发明内容
针对现有技术存在的上述技术问题,本发明提供一种报表数据的更新方法和系统,通过时间窗口的滑动、控制数据推送流量,防止数据突增导致的网络阻塞,提升稳定性。
本发明公开了一种报表数据的更新方法,所述更新方法包括:监测报表的数据源,获取变动数据;获取时间窗口,所述时间窗口包括多个时间片段,所述时间片段具有数据容器;将所述变动数据保存到所述数据容器中;按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端。
优选的,将所述变动数据保存在所述数据容器中的方法包括:
若变动数据的大小没有超过数据容器的容量,将所述变动数据保存在所述数据容器中;
若变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,将压缩后的数据保存到所述数据容器;
若变动数据压缩后超过所述容量,将所述变动数据拆分后,保存在相邻的数据容器中。
优选的,所述变动数据的网速表示为:
其中,V表示为网速,v表示为第一滑动速度,z i 表示为数据容器内变动数据的大小,n表示为时间片段的数量。
优选的,基于服务器推送事件将变动数据推送给报表客户端。
优选的,基于服务器推送事件将变动数据推送给报表客户端的方法包括:
创建SSE服务端;
按照SSE的规范对所述变动数据进行数据重构,获得推送数据;
通过所述SSE服务端将所述推送数据推送到报表客户端;
所述报表客户端根据接收到的推送数据,更新所述报表的数据。
优选的,报表的设计方法:
配置数据源与数据集;
基于所述数据集中的结构化字段设计报表,并建立报表中结构化字段与报表数据的关联。
优选的,基于服务器推送事件将变动数据推送给报表客户端的方法包括:通过数据库监听工具监听所述数据集的变更日志;判断所述数据集是否有数据变动;若是,获得变动数据;根据报表的结构化字段,对所述变动数据进行过滤后,分发到SSE服务端;按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据;建立报表客户端与SSE服务端的连接;将所述推送数据保存到数据容器中;按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端;所述报表客户端根据接收到的推送数据、以及结构化字段与报表数据的关联,更新所述报表的数据。
本发明还提供一种用于实现上述更新方法的系统,包括监测模块、滑动窗口模块、转存模块和推送模块,
所述监测模块用于监测报表的数据源,获取变动数据;
所述转存模块用于将所述变动数据保存到所述数据容器中;
所述滑动窗口模块用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;
所述推送模块用于将所释放数据容器的变更数据推送给报表客户端。
优选的,所述转存模块用于若变动数据的大小没有超过数据容器的容量,将所述变动数据保存在所述数据容器中;
若变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,将压缩后的数据保存到所述数据容器;
若变动数据压缩后超过所述容量,将所述变动数据拆分后,保存在相邻的数据容器中。
优选的,所述系统还包括SSE服务端、重构模块、预处理模块,
转存模块、滑动窗口模块和推送模块部署在所述SSE服务端上,
所述预处理模块用于根据报表的结构化字段,对变动数据进行过滤;
所述重构模块用于按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据;
所述转存模块用于将所述推送数据保存到所述数据容器中;
所述滑动窗口模块用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;
所述推送模块用于将所释放数据容器的推送数据推送给报表客户端;
所述报表客户端用于根据接收到的推送数据更新、并展示所述报表。
与现有技术相比,本发明的有益效果为:通过时间窗口内的多个时间片段及其数据容器对变动数据进行转存,通过第一滑动速度,控制变动数据的推送速度或流量,防止数据突增导致的网络阻塞,提升稳定性。
附图说明
图1是本发明的报表数据的更新方法流程图;
图2是将所述变动数据保存在所述数据容器中的逻辑框图;
图3是本发明的系统逻辑框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
一种报表数据的更新方法,如图1所示,所述更新方法包括:
步骤101:监测报表的数据源,获取变动数据。
步骤102:获取时间窗口,所述时间窗口包括多个时间片段,所述时间片段具有数据容器。其中,获取时间窗口包括设定、创建或读取时间窗口。
步骤103:将所述变动数据保存到所述数据容器中。
步骤104:按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端。
通过时间窗口内的多个时间片段及其数据容器对变动数据进行转存,通过第一滑动速度,控制变动数据的推送速度或流量,防止数据突增导致的网络阻塞,提升稳定性。
图2示出了时间窗口的逻辑框图,将所述变动数据保存在所述数据容器中的方法包括:
若变动数据的大小没有超过数据容器的容量,执行步骤201:将所述变动数据保存在所述数据容器中。
变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,执行步骤202:若将压缩后的数据保存到所述数据容器。
若变动数据压缩后超过所述容量,执行步骤203:将所述变动数据拆分后,保存在相邻的数据容器中。
对大小不同的变动数据或待推送数据可以分别按照201-203的步骤转存到数据容器中。
图2中,滑动窗口以第一滑动速度向右移动,并逐渐释放左侧的数据容器,释放的变更数据推送到报表客户端中。在一个具体实施例中,第一滑动速度为3个时间片段每秒,每个数据容器的容量大小为z(MB),则每秒释放或推送3个时间片段及其数据容器,但不限于此。在任意时间内,推送的数据容器是一致的,流量的大小相近。时间片段划分的越多,滑动窗口的滑动就会越平滑,流量控制的也就越精确。可根据网速需求、调整时间窗口T和容量的大小。所述变动数据的网速表示为:
其中,V表示为网速,v表示为第一滑动速度,z i 表示为数据容器内变动数据的大小,n表示为时间片段的数量。z i 取值为数据容器的容量大小z时,可以计算出最大网速。
实施例1
步骤104中,基于服务器推送事件(SSE)将变动数据推送给报表客户端。推送的方法包括:
步骤401:创建SSE服务端。SSE服务端与报表客户端基于SSE进行连接和通讯。
步骤402:按照SSE的规范对所述变动数据进行数据重构,获得推送数据。例如重构为 Flux<ServerSentEvent>类型的数据结构。
步骤403:按照时间窗口的第一滑动速度,通过所述SSE服务端将所述推送数据推送到报表客户端。
步骤404:所述报表客户端根据接收到的推送数据,更新所述报表的数据。
服务器推送事件(Server-sent Events),简称SSE,是 HTML 5 规范中的一个组成部分,可以用来从服务端实时推送数据到浏览器端/客户端。相对于与之类似的WebSocket技术来说,服务器推送事件的使用更简单,对服务器端的改动也比较小。SSE是 WebSocket的一种轻量代替方案,使用 HTTP 协议。对于更新频繁、 低延迟的场景,SSE 可以完全满足。
实施例2
步骤501:构建报表。
构建报表的方法包括:配置数据源与数据集;基于所述数据集中的结构化字段设计报表,并建立报表中结构化字段与报表数据的关联。所述关联、结构化字段可以保存在报表的配置信息中。
在一个具体实施例中,将数据集中的结构化字段拖拽到报表设计器中,设计并调试报表风格,最后保存设计的报表。数据源包括数据库连接属;根据数据源构建数据集,数据集包含一段业务SQL,以及SQL查询数据后数据结构字段。
步骤502:监听数据源。
通过数据库监听工具监听所述数据源或数据集的变更日志;判断所述数据集是否有数据变动;若是,获得变动数据;若否持续监听所述数据源。其中所述数据库监听工具可以采用canal客户端。canal客户端解析数据库增量日志解析,提供增量数据订阅和消费,日志信息中包含数据库、表以及变更字段新增等。
步骤503:变动数据预处理。
根据报表的结构化字段,对所述变动数据进行过滤后,分发到SSE服务端,可以从报表的配置信息中获得结构化字段,在一个具体实施例中,所述配置信息保存在报表的数据库中。
在SSE服务端,SSE 是一个不断产生新数据的流,非常适合于响应式接口,因此可以用到响应式网络框架(WebFlux),并在响应式网络框架控制器(WebFlux Controller)中创建 SSE 的服务器端。数据类型是 Flux<ServerSentEvent>时,会按照 SSE 规范要求的格式来发送响应和推送。
步骤504:数据重构。
按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据。其中,数据重构可以在发送给SSE服务端之前,也可以在发送给SSE服务端之后。
步骤505:建立报表客户端与SSE服务端的连接。
步骤506:将所述推送数据保存到数据容器中。
步骤507:按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端。
步骤508:所述报表客户端根据接收到的推送数据、以及结构化字段与报表数据的关联,更新所述报表的数据。例如报表客户端渲染所接收到的推送数据。
实施例3
本实施例提供一种用于实现上述更新方法的系统,如图3所示,包括监测模块1、滑动窗口模块42、转存模块41和推送模块43,监测模块1用于监测报表的数据源,获取变动数据;转存模块41用于将所述变动数据保存到所述数据容器中;滑动窗口模块42用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;推送模块43用于将所释放数据容器的变更数据推送给报表客户端。
转存模块41用于若变动数据的大小没有超过数据容器的容量,将所述变动数据保存在所述数据容器中;若变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,将压缩后的数据保存到所述数据容器;若变动数据压缩后超过所述容量,将所述变动数据拆分后,保存在相邻的数据容器中。
所述系统还包括SSE服务端4、重构模块3、预处理模块2。
转存模块41、滑动窗口模块42和推送模块43部署在SSE服务端4上,预处理模块2用于根据报表的结构化字段,对变动数据进行过滤;
重构模块3用于按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据;
转存模块41用于将所述推送数据保存到所述数据容器中;
滑动窗口模块42用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;
推送模块42用于将所释放数据容器的推送数据推送给报表客户端;
报表客户端5用于根据接收到的推送数据更新、并展示所述报表。其中,所述报表客户端部署有SSE客户端,用于与SSE服务端建立连接。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种报表数据的更新方法,其特征在于,所述更新方法包括:
监测报表的数据源,获取变动数据;
获取时间窗口,所述时间窗口包括多个时间片段,所述时间片段具有数据容器;
将所述变动数据保存到所述数据容器中;
按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端;
其中,将所述变动数据保存在所述数据容器中的方法包括:
若变动数据的大小没有超过数据容器的容量,将所述变动数据保存在所述数据容器中;若变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,将压缩后的数据保存到所述数据容器;若变动数据压缩后超过所述容量,将所述变动数据拆分后,保存在相邻的数据容器中;
其中,所述变动数据的网速表示为:
其中,V表示为网速,v表示为第一滑动速度,z i 表示为数据容器内变动数据的大小,n表示为时间片段的数量。
2.根据权利要求1所述的更新方法,其特征在于,基于服务器推送事件将变动数据推送给报表客户端。
3.根据权利要求2所述的更新方法,其特征在于,基于服务器推送事件将变动数据推送给报表客户端的方法包括:
创建SSE服务端;
按照SSE的规范对所述变动数据进行数据重构,获得推送数据;
通过所述SSE服务端将所述推送数据推送到报表客户端;
所述报表客户端根据接收到的推送数据,更新所述报表的数据。
4.根据权利要求2所述的更新方法,其特征在于,还包括报表的设计方法:
配置数据源与数据集;
基于所述数据集中的结构化字段设计报表,并建立报表中结构化字段与报表数据的关联。
5.根据权利要求4所述的更新方法,其特征在于,基于服务器推送事件将变动数据推送给报表客户端的方法包括:
通过数据库监听工具监听数据集的变更日志;
判断所述数据集是否有数据变动;
若是,获得变动数据;
根据报表的结构化字段,对所述变动数据进行过滤后,分发到SSE服务端;
按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据;
建立报表客户端与SSE服务端的连接;
将所述推送数据保存到数据容器中;
按照时间窗口的第一滑动速度,依次将数据容器的变动数据推送给报表客户端;
所述报表客户端根据接收到的推送数据、以及结构化字段与报表数据的关联,更新所述报表的数据。
6.一种用于实现如权利要求1-5任一项所述更新方法的系统,其特征在于,包括监测模块、滑动窗口模块、转存模块和推送模块,
所述监测模块用于监测报表的数据源,获取变动数据;
所述转存模块用于将所述变动数据保存到所述数据容器中;
所述滑动窗口模块用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;
所述推送模块用于将所释放数据容器的变更数据推送给报表客户端。
7.根据权利要求6所述的系统,其特征在于,所述转存模块用于:
若变动数据的大小没有超过数据容器的容量,将所述变动数据保存在所述数据容器中;
若变动数据的大小超过数据容器、变动数据压缩后没有超过所述容量,将压缩后的数据保存到所述数据容器;
若变动数据压缩后超过所述容量,将所述变动数据拆分后,保存在相邻的数据容器中。
8.根据权利要求7所述的系统,其特征在于,还包括SSE服务端、重构模块、预处理模块,
转存模块、滑动窗口模块和推送模块部署在所述SSE服务端上,
所述预处理模块用于根据报表的结构化字段,对变动数据进行过滤;
所述重构模块用于按照SSE的规范将过滤后的变动数据进行数据重构,获得推送数据;
所述转存模块用于将所述推送数据保存到所述数据容器中;
所述滑动窗口模块用于按照时间窗口的第一滑动速度,依次释放时间片段的数据容器;
所述推送模块用于将所释放数据容器的推送数据推送给报表客户端;
所述报表客户端用于根据接收到的推送数据更新、并展示所述报表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211128587.5A CN115203214B (zh) | 2022-09-16 | 2022-09-16 | 一种报表数据的更新方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211128587.5A CN115203214B (zh) | 2022-09-16 | 2022-09-16 | 一种报表数据的更新方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115203214A CN115203214A (zh) | 2022-10-18 |
CN115203214B true CN115203214B (zh) | 2023-01-03 |
Family
ID=83572218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211128587.5A Active CN115203214B (zh) | 2022-09-16 | 2022-09-16 | 一种报表数据的更新方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203214B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328425A (zh) * | 2020-12-04 | 2021-02-05 | 杭州谐云科技有限公司 | 一种基于机器学习的异常检测方法和系统 |
CN113641385A (zh) * | 2021-08-13 | 2021-11-12 | 上海浦东发展银行股份有限公司 | 一种分布式应用参数分发系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887B (zh) * | 2012-09-26 | 2016-01-20 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和系统 |
US9489199B2 (en) * | 2012-12-28 | 2016-11-08 | Intel Corporation | Vector compare instructions for sliding window encoding |
CN109213778B (zh) * | 2017-07-07 | 2023-07-18 | 北方工业大学 | 一种流数据滑动窗口聚集查询方法 |
CN111241189A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 一种同步数据的方法和装置 |
CN112367269A (zh) * | 2020-10-30 | 2021-02-12 | 深圳壹账通智能科技有限公司 | 基于双指针的滑动窗口限流方法、装置、设备及存储介质 |
CN112995347B (zh) * | 2021-05-11 | 2021-08-10 | 北京沃丰时代数据科技有限公司 | 实现端对端实时数据展示的方法、装置、设备及存储介质 |
CN114936242B (zh) * | 2022-07-21 | 2022-10-28 | 广州中浩控制技术有限公司 | 一种数据报表定制应用系统 |
-
2022
- 2022-09-16 CN CN202211128587.5A patent/CN115203214B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328425A (zh) * | 2020-12-04 | 2021-02-05 | 杭州谐云科技有限公司 | 一种基于机器学习的异常检测方法和系统 |
CN113641385A (zh) * | 2021-08-13 | 2021-11-12 | 上海浦东发展银行股份有限公司 | 一种分布式应用参数分发系统 |
Non-Patent Citations (2)
Title |
---|
Top-k spatial-keyword publish/subscribe over sliding window;Xiang Wang,等;《The VLDB Journal — The International Journal on Very Large Data Bases》;20170630;第26卷(第3期);第301-326页 * |
基于自然语言处理和深度学习的NL2SQL技术及其在BI增强分析中的应用;刘译?等;《中国信息化》;20191120(第11期);第64-69页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115203214A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10069916B2 (en) | System and method for transparent context aware filtering of data requests | |
US10200459B2 (en) | Apparatus and method for pipelined event processing in a distributed environment | |
US20100023546A1 (en) | System and Method for Aggregating Raw Data into a Star Schema | |
DE112018000974T5 (de) | Dynamische ausführung parametrisierter anwendungen für die verarbeitung verschlüsselter netzwerkdatenströme | |
CN106815260B (zh) | 一种索引建立方法及设备 | |
CN113360554B (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
DE102012224492A1 (de) | Auslösen von Fensterbedingungen unter Verwendung einer Ausnahmebehandlung | |
WO2020051237A1 (en) | Stream-based composition and monitoring server system and method | |
US11442930B2 (en) | Method, apparatus, device and storage medium for data aggregation | |
US20160125033A1 (en) | Stream data processing method with time adjustment | |
CN111209126A (zh) | 微服务之间的数据传输方法及装置、电子设备 | |
CN113505048A (zh) | 基于应用系统画像的统一监控平台及实现方法 | |
US8655920B2 (en) | Report updating based on a restructured report slice | |
KR101856454B1 (ko) | 분산처리를 위한 컴퓨팅 장치 | |
CN115203214B (zh) | 一种报表数据的更新方法和系统 | |
CN112631754A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN109947736B (zh) | 实时计算的方法和系统 | |
DE112021003167T5 (de) | Lastausgleich in parallelen datenstromregionen | |
CN114168672B (zh) | 日志数据的处理方法、装置、系统以及介质 | |
CN115525603A (zh) | 存储统计方法、装置、计算机可读存储介质与ai设备 | |
CN115269519A (zh) | 一种日志检测方法、装置及电子设备 | |
DE112022002586T5 (de) | Entscheidungen treffen zum platzieren von daten in einen multi-tenant-cache | |
US11379459B1 (en) | Alerts based on historical event-occurrence data | |
US11809496B2 (en) | Data access using sorted count mapping | |
CN116028491A (zh) | 一种数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |