CN117311673A - 一种数据处理系统、方法、设备及计算机可读存储介质 - Google Patents
一种数据处理系统、方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117311673A CN117311673A CN202311241246.3A CN202311241246A CN117311673A CN 117311673 A CN117311673 A CN 117311673A CN 202311241246 A CN202311241246 A CN 202311241246A CN 117311673 A CN117311673 A CN 117311673A
- Authority
- CN
- China
- Prior art keywords
- data processing
- layer
- data
- processing system
- open source
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 33
- 230000008859 change Effects 0.000 claims abstract description 26
- 238000011068 loading method Methods 0.000 claims abstract description 10
- 230000003993 interaction Effects 0.000 claims abstract description 5
- 238000003672 processing method Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 8
- 238000009877 rendering Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000005457 optimization Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 238000012384 transportation and delivery Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理系统、方法、设备及计算机可读存储介质。数据处理系统包括:展现层,展现层包括编程接口,展现层的脚本语言通过编程接口实现与目标页面中的元素交互,编程接口为树状结构,展现层用于输入目标页面中的用户请求;其中,编程接口包含虚拟节点,虚拟节点内置了差异查找算法,差异查找算法用于当展现层代码变动时,找到变更节点,展现层用于加载变更节点以及展示变更节点的内容。根据本申请实施例,可以降低数据处理系统中展现层的算法复杂度,提升展现层的渲染性能。
Description
技术领域
本申请属于电子信息技术领域,尤其涉及一种数据处理系统、方法、设备及计算机可读存储介质。
背景技术
在电子信息技术领域,软件开发是需要满足用户不断变化的需求。
传统的瀑布型模式是按照开发、测试、发布的顺序来实现软件开发。这种模式在软件开发过程中的一个迭代周期内表现优异。
然而,随着软件发布迭代的频率越来越高,传统的瀑布型模式已经不能满足快速交付的需求。
发明内容
本申请实施例提供一种数据处理系统、方法、设备及计算机可读存储介质,能够降低数据处理系统中展现层的算法复杂度,提升展现层的渲染性能。
第一方面,本申请实施例提供一种数据处理系统,数据处理系统包括:展现层,展现层包括编程接口,展现层的脚本语言通过编程接口实现与目标页面中的元素交互,编程接口为树状结构,展现层用于输入目标页面中的用户请求;其中,编程接口包含虚拟节点,虚拟节点内置了差异查找算法,差异查找算法用于当展现层代码变动时,找到变更节点,展现层用于加载变更节点以及展示变更节点的内容。
根据本申请第一方面的实施方式,数据处理系统还包括:应用层,应用层包括调用框架,调用框架用于规范接口信息和发送目标文件给客户端和服务端。
根据本申请第一方面前述任一实施方式,调用框架包括:第一开源工具,第一开源工具用于生成多种语言的服务端代码和多种语言的客户端代码;第二开源工具,第二开源工具用于在目标页面展示描述文件,并且在目标页面查看接口信息;第三开源工具,第三开源工具用于实时预览描述文件的更新效果;第四开源工具,第四开源工具用于对接口进行测试。
根据本申请第一方面前述任一实施方式,数据处理系统还包括:数据层,数据层分别与展现层和应用层连接,数据层包括时间序列数据库,时间序列数据库用于实时存储和写入来自展现层的数据。
根据本申请第一方面前述任一实施方式,数据处理系统还包括:采集层,采集层包括分布式处理引擎,分布式处理引擎用于对数据流进行实时处理。
第二方面,本申请实施例提供了一种数据处理方法,数据处理方法应用第一方面提供的数据处理系统,数据处理方法包括:当改动展现层的代码时,基于虚拟节点中的差异查找算法,查询树状结构中的变更节点,变更节点为改动的代码所在的节点;基于展现层的脚本语言加载变更节点,并展示变更节点的内容。
根据本申请第二方面的实施方式,数据处理系统还包括应用层,应用层包括调用框架,调用框架包括第一开源工具,数据处理方法还包括:基于调用框架中的第一开源工具,生成统一的目标文件;将目标文件发送给客户端和服务端。
根据本申请第二方面前述任一实施方式,调用框架还包括第二开源工具、第三开源工具和第四开源工具,数据处理方法还包括:基于调用框架中的第二开源工具,向目标页面发送描述文件和接口信息;在目标页面查看目标文件和接口信息;基于调用框架中的第三开源工具,实时预览目标文件的更新效果;基于调用框架中的第四开源工具,对接口进行测试。
根据本申请第二方面前述任一实施方式,数据处理系统还包括数据层,数据层包括时间序列数据库,数据处理方法还包括:基于时间序列数据库,实时存储和写入来自展现层的数据。
根据本申请第二方面前述任一实施方式,数据处理系统还包括采集层,采集层包括分布式处理引擎,数据处理方法还包括:基于分布式处理引擎,对数据流进行实时处理。
第三方面,本申请实施例提供了一种电子设备,电子设备包括:处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现第二方面的数据处理方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现第二方面的数据处理方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品被存储在非易失的存储介质中,计算机程序产品被至少一个处理器执行以实现第二方面的数据处理方法的步骤。
本申请实施例的数据处理系统、方法、设备及计算机可读存储介质,数据处理系统包括展现层,展现层包括编程接口,展现层的脚本语言通过编程接口实现与目标页面中的元素交互,编程接口为树状结构,展现层用于输入目标页面中的用户请求;其中,编程接口包含虚拟节点,虚拟节点内置了差异查找算法,差异查找算法用于当展现层代码变动时,找到变更节点,展现层用于加载变更节点以及展示变更节点的内容。由于展现层的编程接口为树状结构,所以存在许多的节点。在这些节点中插入一个虚拟节点,由于虚拟节点为编程接口的树状结构的映射,并且虚拟节点内置差异查找算法,所以当展现层脚本语言变动时,虚拟节点可以通过差异查找算法,查询到树状结构中变动的节点。在重新渲染页面时,只需重新加载变动的节点,就可以渲染出修改后的页面,而不用运行所有代码。如此,可以降低展现层的算法复杂度,提高展现层的渲染性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理系统的一种结构示意图;
图2是本申请实施例提供的数据处理系统的另一种结构示意图;
图3是本申请实施例提供的数据处理方法的一种流程示意图;
图4是本申请实施例提供的数据处理方法的另一种流程示意图;
图5是本申请实施例提供的一种电子设备示意图;
图6是本申请实施例提供的数据处理系统的一种结构框架示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在不脱离本申请的精神或范围的情况下,在本申请中能进行各种修改和变化,这对于本领域技术人员来说是显而易见的。因而,本申请意在覆盖落入所对应权利要求(要求保护的技术方案)及其等同物范围内的本申请的修改和变化。需要说明的是,本申请实施例所提供的实施方式,在不矛盾的情况下可以相互组合。
在阐述本申请实施例所提供的技术方案之前,为了便于对本申请实施例理解,本申请首先对专业术语进行具体说明:
Virtual Dom:也就是虚拟节点。它通过JavaScript的对象(Object)模拟文件对象模型(Document Object Mode,DOM)中的节点,然后再通过特定的渲染方法将其渲染成真实的DOM节点。
React:构建用户界面的JavaScript库,主要用于构建用户界面(user interface,UI)。可以在React里传递多种类型的参数,如声明代码,帮助渲染出UI、也可以是静态的适用于超文本标记语言(HyperText Markup Language,HTML)的DOM元素、也可以传递动态变量、甚至是可交互的应用组件。
Diff策略:React将虚拟DOM转换为真实DOM的最少操作的过程称为调和。就是调和的具体实现。相比于一版树形结构对比,算法复杂度可以从(O(n^3))降低到(O(n))。基于下面三个策略:
策略一、树的优化策略(Tree Diff)为DOM中一般不出现跨层级的操作,所以只在同一层级对比,如果同一层某一个节点不同,会将该节点下包含该节点的所有节点全删。
策略二、组件的优化策略(Component Diff)不同组件会直接删掉,对于相同组件继续按层级对比。
策略三、元素的优化策略(Element Diff)对于元素提供三种操作删除、插入、移动,基于唯一标识(Key)可以提高效率,否则需要循环新结点一次循环旧结点一次才能找到变化。
Swagger:一种规范和完整的框架,用于生成、描述、调用和可视化网络应用程序风格(RESTful)的全球广域网(World Wide Web,Web)服务。Swagger可以生成客户端软件开发工具包(Software Development Kit,SDK)代码用于各种不同的平台上的实现。Swagger文件可以在许多不同的平台上从代码注释中自动生成。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许应用程序编程接口(Application Programming Interface,API)来始终保持同步。Swagger让部署管理和使用功能强大的API变得简单。
InfluxDB:时间序列数据库,旨在处理高写入和查询负载。它是TICK堆栈的组成部分。InfluxDB旨在用作涉及大量带时间戳数据的任何用例的后备存储,包括开发(DEV)监控、测试(QA)监控和运维(OPS)监控,应用程序指标,物联网传感器数据和实时分析。
Flink:框架和分布式处理引擎,用于对无限制和有限制的数据流进行有状态的计算。Flink被设计为可在所有常见的集群环境中运行,以内存速度和任何规模执行计算。应用场景包括实时计算采集多个指标,调整汇聚策略;实时计算大数据量日志文件,分析警告(warn)、错误(error)级别日志和基于分控规则进行预警。
无界流数据:无界流有一个起点,但没有定义的终点。它们不会终止并在生成数据时提供数据,无界流必须被连续处理,即事件在被摄取后必须被及时处理。无法等待所有输入数据到达,因为输入时无界的,并且在任何事件都不会完成,处理无边界数据通常需要以特定顺序(例如事件发生的顺序)来摄取事件,一遍能够推断出结果的完整性。
有界流数据:有界流具有定义的开始和结束。可以通过在执行任何计算之前提取所有数据来处理有界流。由于有界数据始终可以排序,因此不需要有序摄取即可处理有界流。绑定流的处理也被称为批处理。
其次,对本申请相关技术中存在的问题进行具体说明:
在软件开发过程中,传统的瀑布型模式已经不能满足快速交付的需求,现在采用敏捷方法来进行软件开发,敏捷方法满足需求的办法主要通过迭代。在每一次迭代周期结束时,都能交付用户一个可用的、可部署的系统,用户使用并体验该系统并反馈意见,在随后的迭代周期这些意见和需求的其他变化一起在产品中实现和集成。实现开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
但是,现有架构包括四个架构分层:展现层、应用层、数据层和采集层,分别存在以下缺陷:
展现层,展现层中包含编程接口,展现层的脚本语言通过编程接口与页面元素进行交互,由于现有的架构分层中展现层直接操作编程接口,对展现层的部分脚本语言进行改动后,当重新渲染页面时,需要加载所有脚本语言,使得算法复杂度高,造成前端性能较差。
应用层,应用层中文件的方法、参数和模型的代码由客户端紧密集成到服务器端,容易造成客户端和服务器端接口更新进度不一致,即前后端接口更新进度不一致,导致前后代码不同步。
数据层,现有的架构分层中数据层在处理高性能数据存储、高负载查询或者写入往往会遇到瓶颈,且目前主流的分库分表技术不能有效地解决这个问题,而且还需要依赖一些中间件,例如分布式处理系统(cobar)、分布式数据访问引擎(TDDL)、开源分布式数据库系统(mycat)。
采集层,现有架构分层中的采集层一般用于集群和负载均衡,而且目前常用的一些集群方式,比如分布式集群(Hadoop),由于业务的操作频繁读写,且在处理数据时采用批处理的方式,批处理的特点是有界、数据海量、批次作业多、处理时间长和需要考虑共享中央处理器(Central Processing Unit,CPU)和外部存储设备等资源性能问题。批处理即海量数据在固定时间同时进行处理,使中央处理器CPU性能损耗大,易导致集群访问堵塞或者崩溃的问题。
以上为现有架构设计经常遇到的问题。
基于此,为了实现敏捷开发的过程,适应快速交付的需求,提高开发、测试和运维的效率,本申请实施例提供了一种数据处理系统、方法、设备及计算机可读存储介质。下面首先对本申请实施例所提供的一种数据处理系统进行介绍。
图1是本申请实施例提供的数据处理系统的一种结构示意图,如图1所示,该数据处理系统100包括展现层110,展现层110包括编程接口111(图中未示出),展现层110的脚本语言通过编程接口111实现与目标页面中的元素交互,编程接口111为树状结构。例如,编程接口111可以包括DOM,DOM为树状结构,包含许多节点。展现层110的脚本语言可以包括JavaScript脚本语言,JavaScript脚本语言可以通过DOM来修改或添加页面元素,如给页面修改、添加或删除小组件。展现层110用于输入目标页面中的用户请求;
其中,编程接口111包含虚拟节点,例如,虚拟节点可以包括虚拟DOM。虚拟节点内置了差异查找算法,差异查找算法用于当展现层110代码变动时,找到变更节点,展现层110用于加载变更节点以及展示变更节点的内容。
由于展现层的编程接口111为树状结构,所以存在许多的节点。在这些节点中插入一个虚拟节点,由于虚拟节点为编程接口111的树状结构的映射,并且虚拟节点内置差异查找算法,所以当展现层脚本语言变动时,虚拟节点可以通过差异查找算法,查询到树状结构中变动的节点。在重新渲染页面时,只需重新加载变动的节点,就可以渲染出修改后的页面,而不用运行所有代码。如此,可以降低展现层的算法复杂度,提高展现层的渲染性能。
在一些实施例中,差异查找算法可以包括差异算法(Difference,Diff)。通过在虚拟DOM中内置Diff算法,利用拒绝进入和控制技术(Reject Entry And ControlTechnique,React)制定Diff策略。策略包括:策略一、树的优化策略,React通过分层求异的策略,对层级对比算法(Tree diff)进行算法优化。策略二、组件的优化策略,React通过相同类生成相似树形结构,不同类生成不同树形结构的策略,对组件对比算法(ComponentDiff)进行算法优化。策略三、元素的优化策略,React通过设置唯一标识(Key)的策略,对节点对比算法(Element Diff)进行算法优化。通过以上三个策略可以实现当展现层代码改动后,对DOM和虚拟DOM中的JavaScript对象进行差异查找,找到变更节点并加载变更节点的代码运行内容。如此,可以将算法复杂度由O(n3)降低为O(n),提高展现层的渲染性能。
继续参加图1,数据处理系统还包括:应用层120,应用层120包括调用框架121,调用框架121用于规范接口信息和发送目标文件给客户端和服务端。例如,调用框架121可以包括Swagger框架,在文件的方法、参数和模型紧密集成到服务器端代码的过程中,允许应用程序编程接口111API来始终保持同步。Swagger规范定义了接口及接口相关的信息,再通过Swagger提供的出来的一系列项目和工具,生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性,解决了前后端接口更新进度不一致的问题。
图2是本申请实施例提供的数据处理系统的另一种结构示意图,如图2所示,调用框架121包括:第一开源工具1211、第二开源工具1212、第三开源工具1213和第四开源工具1214。
第一开源工具1211用于生成多种语言的服务端代码和多种语言的客户端代码,也可将描述文件生成html、cwiki形式的接口文档,可以将Java归档文件(Java Archive,jar包),docker,node等格式文件可以在本地化执行,消除等待时间,快速反馈,使前后端接口更新进度一致。
第二开源工具1212用于在目标页面展示描述文件,并且在目标页面查看接口信息,调试人员、测试人员等都可以在该页面查看接口信息,使调试变得简单。
第三开源工具1213用于实时预览描述文件的更新效果,使交付结果可预测。
第四开源工具1214用于对接口进行测试,通过调试接口请求,查看接口返回信息,保存请求参数,提升交付质量。
在一些实施例中,当调用框架121为Swagger时,第一开源工具1211为Swagger代码生成器(Codegen),第二开源工具1212为Swagger UI,第三开源工具1213为Swagger编辑器(Editor),第四开源工具1214为Swagger检查工具(Inspector),其功能已在上文描述,在此不在赘述。
继续参见图1,数据处理系统还包括:数据层130,数据层130分别与展现层110和应用层120连接,数据层130包括时间序列数据库131,时间序列数据库131用于实时存储和写入来自展现层110的数据。
在一些实施例中,时间序列数据库131包括时序数据库(InfluxDB),InfluxDB是为时间序列数据专门编写的自定义高性能数据存储,高负载写入的数据库,InfluxDB也可以解决高并发的性能问题。时间序列数据包括随时间跟踪、监视、下采样和聚合的度量或事件,广泛应用于在后台处理数据抽取、转换和加载(Extraction-Transform-Loading,ETL)或监视和警报、用户仪表板以及可视化和探索数据等的API、应用程序性能、网络数据以及许多其他类型的分析数据。InfluxDB使用类似于结构化查询语言(SQL)的Go语言编写,无外部依赖。通过数据保存策略(Retention Policy),设置数据的保留时间和副本,在保障数据可靠性的同时,及时删除过期数据,释放存储空间。对于海量数据的采样,使用连续查询(Continues Query)来实现。通过及时删除过期数据,释放存储空间实现了实时存储和写入,解决了数据层在处理高性能数据存储、高负载查询或写入时往往会遇到瓶颈的问题。
继续参见图1,数据处理系统还包括:采集层140,采集层140包括分布式处理引擎141,分布式处理引擎141用于对数据流进行实时处理。
在对生成的数据进行处理的过程中,采集层140通过分布式处理引擎141对数据进行流处理,流处理的特点是无界和实时,即在数据生成时进行实时处理,数据被获取后立刻处理,而不用等到某一特定时间数据都到达后再进行处理,如此,减轻了CPU的负担,也解决了集群访问堵塞或者崩溃的问题。
在一些实施例中,分布式处理引擎141可以包括Flink,Flink是分布式、高性能、支持流处理应用程序打造的开源流处理框架。用于分布式处理引擎,以及集群环境中。它不但可以集成主流的集群资源管理器,也可以独立集群运行。Flink是一个对有界和无界数据流进行状态计算的分布式处理引擎和框架。
图3是本申请实施例提供的数据处理方法的一种流程示意图,其应用以上所描述的数据处理系统,如图3所示,该方法可以包括S301至S302:
S301、当改动展现层的代码时,基于虚拟节点中的差异查找算法,查询树状结构中的变更节点,变更节点为改动的代码所在的节点。
S302、基于展现层的脚本语言加载变更节点,并展示变更节点的内容。
在一些实施例中,展现层的脚本语言为JavaScript,虚拟节点为Virtual DOM,是DOM结构的映射,差异查找算法为Diff算法。为了在展现层添加一个页面元素,例如小组件,需要改动展现层的部分脚本语言,例如在1000行的脚本语言中添加6行脚本语言。改动展现层的脚本语言后,由于Virtual DOM内有Diff算法的存在,Diff算法可以查找出DOM和Virtual DOM中的变更节点。在重现渲染页面时,只加载构成变更节点的部分代码,即只加载添加的6行脚本语言,就可以渲染整个页面而不用加载全部的脚本语言。如此,可以降低展现层的算法复杂度,提高展现层的渲染性能。
图4是本申请实施例提供的数据处理方法的另一种流程示意图,数据处理系统还包括应用层,应用层包括调用框架,调用框架包括第一开源工具,如图4所示,该方法还可以包括:S401至S402
S401、基于调用框架中的第一开源工具,生成统一的目标文件。
S402、将目标文件发送给客户端和服务端。
在一些实施例中,调用框架可以包括Swagger,第一开源工具为Swagger Codegen,生成统一的目标文件并发送给客户端和服务端,是为了实现调用端代码、服务端代码和接口文档的一致性,并且通过Swagger同时发生目标文件给客户端和服务端,解决了前后端接口不一致的问题。
在一些实施例中,调用框架还包括第二开源工具、第三开源工具和第四开源工具,本申请实施例提供的数据处理方法还包括:
步骤一、基于调用框架中的第二开源工具,向目标页面发送描述文件和接口信息。
步骤二、在目标页面查看目标文件和接口信息。
在一些实施例中,调用框架可以包括Swagger,第二开源工具为Swagger UI,目标页面可以理解为展示层,即可以在展示层查看目标文件和接口信息。
步骤三、基于调用框架中的第三开源工具,实时预览目标文件的更新效果。
在一些实施例中,调用框架可以包括Swagger,第三开源工具为Swagger Editor,Swagger Editor可以实时预览目标文件的更新效果,且Swagger Editor有在线编辑器和本地部署编辑器两种模式,当发现更新效果与预期效果不符时,可以实时在线调整,使调试变得简单。
步骤四、基于调用框架中的第四开源工具,对接口进行测试。
四种开源工具结合使用,解决了应用层前后端接口不一致的问题,使调试变得简单,提升了交付质量。
在一些实施例中,数据处理系统还包括数据层,数据层包括时间序列数据库,本申请实施例提供的数据处理方法还包括:
步骤五、基于时间序列数据库,实时存储和写入来自展现层的数据。
时间序列数据库可以实时存储和写入数据,通过及时删除过期数据,释放存储空间解决了数据层在处理高性能数据存储、高负载查询或写入时往往会遇到瓶颈的问题。
在一些实施例中,数据处理系统还包括采集层,采集层包括分布式处理引擎,本申请实施例提供的数据处理方法还包括:
步骤六、基于分布式处理引擎,对数据流进行实时处理。
在对生成的数据进行处理的过程中,采集层通过分布式处理引擎对数据进行流处理,流处理的特点是无界和实时,即在数据生成时进行实时处理,数据被获取后立刻处理,而不用等到某一特定时间数据都到达后再进行处理,如此,减轻了CPU的负担,也解决了集群访问堵塞或者崩溃的问题。
图5为本申请实施例提供的一种电子设备示意图,如图5所示,电子设备包括:处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
存储器可包括只读存储器(Read Only Memory,ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的第一方面的方法所描述的操作。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种活动推送方法。
在一个示例中,一种电子设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将终端服务设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(IndustryStandard Architecture,ISA)总线、无限带宽互连、低引脚数(Linear PredictiveCoding,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PeripheralComponent Interconnect-X,PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,SATA)总线、视频电子标准协会局部(VESA Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该设备可以基于数据处理系统中的各个单元/部件执行本申请实施例中的数据处理方法,从而实现结合图3和图4描述的数据处理方法。
另外,结合上述实施例中的数据处理方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种活动推送方法。
本申请还提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行实现上述任意一种数据处理方法实施例的各个过程。
图6是本申请实施例提供的数据处理系统的一种结构框架示意图,如图6所示,展现层采用React核心技术、应用层引入Swagger规范、数据层将传统数据库替换为了时序数据库、采集层引入Flink处理引擎。从展现层、应用层、数据层和采集层采用不同的技术组件的实现方法和算法,实现敏捷开发的过程,适应快速交付的需求。提高开发、测试、运维的效率,减少成本。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除只读存储器(Erasable ReadOnly Memory,EROM)、软盘、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种数据处理系统,其特征在于,包括:
展现层,所述展现层包括编程接口,所述展现层的脚本语言通过所述编程接口实现与目标页面中的元素交互,所述编程接口为树状结构,所述展现层用于输入所述目标页面中的用户请求;
其中,所述编程接口包含虚拟节点,所述虚拟节点内置了差异查找算法,所述差异查找算法用于当所述展现层代码变动时,找到变更节点,所述展现层用于加载所述变更节点以及展示所述变更节点的内容。
2.根据权利要求1所述的一种数据处理系统,其特征在于,所述数据处理系统还包括:
应用层,所述应用层包括调用框架,所述调用框架用于规范接口信息和发送目标文件给客户端和服务端。
3.根据权利要求2所述的一种数据处理系统,其特征在于,所述调用框架包括:
第一开源工具,所述第一开源工具用于生成多种语言的服务端代码和多种语言的客户端代码;
第二开源工具,所述第二开源工具用于在目标页面展示描述文件,并且在所述目标页面查看接口信息;
第三开源工具,所述第三开源工具用于实时预览所述描述文件的更新效果;
第四开源工具,所述第四开源工具用于对接口进行测试。
4.根据权利要求2所述的一种数据处理系统,其特征在于,所述数据处理系统还包括:
数据层,所述数据层分别与所述展现层和所述应用层连接,所述数据层包括时间序列数据库,所述时间序列数据库用于实时存储和写入来自所述展现层的数据。
5.根据权利要求1所述的一种数据处理系统,其特征在于,所述数据处理系统还包括:
采集层,所述采集层包括分布式处理引擎,所述分布式处理引擎用于对数据流进行实时处理。
6.一种数据处理方法,其特征在于,应用于如权利要求1至5中任一项所述的数据处理系统,所述方法包括:
当改动所述展现层的代码时,基于所述虚拟节点中的所述差异查找算法,查询所述树状结构中的变更节点,所述变更节点为改动的代码所在的节点;
基于所述展现层的脚本语言加载所述变更节点,并展示所述变更节点的内容。
7.根据权利要求6所述的数据处理方法,其特征在于,所述数据处理系统还包括应用层,所述应用层包括调用框架,所述调用框架包括第一开源工具,所述方法还包括:
基于所述调用框架中的第一开源工具,生成统一的目标文件;
将所述目标文件发送给所述客户端和所述服务端。
8.根据权利要求7所述的数据处理方法,其特征在于,所述调用框架还包括第二开源工具、第三开源工具和第四开源工具,所述方法还包括:
基于所述调用框架中的第二开源工具,向目标页面发送描述文件和接口信息;
在所述目标页面查看所述目标文件和所述接口信息;
基于所述调用框架中的第三开源工具,实时预览所述目标文件的更新效果;
基于所述调用框架中的第四开源工具,对接口进行测试。
9.根据权利要求8所述的数据处理方法,其特征在于,所述数据处理系统还包括数据层,所述数据层包括时间序列数据库,所述方法还包括:
基于所述时间序列数据库,实时存储和写入来自所述展现层的数据。
10.根据权利要求9所述的数据处理方法,其特征在于,所述数据处理系统还包括采集层,所述采集层包括分布式处理引擎,所述方法还包括:
基于所述分布式处理引擎,对数据流进行实时处理。
11.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求6至10中任一项所述的数据处理方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求6至10中任一项所述的数据处理方法的步骤。
13.一种计算机程序产品,其特征在于,所述计算机程序产品被存储在非易失的存储介质中,所述计算机程序产品被至少一个处理器执行以实现如权利要求6至10中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311241246.3A CN117311673A (zh) | 2023-09-22 | 2023-09-22 | 一种数据处理系统、方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311241246.3A CN117311673A (zh) | 2023-09-22 | 2023-09-22 | 一种数据处理系统、方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311673A true CN117311673A (zh) | 2023-12-29 |
Family
ID=89254702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311241246.3A Pending CN117311673A (zh) | 2023-09-22 | 2023-09-22 | 一种数据处理系统、方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311673A (zh) |
-
2023
- 2023-09-22 CN CN202311241246.3A patent/CN117311673A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110023923B (zh) | 生成数据变换工作流 | |
US10540383B2 (en) | Automatic ontology generation | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN107665228B (zh) | 一种关联信息查询方法、终端及设备 | |
US8584112B2 (en) | Open application lifecycle management framework | |
US9576037B2 (en) | Self-analyzing data processing job to determine data quality issues | |
US9400733B2 (en) | Pattern matching framework for log analysis | |
US20140068567A1 (en) | Determining relevant events in source code analysis | |
US8775392B1 (en) | Revision control and configuration management | |
CN113326247B (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
US20220207039A1 (en) | Query content-based data generation | |
CN113495728A (zh) | 依赖关系确定方法、装置、电子设备及介质 | |
US11366704B2 (en) | Configurable analytics for microservices performance analysis | |
CN113220907B (zh) | 业务知识图谱的构建方法及装置、介质、电子设备 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
CN111966718B (zh) | 用于应用系统的数据传播追踪的系统及方法 | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
US11847120B2 (en) | Performance of SQL execution sequence in production database instance | |
CN115455006A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN117311673A (zh) | 一种数据处理系统、方法、设备及计算机可读存储介质 | |
CN109710538B (zh) | 一种用于大规模系统中状态相关缺陷的静态检测方法 | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN112579673A (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 |