CN111880840A - 数据获取方法、装置、电子设备及存储介质 - Google Patents
数据获取方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111880840A CN111880840A CN202010722781.0A CN202010722781A CN111880840A CN 111880840 A CN111880840 A CN 111880840A CN 202010722781 A CN202010722781 A CN 202010722781A CN 111880840 A CN111880840 A CN 111880840A
- Authority
- CN
- China
- Prior art keywords
- data
- type
- acquired
- target
- supplementary
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000000153 supplemental effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 6
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000011161 development Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供数据获取方法、装置、电子设备及存储介质,涉及数据处理领域。该方法包括:接收客户端发送的页面获取请求;获取页面获取请求指示的目标数据;以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。故此,整个过程不需要将数据类型的父子关系的代码以平铺的方式编写并可以重复使用,并不需要针对各数据类型都编写相应的数据获取代码。由此,解决了由于程序代码开发复杂、数据类型之间的代码无法复用导致的代码冗余且难以维护的问题。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种数据获取方法、装置、电子设备及存储介质。
背景技术
服务端获取数据进行数据构建并生成最终渲染结果,渲染结果的格式可以为JSON(JavaScript Object Notation,JS对象简谱)、可扩展标记语言XML格式等。构建数据获取的过程会涉及到一系列复杂的工程问题。一般来说,原始数据以索引和实体的形式存储,或者两者混合的方式。
现有的技术中,当用户请求发出时,服务端先通过索引获取类型标识集合,再根据类型标识集合获取实体数据,最终获取实体数据的集合进行数据构建,根据业务需求输出最后的渲染结果。
然而,发明人发现,在实际的数据获取过程中,由于数据之间的关联关系,一些实体数据会包含一些类似外键关联的额外实体数据,这些额外的实体数据也需要进行获取,并且基于这样的关联关系可能会嵌套非常多的层级。故此,开发人员需要熟知数据之间的关联关系,数据的获取过程为读取数据,然后对读取的数据进行分析,如果包括额外的数据,则继续获取额外的数据,以此类推。当数据的关联关系复杂时,获取数据的代码开发复杂,不同数据类型之间的代码无法复用。
发明内容
本公开的目的在于提供一种数据获取方法、装置、电子设备及存储介质,以解决上述相关技术中当数据父子关系复杂时,获取数据的代码开发复杂,不同数据类型之间的代码无法复用的问题。
第一方面,本公开提供一种数据获取方法,所述方法包括:
接收客户端发送的页面获取请求;
获取所述页面获取请求指示的目标数据;
以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
在一个实施例中,所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据,包括:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;
当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
在一个实施例中,所述方法还包括:
所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型之前,将每个目标数据添加到所述已获取数据集合中;
所述将所述补充数据与已获取数据集合进行比对,包括:
由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;
所述当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程,包括:
若所述差集为空,则结束所述循环过程。
在一个实施例中,所述比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集之后,还包括:
将所述中间数据集合合并到所述已获取数据集合中。
在一个实施例中,所述将所述中间数据集合合并到所述已获取数据集合中之前,所述方法还包括:
将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
在一个实施例中,所述数据类型的父子关系中,还包括补充数据获取条件;所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据之前,还包括:
获取所述补充数据的获取条件以及与所述获取条件进行匹配的待匹配信息;所述获取条件包括以下中的至少一种条件:具有所述补充数据的访问权限,所述目标数据的数据类型满足预设的数据类型、所述目标数据为审核通过的数据;
若确定所述待匹配信息满足所述获取条件,则执行在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据的步骤。
第二方面,本公开提供一种数据获取装置,所述装置包括:
接收模块,被配置为执行接收客户端发送的页面获取请求;
目标数据获取模块,被配置为执行获取所述页面获取请求指示的目标数据;
补充数据获取模块,被配置为执行以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
页面构建模块,被配置为执行采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
在一个实施例中,所述补充数据获取模块,具体被配置为执行:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;
当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
在一个实施例中,所述装置还包括:
添加模块,被配置为执行所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型之前,将每个目标数据添加到所述已获取数据集合中;
所述补充数据获取模块在执行所述将所述补充数据与已获取数据集合进行比对时,被配置为:
由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;
所述补充数据获取模块在执行所述当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程时,被配置为:
若所述差集为空,则结束所述循环过程。
在一个实施例中,所述装置还包括:
合并模块,被配置为执行所述比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集之后,将所述中间数据集合合并到所述已获取数据集合中。
在一个实施例中,所述装置还包括:
滤除模块,被配置为执行所述将所述中间数据集合合并到所述已获取数据集合中之前,将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
在一个实施例中,所述数据类型的父子关系中,还包括补充数据获取条件;所述装置还包括:
条件获取模块,被配置为执行获取所述补充数据的获取条件以及与所述获取条件进行匹配的待匹配信息;所述获取条件包括以下中的至少一种条件:具有所述补充数据的访问权限,所述目标数据的数据类型满足预设的数据类型、所述目标数据为审核通过的数据;
确定模块,被配置为执行若确定所述待匹配信息满足所述获取条件,则执行在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据的步骤。
根据本公开实施例的第三方面,提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开实施例提供的第四方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行第一方面所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开提供数据获取方法、装置、电子设备及存储介质。该方法包括:接收客户端发送的页面获取请求;获取所述页面获取请求指示的目标数据;以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。故此,整个过程不需要将获取数据类型的父子赖关系的代码以平铺的方式进行编写,并且数据类型的父子关系可以重复使用,并不需要针对每一种数据类型都要编写相应的数据获取代码。由此,在开发获取数据的代码时,不需要考虑数据类型的父子关系,无需将数据类型的父子关系重复编写在程序代码中,解决了现有技术中由于程序代码开发复杂、不同数据类型之间的代码无法复用导致的代码冗余且难以维护的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为根据本公开的一个实施例的数据获取树形示意图之一;
图2为根据本公开一个实施例的数据获取的流程示意图之一;
图3为根据本公开一个实施例的界面示意图之一;
图4为根据本公开一个实施例的界面示意图之二;
图5为根据本公开一个实施例的数据获取的树形示意图之二;
图6为根据本公开一个实施例的数据获取的流程示意图之二;
图7根据本公开一个实施例的数据获取的装置示意图;
图8根据本公开一个实施例的电子设备的结构示意图。
具体实施方式
为进一步说明本公开实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本公开实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本公开实施例提供的执行顺序。方法在实际的处理过程中或者控制设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
本公开实施例中术语“多个”是指两个或两个以上,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本公开,并不用于限定本公开,并且在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
发明人研究发现,由于数据之间存在关联关系的原因,一些实体数据会包含一些类似外键关联的额外实体数据,这些额外的实体数据也需要进行获取、构建并输出,并且这样的关联关系可能会嵌套非常多的层级。并且发明人发现,相关技术中在编写获取数据代码时,数据之间没有明确的关联关系,需要获取什么数据,完全靠上一层级获取的数据结果来分析。例如:
获取视频列表中的视频数据时,需要查看视频数据是否包含其他数据类型的数据标识,若包含其他数据类型的数据标识,例如为作者标识,则需要获取与作者标识相对应的作者数据。当获取到作者数据时,还需要解析作者数据中是否包含其他数据类型的数据标识。若包含其他数据类型的数据标识,则继续获取数据。依此类推,就这样一层一层的迭代下去,直到获取的数据中不再包含任何未获取的数据标识则结束。故此,现有技术中,构建数据获取的代码通常是以平铺方式进行编写的。导致代码编写逻辑复杂。并且因为不同的数据类型构建数据的程序代码无法重复使用,所以对每一种数据类型都要编写程序代码。故此,相关技术中程序代码不光冗余而且难以维护。
由此,本公开提供一种数据获取方法,通过对数据之间关联关系,抽象描述成父子关系,继而基于抽象描述构造成有向图的形式来表达不同数据类型的父子关系。当接收到客户端的页面获取请求时,通过在预先构建的数据类型的父子关系查找需要获取的数据进行页面构建。由此,本公开根据预先构建的数据类型的父子关系即可确定出需要获取的数据,获取数据的程序代码中不需要涵盖数据之间的父子关系,故此无需将数据获取的程序代码以平铺方式进行编写,并且,本公开中的数据类型的父子关系可以重复使用,不需要针对每一种数据类型都要编写数据获取的程序代码,降低程序代码的冗余度。若数据之间的父子关系没有改变,则程序代码的维护和更新也不必关心数据之间的父子关系。
下面,结合附图,对本公开的技术方案进行详细的说明。
一、数据类型父子关系的构建:
在进行数据获取之前,首先需要构建一个数据类型的父子关系,可通过有向图来进行表示。例如,如图1所示,图1中的每个顶点为一种数据类型,有向图中的每一条边,例如A→B这条边,表示数据类型A为数据类型B父数据类型。以此类推,数据类型A也为数据类型C的父数据类型。数据类型B为数据类型D的父数据类型。例如,多媒体网络资源应用场景中,若数据类型A为照片类型,数据类型类似B为评论类型,数据类型C可以为照片作者类型,数据类型D可以为评论点赞数量。
需要说明的是,有向图中的数据类型的父子关系可以是程序代码进行编写构建的。也可以通过数据库表的方式实现。例如,当以程序代码进行构建时,每一个数据类型为一个类,程序代码中编写了各个类之间的父子关系。最终,通过有向图的程序代码能够得到有向图中各个数据类型的父子关系。
当以数据库表的实现方式,可通过查找表的方式实现确定数据类型的父子关系。如表1和表2可作为两种数据类型的关联表。其中,表1中具有表2中数据的关联键值,所述关联键值用于指向表2中的一种或多种数据类型。例如,表中1包含数据类型A,表2中包含数据类型B、数据类型C、数据类型D。则数据类型B、数据类型C、数据类型D为数据类型A的子数据类型。
在介绍完有向图的构建之后,下面对有向图中数据类型的父子关系的维护进行说明:
1)、以程序代码进行构建的数据类型的父子关系进行维护时,若有新的数据类型要添加,则在程序代码中进行修改代码,添加相应的数据类型。若有数据类型不再使用,则在相应的程序代码中进行修改,将不再使用的数据类型进行删除。
2)、以数据库表进行构建的数据类型的父子关系进行维护时,若要添加新的数据类型时,则在对应的数据表中进行添加修改。若要进行删除数据类型时,则在相应的数据表中将相应的数据类型进行删除。
二、根据有向图中数据类型的父子关系实现的数据获取:
如图2所示,本公开提供一种数据获取方法,可包括以下步骤:
步骤201:接收客户端发送的页面获取请求;
步骤202:获取所述页面获取请求指示的目标数据;
步骤203:以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
步骤204:采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
由此,本公开通过对数据之间的父子关系进行抽象描述构造成有向图的形式来表达不同数据类型的父子关系。当接收到客户端的页面获取请求时,通过在预先构建的数据类型的父子关系查找需要获取的数据进行页面构建。由此,本公开根据预先构建的数据类型的父子关系即可确定出需要获取的数据,获取数据的程序代码中不需要涵盖数据之间的父子关系,故此无需将数据获取的程序代码以平铺方式进行编写,并且,本公开中的数据类型的父子关系可以重复使用,不需要针对每一种数据类型都要编写数据获取的程序代码,降低程序代码的冗余度。若数据之间的父子关系没有改变,则程序代码的维护和更新也不必关心数据之间的父子关系。
前文所述的述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;在本公开实施例中,可执行为:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
例如,以视频应用的发现页面为例,进行详细的说明,如图3所示,图3为打开视频应用的发现页面,页面中会显示一定数量的视频供用户选择和浏览,本申请实施例中显示的是4个视频,需要说明的是,页面中显示的数量在此不做限定。当用户点开某一个视频之后,例如点击视频1之后,会进入视频1的播放界面,如图4所示,界面中会显示视频的作者,评论等信息。需要说明的是,图3中任何一个视频被点开之后,都会显示视频的作者,评论等这些类型的信息。以上述4个视频为例进行说明如何获取视频中的数据:
此时,目标数据为视频1,视频2,视频3,视频4。在数据类型的父子关系中解析视频1,视频2,视频3和视频4各自的数据类型包含的子数据类型。首先,先将目标数据添加到已获取数据集合中,此时已获取数据集合包括:视频1、视频2、视频3和视频4。然后针对目标数据,执行循环过程,下面,则以视频2为例进行说明:
此时,视频2的数据类型为视频,根据图5中的数据类型的父子关系,确定出视频子数据类型为作者和评论。则从作者数据集和评论数据集中获取与视频2对应的关联数据作为补充数据,例如,视频2的作者为作者2,视频2对应的评论包括评论1、评论2。则补充数据包括作者2、评论1和评论2。
在一个实施例中,所述将所述补充数据与已获取数据集合进行比对,可实施为:由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;所述当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程,可实施为:若所述差集为空,则结束所述循环过程。
所以,当对目标数据循环过程结束之后,由补充数据构建中间数据集合,并比对已获取数据集合和所述中间数据集合,得到差集。假如视频1的作者为作者1,视频3的作者为作者3,视频4的作者为作者4。视频1、视频3、视频4都没有评论。则中间数据集合包括:作者1、作者2、作者3、作者4、评论1、评论2。此时的已获取数据集合为:视频1、视频2、视频3、视频4。则确定出差集为:作者1、作者2、作者3、作者4、评论1、评论2。
在一个实施例中,将所述中间数据集合合并到所述已获取数据集合中。则合并后的已获取数据集合包括:作者1、作者2、作者3、作者4、评论1、评论2、视频1、视频2、视频3、视频4。
然后,将确定出的差集中的数据根据图5中的数据类型的父子关系,继续进行数据查找和获取。例如,作者1、作者2、作者3、作者4都没有关注的用户,则关注的用户类型中没有需要获取的数据。例如,获取到评论1的作者为作者2,评论2的作者也为作者3。则此时的中间数据集合包括:作者2、作者3。将所述中间数据集合与所述已获取数据集合进行比对。由于前文所述的合并后的已获取数据集合中包含作者2和作者3,则确定出差集为空。则结束循环过程。
上述的整个数据获取逻辑,在相应的有向图程序代码中的实现过程可理解为:每一个数据类型为一个类,每个类中都有自己的成员变量。例如,视频为一个类,那么视频的成员变量有作者,评论等信息。如果要获取视频类型的数据,则根据视频类型有向图中的代码的父子关系进行遍历迭代,得到要获取的数据。
由此,根据数据类型的父子关系,通过反复迭代的获取方式,可以获取页面获取请求中需要的全部数据。
将所述中间数据集合合并到所述已获取数据集合中之前,在一个实施例中,将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
例如,中间数据集合中包含数据A和数据B。已获取数据集合中包含数据B、数据C、数据D。两个集合交集中的数据为数据B。则将数据B从所述中间数据集合中滤除。
所述数据类型的父子关系中,还包括补充数据获取条件;在一个实施例中,获取所述补充数据的获取条件以及与所述获取条件进行匹配的待匹配信息;所述获取条件包括以下中的至少一种条件:具有所述补充数据的访问权限,所述目标数据的数据类型满足预设的数据类型、所述目标数据的为审核通过的数据;若确定所述待匹配信息满足所述获取条件,则执行在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据的步骤。
(1)当获取条件为具有所述补充数据的访问权限:
例如,补充数据为访问者请求的数据,获取条件为已设置验证请求功能。如,用户A已设置验证请求功能,则说明待匹配信息为已设置验证请求功能,则待匹配信息满足获取条件,则可以获取访问请求的数据。
(2)获取条件为所述目标数据的数据类型满足预设的数据类型:
例如,获取条件为视频类型为音乐视频类型,若待匹配信息为音乐视频,则需要获取从音乐数据库中获取相应的音乐数据。
(3)获取条件为目标数据为审核通过的数据:
例如,目标数据为电商视频,则获取到的待匹配信息为审核过的数据,则可确定待匹配信息满足获取条件。
由此,可以通过设置获取条件使得数据的获取更加灵活,避免进行不必要的获取操作。
为了进一步了解本公开提供的技术方案,下面结合图6进行详细说明,可包括以下步骤:
步骤601:接收客户端发送的页面获取请求;
步骤602:获取所述页面获取请求指示的目标数据;
步骤603:将每个目标数据添加到所述已获取数据集合中;
步骤604:以所述目标数据的数据类型为父数据类型,在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
步骤605:若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
步骤606:由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;
步骤607:将所述中间数据集合合并到所述已获取数据集合中;
步骤608:若所述差集为空,则结束所述循环过程;否则将所述差集中的数据作为新的目标数据继续执行步骤604;
步骤609:将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
基于相同的发明构思,本公开如上所述的数据获取方法还可以由一种数据获取装置实现。该装置的效果与前述方法的效果相似,在此不再赘述。
图7为根据本公开一个实施例数据获取装置的结构示意图。
如图7所示,本公开的数据获取装置700可以包括接收模块710、目标数据获取模块720、补充数据获取模块730,页面构建模块740。
接收模块710,被配置为执行接收客户端发送的页面获取请求;
目标数据获取模块720,被配置为执行获取所述页面获取请求指示的目标数据;
补充数据获取模块730,被配置为执行以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
页面构建模块740,被配置为执行采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
在一个实施例中,所述补充数据获取模块730,具体被配置为执行:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;
当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
在一个实施例中,所述装置还包括:
添加模块750,被配置为执行所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型之前,将每个目标数据添加到所述已获取数据集合中;
所述补充数据获取模块730在执行所述将所述补充数据与已获取数据集合进行比对时,被配置为:
由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;
所述补充数据获取模块730在执行所述当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程时,被配置为:
若所述差集为空,则结束所述循环过程。
在一个实施例中,所述装置还包括:
合并模块760,被配置为执行所述比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集之后,将所述中间数据集合合并到所述已获取数据集合中。
在一个实施例中,所述装置还包括:
滤除模块770,被配置为执行所述将所述中间数据集合合并到所述已获取数据集合中之前,将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
在一个实施例中,所述数据类型的父子关系中,还包括补充数据获取条件;所述装置还包括:
条件获取模块780,被配置为执行获取所述补充数据的获取条件以及与所述获取条件进行匹配的待匹配信息;所述获取条件包括以下中的至少一种条件:具有所述补充数据的访问权限,所述目标数据的数据类型满足预设的数据类型、所述目标数据为审核通过的数据;
确定模块790,被配置为执行若确定所述待匹配信息满足所述获取条件,则执行在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据的步骤。
在介绍了本申请示例性实施方式的一种数据方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个计算机存储介质。其中,计算机存储介质存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的数据获取方法中的步骤。例如,处理器可以执行如图2中所示的步骤201-204。
下面参照图8来描述根据本申请的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用电子设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理器801、上述至少一个计算机存储介质802、连接不同系统组件(包括计算机存储介质802和处理器801)的总线803。
总线803表示几类总线结构中的一种或多种,包括计算机存储介质总线或者计算机存储介质控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机存储介质802可以包括易失性计算机存储介质形式的可读介质,例如随机存取计算机存储介质(RAM)821和/或高速缓存存储介质822,还可以进一步包括只读计算机存储介质(ROM)823。
计算机存储介质802还可以包括具有一组(至少一个)程序模块824的程序/实用工具825,这样的程序模块824包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备800也可以与一个或多个外部设备804(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,电子设备800还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器806通过总线803与用于电子设备800的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种数据获取方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种数据获取方法中的步骤,例如,计算机设备可以执行如图2中所示的步骤201-204。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取计算机存储介质(RAM)、只读计算机存储介质(ROM)、可擦式可编程只读计算机存储介质(EPROM或闪存)、光纤、便携式紧凑盘只读计算机存储介质(CD-ROM)、光计算机存储介质件、磁计算机存储介质件、或者上述的任意合适的组合。
本申请的实施方式的用于数据获取的程序产品可以采用便携式紧凑盘只读计算机存储介质(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘计算机存储介质、CD-ROM、光学计算机存储介质等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读计算机存储介质中,使得存储在该计算机可读计算机存储介质中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据获取方法,其特征在于,所述方法包括:
接收客户端发送的页面获取请求;
获取所述页面获取请求指示的目标数据;
以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据,包括:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;
当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型之前,将每个目标数据添加到所述已获取数据集合中;
所述将所述补充数据与已获取数据集合进行比对,包括:
由所述补充数据构成中间数据集合,并比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集;所述差集用于存储属于所述中间数据集合但不属于所述已获取数据集合的数据;
所述当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程,包括:
若所述差集为空,则结束所述循环过程。
4.根据权利要求3所述的方法,其特征在于,所述比对所述已获取数据集合和所述中间数据集合,获得所述已获取数据集合和所述中间数据集合的差集之后,还包括:
将所述中间数据集合合并到所述已获取数据集合中。
5.根据权利要求4所述的方法,其特征在于,所述将所述中间数据集合合并到所述已获取数据集合中之前,所述方法还包括:
将所述中间数据集合与所述已获取集合的交集从所述中间数据集合中滤除。
6.根据权利要求2所述的方法,其特征在于,所述数据类型的父子关系中,还包括补充数据获取条件;所述在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据之前,还包括:
获取所述补充数据的获取条件以及与所述获取条件进行匹配的待匹配信息;所述获取条件包括以下中的至少一种条件:具有所述补充数据的访问权限,所述目标数据的数据类型满足预设的数据类型、所述目标数据为审核通过的数据;
若确定所述待匹配信息满足所述获取条件,则执行在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据的步骤。
7.一种数据获取装置,其特征在于,所述装置包括:
接收模块,被配置为执行接收客户端发送的页面获取请求;
目标数据获取模块,被配置为执行获取所述页面获取请求指示的目标数据;
补充数据获取模块,被配置为执行以所述目标数据的数据类型为父数据类型,在预先构建的数据类型的父子关系中,查找所述目标数据的子数据类型,并获取所述子数据类型对应的数据作为所述目标数据的补充数据;
页面构建模块,被配置为执行采用所述目标数据以及所述补充数据进行页面构建,并将所述页面发送给所述客户端。
8.根据权利要求7所述的装置,其特征在于,所述补充数据获取模块,具体被配置为执行:
针对所述目标数据,执行以下循环过程:
在所述数据类型的父子关系中解析所述目标数据的数据类型包含的子数据类型;
若解析出包含的子数据类型,则从所述子数据类型的数据中,获取与所述目标数据具有关联关系的至少一个数据作为所述补充数据;
将所述补充数据与已获取数据集合进行比对,查找出未包含在所述已获取数据集合中的补充数据作为新的目标数据;所述已获取数据集合中包括执行本次循环之前获取的构建所述页面所需的数据;
当所述补充数据均包含在所述已获取数据集合中时,则结束所述循环过程。
9.一种电子设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求1-6中任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行根据权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722781.0A CN111880840A (zh) | 2020-07-24 | 2020-07-24 | 数据获取方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722781.0A CN111880840A (zh) | 2020-07-24 | 2020-07-24 | 数据获取方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111880840A true CN111880840A (zh) | 2020-11-03 |
Family
ID=73201294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010722781.0A Pending CN111880840A (zh) | 2020-07-24 | 2020-07-24 | 数据获取方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880840A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113901125A (zh) * | 2021-09-17 | 2022-01-07 | 盐城金堤科技有限公司 | 数据展示方法和装置、及存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021501A (zh) * | 2016-05-20 | 2016-10-12 | 天脉聚源(北京)传媒科技有限公司 | 一种数据存储方法及装置 |
CN107562467A (zh) * | 2017-07-26 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 页面渲染方法、装置及设备 |
CN109522073A (zh) * | 2018-11-06 | 2019-03-26 | 网宿科技股份有限公司 | 基于json的多层级页面存储方法、装置及电子设备 |
CN110263277A (zh) * | 2019-06-18 | 2019-09-20 | 广州虎牙科技有限公司 | 页面数据的显示方法、更新方法、装置、设备及存储介质 |
CN110889067A (zh) * | 2018-09-10 | 2020-03-17 | 广州虎牙信息科技有限公司 | 页面的渲染方法、装置、设备及存储介质 |
CN110990746A (zh) * | 2019-12-06 | 2020-04-10 | 北京同邦卓益科技有限公司 | 页面加载方法、装置、系统、存储介质、电子设备 |
CN111124379A (zh) * | 2019-11-25 | 2020-05-08 | 贝壳技术有限公司 | 页面生成方法、装置、电子设备及存储介质 |
-
2020
- 2020-07-24 CN CN202010722781.0A patent/CN111880840A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021501A (zh) * | 2016-05-20 | 2016-10-12 | 天脉聚源(北京)传媒科技有限公司 | 一种数据存储方法及装置 |
CN107562467A (zh) * | 2017-07-26 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 页面渲染方法、装置及设备 |
CN110889067A (zh) * | 2018-09-10 | 2020-03-17 | 广州虎牙信息科技有限公司 | 页面的渲染方法、装置、设备及存储介质 |
CN109522073A (zh) * | 2018-11-06 | 2019-03-26 | 网宿科技股份有限公司 | 基于json的多层级页面存储方法、装置及电子设备 |
CN110263277A (zh) * | 2019-06-18 | 2019-09-20 | 广州虎牙科技有限公司 | 页面数据的显示方法、更新方法、装置、设备及存储介质 |
CN111124379A (zh) * | 2019-11-25 | 2020-05-08 | 贝壳技术有限公司 | 页面生成方法、装置、电子设备及存储介质 |
CN110990746A (zh) * | 2019-12-06 | 2020-04-10 | 北京同邦卓益科技有限公司 | 页面加载方法、装置、系统、存储介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
王开铸等: "《C语言数据结构程序设计》", vol. 1, 31 March 2003, 哈尔滨:哈尔滨工业大学出版社, pages: 306 - 310 * |
程光等: "《僵尸网络检测技术》", vol. 1, 南京:东南大学出版社, pages: 54 - 57 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113901125A (zh) * | 2021-09-17 | 2022-01-07 | 盐城金堤科技有限公司 | 数据展示方法和装置、及存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9898280B2 (en) | Automatic code review and code reviewer recommendation | |
US11487721B2 (en) | Matching metastructure for data modeling | |
EP3502896B1 (en) | Generation of an adapters configuration user interface using a data structure | |
US9576037B2 (en) | Self-analyzing data processing job to determine data quality issues | |
US9690822B2 (en) | System and method for metadata level validation of custom setup objects | |
US10621211B2 (en) | Language tag management on international data storage | |
EP3438813B1 (en) | Component management platform | |
US11481200B1 (en) | Checking source code validity at time of code update | |
US20100318556A1 (en) | Exporting and Importing Business Objects Based on Metadata | |
US10083016B1 (en) | Procedurally specifying calculated database fields, and populating them | |
CN102955697B (zh) | 基于面向方面的构件库构建方法 | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
US20200349129A1 (en) | Schema alignment and structural data mapping of database objects | |
US20160132368A1 (en) | Event processing development environment | |
US10572371B2 (en) | Generating valid use cases from a parsed configuration file describing use case options | |
US9442718B1 (en) | System for assisting in locating changes in source code version control system | |
US8676627B2 (en) | Vertical process merging by reconstruction of equivalent models and hierarchical process merging | |
EP4290393A1 (en) | Consolidation spaces providing access to multiple instances of application content | |
US11422984B2 (en) | Clustering within database data models | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
US20200097260A1 (en) | Software application developer tools platform | |
CN111880840A (zh) | 数据获取方法、装置、电子设备及存储介质 | |
US12216636B2 (en) | Techniques for integrating data for multiple instances of a data artifact | |
CN116414855A (zh) | 信息处理方法及装置、电子设备和计算机可读存储介质 | |
US11693817B2 (en) | Integrated universal file converter |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201103 |
|
RJ01 | Rejection of invention patent application after publication |