CN117009632A - 数据拉取方法、装置、计算机设备、存储介质及程序产品 - Google Patents
数据拉取方法、装置、计算机设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN117009632A CN117009632A CN202210983080.1A CN202210983080A CN117009632A CN 117009632 A CN117009632 A CN 117009632A CN 202210983080 A CN202210983080 A CN 202210983080A CN 117009632 A CN117009632 A CN 117009632A
- Authority
- CN
- China
- Prior art keywords
- parallel
- object set
- data
- pulling
- business
- 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 69
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 7
- 210000001503 joint Anatomy 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000011144 upstream manufacturing Methods 0.000 description 67
- 239000000284 extract Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000003032 molecular docking Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 150000002009 diols Chemical class 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种数据拉取方法、装置、计算机设备、存储介质及程序产品,涉及大数据、云技术、智慧交通等技术领域。通过基于数据拉取请求从服务器中获取目标链路所对应的对象集合节点树,从而得到该目标链路的各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用该对象集合节点树,重复执行对各并行对象集合的并行拉取,利用该对象集合节点树获取当前批次对应的至少两个并行对象集合的标识,使得后续可基于该至少两个并行对象集合的标识,从该服务器中拉取该至少两个并行对象集合的业务协作信息;减少了数据拉取所消耗的时间,提高了数据拉取效率。
Description
技术领域
本申请涉及大数据、云技术、智慧交通等技术领域,本申请涉及一种数据拉取方法、装置、计算机设备、存储介质及程序产品。
背景技术
随着互联网的持续发展,越来越多应用平台可支持数据的拉取,为大数据下的数据查询带来了便利。例如,可支持对某业务的各企业通讯录的数据拉取,以便于参与该业务的人员之间进行协作。
相关技术中,对于通讯录数据拉取过程,通常是串行逐个拉取每个企业所包括的成员或部门的通讯录,然而,随着数据规模的不断扩大,给数据拉取带来巨大的压力,使得数据拉取耗时较长,从而导致数据拉取的处理效率较低。
发明内容
本申请提供了一种数据拉取方法、装置、计算机设备、存储介质及程序产品,可以解决相关技术中数据拉取的处理效率较低的问题。所述技术方案如下:
一方面,提供了一种数据拉取方法,所述方法包括:
向服务器发送数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
接收所述服务器发送的目标链路所对应的对象集合节点树;
基于所述对象集合节点树,重复执行以下并行拉取步骤,直至拉取到所述目标链路中每个对象集合的业务协作信息:
从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识;
向所述服务器发送当前批次对应的至少两个并行对象集合的标识,并接收所述服务器发送的所述至少两个并行对象集合的业务协作信息。
另一方面,提供了一种数据拉取方法,所述方法包括:
接收终端发送的数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
基于目标链路的链路标识,向所述终端返回所述目标链路所对应的对象集合节点树;
接收所述终端发送的当前批次对应的并行对象集合的标识;
基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,并向所述终端返回所拉取的各并行对象集合的业务协作信息。
另一方面,提供了一种数据拉取装置,所述装置包括:
拉取请求发送模块,用于向服务器发送数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
接收模块,用于接收所述服务器发送的目标链路所对应的对象集合节点树;
基于所述对象集合节点树,重复执行以下并行拉取步骤,直至拉取到所述目标链路中每个对象集合的业务协作信息:
获取模块,用于从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识;
拉取模块,用于向所述服务器发送当前批次对应的至少两个并行对象集合的标识,并接收所述服务器发送的所述至少两个并行对象集合的业务协作信息。
另一方面,提供了一种数据拉取装置,所述装置包括:
接收模块,用于接收终端发送的数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括参与目标业务的至少两个对象集合;
发送模块,用于基于目标链路的链路标识,向所述终端返回所述目标链路所对应的对象集合节点树;
所述接收模块,还用于接收所述终端发送的当前批次对应的并行对象集合的标识;
并行拉取模块,用于基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息;
所述发送模块,还用于向所述终端返回所拉取的各并行对象集合的业务协作信息。
另一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述的数据拉取方法。
另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据拉取方法。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述的数据拉取方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的数据拉取方法,通过基于数据拉取请求从服务器中获取目标链路所对应的对象集合节点树,从而得到该目标链路的各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用该对象集合节点树,重复执行对各并行对象集合的并行拉取,利用该对象集合节点树获取当前批次对应的至少两个并行对象集合的标识,使得后续可基于该至少两个并行对象集合的标识,从该服务器中拉取该至少两个并行对象集合的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种实现数据拉取方法的实施环境示意图;
图2为本申请实施例提供的一种数据拉取方法的流程示意图;
图3为本申请实施例提供的一种上下游对应的节点树的结构示意图;
图4为本申请实施例提供的一种基于流水节点列表进行数据拉取的流程示意图;
图5为本申请实施例提供的一种数据拉取方法的信令交互示意图;
图6为本申请实施例提供的一种部门移除的过程意图;
图7为本申请实施例提供的一种数据拉取装置的结构示意图;
图8为本申请实施例提供的一种数据拉取装置的结构示意图;
图9为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作等。
可以理解的是,在本申请的具体实施方式中,涉及到目标链路所包括的对象集合、各对象集合所包括的对象、信息录、通讯录等任何与对象相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图1为本申请提供的一种数据拉取方法的实施环境示意图。如图1所示,该实施环境包括:服务器11和终端12,该服务器11可以为应用程序的后台服务器。该终端12安装有目标应用,该终端12和该服务器11可以基于该应用程序进行数据交互。
一可能场景示例中,该目标应用具备上下游的功能,上下游是企业聚集某些合作伙伴的业务空间,其核心是上下游地址簿和共享应用程序。该上下游功能支持加入上下游的用户之间进行协作,例如,若用户加入某一上下游,该用户可在目标应用的客户端点击该上下游,以查看该上下游中各企业或企业内成员之间共享的通讯录、共享的应用程序等。而加入到上下游的用户之间可通过共享的通讯录、应用程序等进行业务协作。本申请中,若用户在目标应用的页面中触发对上下游的通讯录的查看操作,则终端12可向服务器11发送数据拉取请求,该服务器11可基于该数据拉取请求,向终端12返回该上下游的通讯录,以使终端12在目标应用的页面中对该上下游中各企业或企业中成员进行展示。
例如,一个上下游可包括作为上游企业的品牌商以及作为下游企业的经销商;又例如,厂商、品牌商可作为上游企业,其与作为下游企业的供应商之间也可以构成一个上下游。又例如,对于线上/线下平台和商户之间也可组成一个具备业务协作关系的上下游。
需要说明的是,服务器11可以是独立的物理服务器,或是多个物理服务器构成的服务器集群或者分布式系统,或是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。终端12可以是智能手机、平板电脑、笔记本电脑、数字广播接收器、台式计算机、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,也可基于实际应用场景需求确定,在此不作限定。
图2为本申请实施例提供的一种数据拉取方法的流程示意图。该方法的执行主体可以为终端。如图2所示,该方法包括以下步骤。
步骤201、终端向服务器发送数据拉取请求。
该数据拉取请求用于拉取目标链路的业务协作信息,该目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系。示例性的,该业务协作信息是指参与目标业务的各对象集合之间进行业务协作所需的信息。一示例中,该业务协作信息可包括目标链路的信息录。例如,该信息录可以是目标链路中各对象集合的通讯录;各对象集合或各对象之间可基于通讯录来围绕目标业务展开沟通、协作等,以实现业务合作。又一示例中,该业务协作信息还可包括但不限于:目标链路的应用程序、网址链接、多媒体资源等,例如,各企业之间可利用目标链路中共享的业务应用程序、业务协作网址、业务图文资源等,进行业务沟通、协调或合作等环节。
示例性的,目标链路可以是针对目标业务具备协作关系的各对象集合组成的业务链路。一个对象集合可以是具备目标关系的多个对象组成的企业或组织。例如,一个对象集合可以是一个企业、或一个公司或团体、又或是预配置的组织等。例如,目标链路中各对象集合之间的业务协作关系可以采用节点树表示;也即是,目标链路中具备协作关系的各对象集合或各对象集合组成的分组之间,可构成对象集合节点树。
如图3所示,一个目标链路可以是一个上下游空间,上下游是企业聚集某些合作伙伴的业务空间,一个上下游空间中参与某业务的各企业或各上下游分组可构成企业节点树;上下游分组是指由各企业构成的分组。如图3所示,以上下游为根节点的对象集合节点树可包括上游企业、上下游分组1等。其中,该上下游分组1还包括企业A、企业B等。对于每个企业,该企业内的各部门或成员可构成该企业所对应的成员节点树。以企业A为例,其成员节点树以企业A为根节点,包括部门1、成员1,而部门1又可包括成员2、成员3等。
示例性的,该数据拉取请求可携带当前对象所加入的目标链路的链路标识。如用户所加入的上下游标识可表示为chainid。
在一种可能实现方式中,该数据拉取请求携带该目标链路的链路标识、当前对象集合的标识以及该终端上一次所拉取数据的版本号。其中,该当前对象集合是终端的目标应用中当前该登录的对象所属的对象集合。示例性的,该步骤201可包括:响应于检测到在目标应用页面中触发的数据查看操作,该数据查看操作用于查看目标链路的业务协作信息;该终端向服务器发送数据拉取请求。一可能示例中,若终端不是首次向服务器发送数据拉取请求,则该数据拉取请求可以携带上一次所拉取数据的版本号。例如,目标应用可包括通讯录页面,若终端检测到用户在该通讯录页面中触发上下游通讯录标签,则终端可根据该用户所在的上下游向服务器发送数据拉取请求;该数据拉取请求可携带该上下游的chainid、企业ID以及终端本地已有的通讯录的版本号。一可能示例中,若该终端首次向服务器发送数据拉取请求,则该数据拉取请求可包括该目标链路的链路标识以及该当前对象集合的标识。
示例性的,该终端还可基于更新事件的触发来拉取数据,相应的,步骤201可包括:响应于检测到目标应用符合更新触发条件时,终端向服务器发送数据拉取请求。该数据拉取请求可用于请求目标链路中更新对象集合的业务协作信息。示例性的,该更新触发条件可包括但不限于:检测到目标应用中的更新操作、当前时间达到更新时间、接收到服务器发送的更新指令等。该数据拉取请求可携带以下至少一项:该目标链路的链路标识、待更新对象集合的标识、该终端上一次所拉取的该待更新对象集合的版本号。例如,检测到对上下游中企业A进行更新的操作,或者接收到服务器发送的对企业B进行更新的指令,又或者当前时间达到下一更新周期等情况下,基于chainid、待更新的企业ID或者待更新企业的通讯录版本号等信息,向服务器发送数据拉取请求。
步骤202、终端接收服务器发送的目标链路所对应的对象集合节点树。
该对象集合节点树表征目标链路中各对象集合参与目标业务的业务协作关系。示例性的,终端可接收服务器发送的对象集合节点树,并从该对象集合节点树中提取各个对象集合的标识。
在一种可能实现方式中,服务器分为多次、每次批量发送部分对象集合对应的节点树,终端可在接收各批次对应的节点树的同时,通过步骤203-204,同步执行从服务器中拉取各批次对象集合的业务协作信息。则步骤202可包括以下步骤S1:
步骤S1、终端接收该服务器发送的至少一个批次的节点树的元数据,每个批次对应的节点树表征该目标链路中部分对象集合之间的业务协作关系。
示例性的,每当该终端接收到任一批次的节点树,该终端可从该批次的节点树中提取各对象集合的标识;该终端可将所提取的对象集合的标识添加到流水节点列表中。需要说明的是,后续终端可从流水节点列表中获取各批次的并行对象集合的标识。
在另一种可能实现方式中,终端可在服务器返回所有批次的对象集合节点树,并优先展示各对象集合的节点信息,之后再分批次拉取各个对象集合内对象之间的业务协作信息。示例性的,步骤202可包括以下步骤S2-S3:
步骤S2、终端接收该服务器发送的至少一个批次的节点树的元数据。
步骤S3、终端在目标应用页面中显示该目标链路中各个对象集合的元数据。
该元数据包括对象集合的名称、所属的父节点或者属性信息中的至少一项;每个批次对应的节点树表征该目标链路中部分对象集合之间的业务协作关系。该父节点可以是该对象集合在节点树中对应节点所属的父节点;该属性信息用于表示该对象集合在至少一个维度的属性,该属性信息可以基于需要进行配置,例如,企业对应的业务类型、企业的图标等。示例性的,该终端可先获取目标链路中所有对象集合的元数据,并优先在目标应用页面中展示目标链路中各对象集合的元数据。
需要说明的是,对于包括大规模对象集合的目标链路,例如包括10万个企业规模的一个上下游,尤其在目标应用的客户端首次同步该上下游的通讯录时,需要花费较长时间(预估30分钟到50分钟)。而在同步个过程中用户无法正常查看上下游通讯录,只能持续等待30到50分钟,页面显示效果较差,导致用户体验欠佳。同时,对于某个企业或企业中成员首次加入上下游的情况,客户端可引导用户查看并使用上下游通讯录,而首次加入时,终端首次从服务器中拉取数据也需耗时较长,严重影响上下游功能体验的顺畅性。
而通过以上步骤S2-S3,优先获取并展示目标链路中所有对象集合的元数据,将目标链路的展示与业务协作信息的同步之间的强依赖解耦。例如,在优先展示企业节点信息时,将业务协作信息的同步分解为对象集合节点树同步和对象集合内的对象成员节点树的同步,能够优先呈现出全量对象集合列表和目录结构,提高页面展示效率,优化上下游功能体验的顺畅性。例如,对于10万规模的企业参与的上下游,即对应1个企业节点树和10万个企业内成员节点树。通过优先完成全部企业节点数的拉取,之后再分批拉取各个企业的内部数据,可对参与上下游的企业、分组等进行展示,这样可以优先呈现出全量企业列表和目录结构,耗时一般在1秒至120秒范围内。能够避免需等待10万个企业内成员节点树拉取完、才能完成1个上下游的企业节点树的拉取的问题,无需耗时30到50分钟,提高了页面展示效率。
基于该对象集合节点树,重复执行以下并行拉取步骤(包括步骤203-204),直至拉取到该对象集合节点树中每个对象集合的信息录:
步骤203、终端从该对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识。
示例性的,若该终端已将对象集合的标识添加至流水节点列表中;则本步骤中,该终端可按照各个批次对应的目标并行数量,从流水节点列表中提取各个批次对应的至少两个并行对象集合的标识。例如,当前批次对应的目标并行数量为200个,终端可从流水节点列表中提取200个企业的标识。
在一种可能实现方式中,在步骤S3之后,用户还可触发对所展示的任一对象集合的查看操作,相应的,该终端可执行以下步骤S41:
步骤S41、响应于检测到对该任一对象集合触发的查看操作,终端将待查看的任一对象集合的拉取优先级置于其它对象集合之前。
例如,该终端可将该待查看的任一对象集合的拉取优先级设为最高优先级。相应的,步骤203的执行方式可包括以下步骤2031:
步骤2031、终端基于该各对象集合的拉取优先级,从该各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识。
其中,该当前批次的至少两个对象集合的标识包括待查看的任一对象集合的标识。示例性的,该终端可基于预配置的优先级条件,从各对象集合的标识中筛选出拉取优先级符合该优先级条件的并行对象集合的标识。该优先级条件包括但不限于:拉取优先级高于目标级别阈值、按照拉取优先级降序排列的队列中排序位于前目标并行数量等。
在一种可能实现方式中,在步骤S3之后,用户还可触发对所展示的任一对象集合的查看操作,相应的,该终端可执行以下步骤S42:
步骤S42、终端将当前对象集合的拉取优先级置于其它对象集合之前。
其中,该当前对象集合是指终端的目标应用中当前所登录的对象所属的对象集合;例如,当前对象集合可以是用户当前在目标应用中登录的账号所在的企业。相应的,步骤203的执行方式可包括以下步骤2032:
步骤2032、终端基于该各对象集合的拉取优先级,从该各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识。
其中,该当前批次的至少两个对象集合的标识包括该当前对象集合的标识。例如,该终端将该当前对象集合的拉取优先级设为最高优先级。需要说明的是,在步骤2032中也可结合优先级条件进行筛选,该步骤2032的实现方式,与步骤2031中基于拉取优先级筛选并行对象集合的标识的方式同理,此处不再一一赘述。
需要说明的是,相关技术中,终端根据服务器分批返回的企业id顺序决定拉取企业数据的先后顺序。本申请通过配置各对象集合的拉取优先级,实现优先拉取本企业或者拉取用户触发的待查看企业的企业内成员树,可较快查看到上下游中所需企业通讯录的数据。基于此,当用户点击卡片查看某个企业,或者用户进入上下游点击某个企业节点的查看数据时,即使当前没有同步到数据,也可在下一批次利用所配置的高优先级,优先完成同步与展示,提升用户查看上下游通讯录的体验。
步骤204、终端向服务器发送当前批次对应的至少两个并行对象集合的标识,并接收该服务器发送的该至少两个并行对象集合的业务协作信息。
该终端可基于各并行对象集合对应的成员节点树,来获取各并行对象集合的业务协作信息。每个并行对象集合对应的成员节点树表征该并行对象集合内各成员之间参与目标业务的业务协作关系。示例性的,对于一个并行对象集合,该终端可分批次从服务器中拉取该并行对象集合中各节点的业务协作信息。例如,对于每个并行对象集合,终端可基于该并行对象集合的标识获取该并行对象集合的成员节点树。该终端提取该成员节点树所包括的业务节点的节点标识。例如,该业务节点的节点标识可包括成员节点或分组节点的节点标识。然后,该终端分批次、向服务器发送至少一个批次的节点标识。该终端接收该服务器返回的各批次的节点标识对应的业务协作信息。
其中,该成员节点树可包括该并行对象集合中参与目标业务的至少一个成员或分组。也即是,成员节点树可包括以成员为节点的成员节点,还可包括以分组为节点的分组节点,一个分组节点下又包括至少一个成员。该并行对象集合对应的业务协作信息可包括成员节点以及分组节点各自对应的业务协作信息,例如,并行对象集合树内各成员的通讯数据、各分组对应通讯数据以及分组内成员的通讯数据。
一可能示例中,该终端可基于该并行对象集合的标识获取对应的成员节点树,并从该成员节点树中提取各节点标识;该终端向服务器发送所提取的各节点标识、以及版本号,并接收该服务器返回的更新成员的业务协作信息;例如,该更新成员可以是该并行对象集合中业务协作信息发生改变的成员;例如,对于任一成员,该终端向服务器发送成员标识和版本号,服务器将该终端发送的版本号与该成员对应最新版本号进行比对,若两个版本号不同,则说明该成员为更新成员,该服务器向终端返回该成员的最新版本号的业务协作信息。例如,终端基于成员id,从服务器中拉取版本号发生变化的成员的通讯数据。
又一可能示例中,该终端可向服务器发送并行对象集合的标识以及目标链路的标识;该服务器可基于该并行对象集合的标识与目标链路的标识,获取该成员节点树所包括的全量节点对应的业务协作信息。该服务器向终端发送该全量节点对应的业务协作信息。该终端接收该服务器发送的全量节点对应的业务协作信息。示例性的,该全量节点可以是该成员节点树中所有节点,包括该并行对象集合对应的成员节点树中各成员节点以及分组节点。
需要说明的是,该终端可获取各批次对应的并行对象集合的标识,并分批次拉取各批次对应的并行对象集合的标识。对于每个批次所包括的目标并行数量的并行对象集合的标识,并行拉取该目标并行数量个并行对象集合的业务协作信息。而在对每个批次进行拉取时,可将当前待拉取的批次作为当前批次,以基于该当前批次的并行对象集合的标识,重复执行上述步骤203-204,从而得到目标链路中每个批次下的并行对象集合的业务协作信息。
例如,该终端将所提取的各节点标识添加至流水节点列表中;该终端从该流水节点列表中分批次、批量提取节点标识,基于当前批次的节点标识以及版本号,从服务器中拉取该当前批次的节点对应的业务协作信息。需要说明的是,无论对于对象节点树还是成员节点树,均可采用记录流水节点列表的方式进行数据拉取。如图4所示,对于企业节点树或是成员节点树,具备类似的基本的同步流程,即是基于通讯录树形结构记录的流水节点列表;基于流水节点列表进行数据拉取;例如,该流水节点列表可包括hashnode1、hashnode2、……hashnode6等流水节点,各流水节点的信息可包括流水节点ID、时间戳、del_flag(可表示节点类型、是否是未创建企业等信息)等信息。其中,可通过增量更新方式拉取更新节点,如拉取更新的成员节点、企业节点等树形结构中的末端节点;又如,也可拉取部门节点或企业分组节点等树形结构中的分组节点,其中,部门/分组节点可包括party1、party2、party6等节点;成员/企业节点可包括member3、member4、member5等节点;其中,每个部门/分组节点、或者成员/企业节点等任一节点的数据可包括节点ID以及该节点的父节点ID(parentID)。
一可能示例中,服务器可提供有目标接口,该目标接口用于基于终端传入的各并行对象集合的标识返回各并行对象集合的业务协议信息。示例性的,该目标接口的执行逻辑可包括:基于终端传入的各并行对象集合的标识拉取各并行对象集合对应成员节点树中各节点的节点标识,基于各并行对象集合所对应的成员节点树中各节点标识拉取更新节点对应的业务协作信息。例如,该目标接口可以包括两个CGI(Common Gateway Interface,通用网关接口),其中,以对象集合为企业为例,该两个CGI接口可以包括:
CGI接口1、ww_GetChainArchChange;用于拉取某个企业参与上下游通讯录的成员id与部门id对应的id列表,例如,可拉取一个企业内成员节点树中部门节点id、成员节点id等;
CGI接口2、ww_GetChainArchNodeData;用于拉取CGI接口1中返回的列表id中版本号发生变化的节点的数据。
在相关技术中,终端同步到一批企业节点后,是采用串行方式逐个拉取每个企业的内部节点数据。针对所包括企业数量不多的上下游无显著影响。然而,对于包括10万、20万企业等大规模或超大规模上下游而言,数据拉取过程耗时会显著增加。若是针对每个企业的同步,调用至少两次CGI接口来来拉取数据,尤其对于首次登录一个全新客户端的情况,同步10万个企业的通讯录至少需要调用20万次CGI接口,按照调用一次接口耗时120ms计算,需要大约6个小时才可以完成数据拉取过程。
该终端可单次同时向CGI接口2传入200个下游corpid(企业id),服务器开启20倍协程的并发任务对应拉取这200个企业id的通讯录数据,预计整体同步耗时可优化为相关技术的1/15至1/20。该两个CGI接口支持并发任务,基于此,有效优化了相关技术中串行挨个拉取每个企业的通讯录导致的耗时长的问题,提高数据拉取效率。
本申请实施例提供的数据拉取方法,通过基于数据拉取请求从服务器中获取目标链路所对应的对象集合节点树,从而得到该目标链路的各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用该对象集合节点树,重复执行对各并行对象集合的并行拉取,利用该对象集合节点树获取当前批次对应的至少两个并行对象集合的标识,使得后续可基于该至少两个并行对象集合的标识,从该服务器中拉取该至少两个并行对象集合的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
图5为本申请实施例提供的一种数据拉取方法的信令交互示意图。该方法可由服务器和终端之间交互执行。如图5所示,该方法包括以下步骤。
步骤501、终端向服务器发送数据拉取请求。
步骤502、服务器接收终端发送的数据拉取请求。
该数据拉取请求用于拉取目标链路的业务协作信息,该目标链路包括参与目标业务的至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系。
一可能实现方式中,该服务器从该数据拉取请求中提取目标链路的链路标识、当前对象集合的标识以及该终端上一次所拉取数据的版本号。其中,该当前对象集合是终端的目标应用中当前该登录的对象所属的对象集合。
一可能实现方式中,若该终端为首次登录该目标应用的客户端,则该服务器从该数据拉取请求中提取该目标链路的链路标识、当前对象集合的标识。
步骤503、服务器基于目标链路的链路标识,向该终端返回该目标链路所对应的对象集合节点树。
服务器可基于该目标链路的链路标识,向终端返回至少一个批次的节点树的元数据;该元数据包括对象集合的名称、所属的父节点或者属性信息中的至少一项。
步骤504、终端接收服务器发送的目标链路所对应的对象集合节点树。
基于该对象集合节点树,重复执行以下并行拉取步骤(包括步骤505-506),直至拉取到该对象集合节点树中每个对象集合的信息录:
步骤505、终端从该对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识。
步骤506、终端向服务器发送当前批次对应的至少两个并行对象集合的标识。
步骤507、服务器接收终端发送的当前批次对应的并行对象集合的标识。
需要说明的是,终端通过重复执行步骤505-506,以向服务器发送各个批次对应的并行对象集合的标识,相应的,服务器接收终端发送的各个批次对应的并行对象集合的标识。对于当前待处理的每个当前批次,服务器可执行以下并行拉取步骤,也即是步骤508-509:
步骤508、服务器基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息。
本步骤中,该服务器可先将数据读入缓存中,再从缓存中遍历并返回终端所拉取的数据。示例性的,本步骤可包括:该服务器基于当前批次对应的至少两个并行对象集合的标识,并行执行将该至少两个并行对象集合的初始数据从该业务信息数据库读入缓存中,并遍历缓存以得到该至少两个并行对象集合的业务协作信息。该业务信息数据库中包括各对象集合的业务协作信息;例如,该业务信息数据库可包括各对象集合的最新版本的业务协作信息。一可能实现方式中,该步骤508可通过以下步骤5081-5082实现。
步骤5081、服务器基于该至少两个并行对象集合的标识,并行执行将该业务信息数据库中各并行对象集合的初始业务协作信息读取至缓存。
该当前批次可包括目标并行数量个并行对象集合的标识。该服务器可启动目标倍数个并发任务,并行执行对每个并行对象集合的业务协作信息的读取至缓存的步骤,以高效、快速的一次性读入多个对象集合的业务协作信息。示例性的,该业务信息数据库中包括各个对象集合的全量业务信息,该全量业务信息可包括该并行对象集合参与的至少一个业务的业务信息。该服务器可从业务信息数据库中读取各并行对象集合的全量业务信息,并从各并行对象集合的全量业务信息中筛选出初始业务协作信息,将各并行对象集合的初始业务协作信息读取至缓存中。
一可能实现方式中,该服务器可对读入缓存的过程或缓存容量等进行调整,以进一步节省数据拉取时间。例如,调整缓存的粒度,增大缓存的容量,有选择的将所读取数据中的部分定向数据存入缓存等。示例性的,该步骤5081可通过以下步骤S51-S54实现。
步骤S51、服务器将该缓存的容量增大至预配置容量值。
示例性的,该预配置容量值大于该缓存的当前容量的数值。该预配置容量值可以是指一个容量大小的数值、也可以是一个表示当前容量的成倍数增大的倍数数值,如,预配置容量值可以是:将缓存容量调整为当前容量的1.5倍、2倍、5倍等。
通过将缓存的容量调大,让所读入缓存中的数据在缓存中尽量驻留更长的时间,避免读入缓存中的数据因为容量过小而很快就要从缓存中淘汰的情况,由于若数据很快从缓存中淘汰,很多情况下导致从业务信息数据库中读数据至缓存的频率增大,反而拖慢了数据拉取的速度,因此,通过增加缓存容量,可有效避免频繁读入数据至缓存的情况,继而提高数据拉取效率。
服务器并行执行对各并行对象集合的以下数据读取步骤,也即是,在多个并行对象集合中,采用并行方式,同时执行对多个并行对象集合的数据读取步骤。例如,服务器同时启动20倍协程并行拉取200个企业id的通讯录数据。在一种可能实现方式中,数据读取步骤包括以下步骤S52-S54:
步骤S52、服务器从该业务信息数据库中读取各并行对象集合分别对应的全量成员节点树,得到每个并行对象集合对应的第一全量节点。
其中,该第一全量节点包括属于至少一个业务链路的节点,该至少一个业务链路包括目标链路。
该业务信息数据库中采用节点树形式存储全量业务信息,示例性的,该业务信息数据库可包括各对象集合的全量成员节点树,该全量成员节点树表征对象集合中各成员在参与至少一个业务的业务协作关系。例如,该全量成员节点树可包括该对象集合中参与至少一个业务的第一全量节点。则服务器基于该并行对象集合的标识,确定业务信息数据库中该并行对象集合对应的全量成员节点树,并读取该全量成员节点树所包括的第一全量节点。
步骤S53、服务器从该每个并行对象集合对应的第一全量节点中,筛选出该每个并行对象集合对应属于该目标链路的初始节点。
示例性的,该业务信息数据库中可包括各对象集合对应的配置信息,该配置信息包括对应全量成员节点树中每个节点所属的业务链路。则本步骤中,该服务器可基于该目标链路标识以及业务信息数据库中的配置信息,从该第一全量节点中筛选出属于该目标链路的初始节点。
例如,数据库中某一企业的全量成员节点树中节点包括:部门a、部门b和部门c;其中参与业务A的有部门a和部门c,参与业务B有部门b。当前目标业务为业务A,则服务器筛选得到所需的初始节点包括:部门a和部门c。
步骤S54、服务器将该每个并行对象集合对应的初始节点的初始业务协作信息存储至缓存,并记录各并行对象集合的标识、目标链路标识与初始业务协作信息之间的关联关系。
示例性的,该服务器以“链路标识+对象集合的标识”为缓存粒度,对应记录缓存中的各项数据。例如,该服务器可在缓存中记录“chainid+企业id”所对应的初始通讯录数据,如分别记录:企业A中属于业务A的各部门或分组的通讯录数据,企业A中属于业务B的各部门或分组的通讯录数据等。
需要说明的是,对于一个上下游包括10万、20万等大规模企业的场景,由于参与的各企业的规模也参差不齐,在并行执行对200个企业的数据读入缓存过程时,200个企业的整体请求耗时由耗时最慢的企业决定。本申请中,可采用着重优化大规模企业加入上下游的性能的思路,以避免木桶效应导致的长耗时。
例如,企业参与上下游的成员只是企业内的部分成员,按产品功能设定一般不超过1000个成员或节点,由管理员或者上下游空间负责人进行配置。当拉取某个企业的通讯录数据时,首先读取企业的全部通讯录节点,并逐个遍历节点,根据企业的配置信息,遍历每个节点是否参与上下游A,得到初始节点;然后根据企业配置的对接规则对参与了上下游A的节点的通讯录数据进行判断,以决定是否返回给拉取数据的用户。
相关技术中,若一个包括50万成员的企业仅配置了1个成员加入上下游A,需遍历全部50万节点后才能返回最终命中的成员,性能较低。采用步骤S51-S54:通过将缓存粒度从corpid维度调整为“corpid+chainid维度”;并适当增大缓存容量大小,使得缓存中数据常驻;并在初次缓存时结合企业配置信息定向缓存参与目标链路的初始节点,从而使得后续遍历缓存时,仅遍历初始节点,无需对第一全量节点进行遍历,减少了所需遍历的数据量,进而提高了数据拉取效率。
需要说明的是,该服务器可采用并行方式,对目标并行数量个并行对象集合并行执行以上步骤S52-S54,通过并行将多个对象集合的初始业务协作信息读入缓存,避免串行逐个读入缓存耗费大量时间的问题,减少了读入缓存的时间,继而保证数据拉取的处理效率。
一可能示例中,服务器可提供有目标接口,例如,该目标接口可以包括CGI接口1和CGI接口2,其中,以对象集合为企业为例,该两个CGI接口的接口协议如下:
CGI接口1、ww_GetChainArchChange;用于拉取某个企业参与上下游通讯录的成员id与部门id对应的id列表,例如,可拉取一个企业内成员节点树中部门节点id、成员节点id等;
CGI接口1接口协议如下:
ww_BatchGetChainArchChange
//cmdid=4700
message BatchGetChainArchChangeReq
{
message ChainArchReq
{
optional bytes cli_version=1;
optional uint32 limit=2;
optional uint64 req_corpid=3;
optional bool real_data=4;
}
optional uint64 chainid=1;
repeated ChainArchReqreq_list=2;
}
message BatchGetChainArchChangeRsp
{
message ChainArchRsp
{
optional bool change=1;
optional bool is_full_update=2;//是否全量更新
optional bytes svr_version=3;
repeated wwcorplogic.ArchNodenode_list=4;
repeated wwcorplogic.ArchNodedelete_node_list=5;
optional uint32 delay_second=6;//客户端随机拉取架构的间隔
optional bool has_more=7;//还没更新完
optional uint64 corpid=8;
optional uint64 total_node_cnt=9;//总节点数据
optional int32 ret_code=10;
}
repeated ChainArchRsprsp_list=1;
}
CGI接口2、ww_GetChainArchNodeData;用于拉取CGI接口1中返回的列表id中版本号发生变化的节点的数据。
CGI接口2对应的接口协议如下:
ww_BatchGetChainArchNodeData
//cmdid=4701
message BatchGetChainArchNodeDataReq
{
message ChainDataReq
{
repeated wwcorplogic.ArchNodenode_list=1;
optional uint64 corpid=2;
}
optional uint64 chainid=1;
repeated ChainDataReqreq_list=2;
}
message BatchGetChainArchNodeDataRsp
{
message ChainDataRsp
{
repeated GroupPatchpatch_list=1;
optional bool is_simplified=2;
optional uint64 corpid=3;
optional int32 ret_code=4;
}
repeated ChainDataRsprsp_list=1;
}
需要说明的是,可在协议中定义目标链接标识chainid、企业标识corpid、并行数量limit等变量,以定义终端需拉取数据的信息,以实现并行拉取多个企业的通讯录数据,例如,终端可单次同时向CGI接口2传入200个下游corpid,服务器开启20倍协程的并发任务对应拉取这200个企业id的通讯录数据,预计整体同步耗时可优化为相关技术的1/15至1/20。该两个CGI接口支持并发任务,基于此,有效优化了相关技术中串行挨个拉取每个企业的通讯录导致的耗时长的问题,提高数据拉取效率。
步骤5082、服务器在该缓存中遍历各并行对象集合中符合预配置对接规则的业务协作信息。
该预配置对接规则是指各并行对象集合与当前对象集合或当前对象对接的规则。示例性的,该预配置对接规则可包括但不限于:各并行对象集合中与当前对象集合对接的成员、各并行对象集合中与当前对象集合在指定时段对应的成员等。示例性的,在本步骤中,对于每个并行对象集合,该服务器可基于预配置对接规则以及当前对象集合的标识,对缓存中该并行对象集合的初始节点进行遍历,得到符合该预配置对接规则的业务节点,并提取该业务节点对应的业务协作信息;基于此遍历得到各并行对象集合的业务协作信息。
例如,上游经销商企业A对接下游供应商企业B、下游供应商C的情况,A可配置对接规则为包括:企业A中成员1、成员2、成员3对接企业B,企业A中成员4、成员5、成员6对接企业C。当服务器接收到下游供应商企业B中某成员发送的数据拉取请求时,服务器可基于A的对接规则,遍历得到企业A中成员1、成员2、成员3的通讯录数据。
一可能实现方式中,还可进一步对缓存中的数据存储方式进行优化。示例性的,该服务器可采用key-value(键-值)的形式对应记录所存储数据的数据版本。例如,该服务器以目标链路的链路标识、对象集合的标识为key,以对应的业务协作信息的版本号为value,关联存储各对象集合在各业务链路对应的业务协作信息。例如,Key可以为上下游ID和企业ID,value是企业通讯录在上下游ID对应的通讯录数据的版本号。每次向终端发送所拉取的业务协作信息时,服务器可将当前最新版本号发送给终端,终端下一次发送数据拉取请求时,数据拉取请求中可携带上一次所拉取数据的版本号。服务器可根据自身当前的最新版本号以及数据拉取请求中可携带的版本号进行对比。
相关技术中,当终端已经同步全量上下游通讯录后,如果某个企业参与上下游B的范围发生变更,则需要重新同步此企业的全部通讯录(包括参与上下游A和上下游B的通讯录)。例如,企业1的内部通讯录版本号为version11,终端同步后会记录企业1的版本号version11。当服务器中企业1的通讯录发生改变时,服务器中会记录企业1的内部通讯录版本会变为version12。终端可通过数据拉取请求,使得服务器向终端同步更新到企业1的内部通讯录版本version12。然而,由于相关技术中采用一个企业id对应一个通讯录版本号,下游A通讯录中数据未发生变化,但也会和下游B通讯录数据一起同步更新到终端中,从而导致大量无意义的数据拉取请求。本申请中,以上下游id+企业id作为key键进行记录,以将用于数据同步的版本号与内部通讯录版本号剥离,当企业参与上下游通讯录后,上下游服务即会对该企业的通讯录变更事件进行检测,当发生变更的成员或部门节点属于key键中的上下游id时,才提升此独立的版本号;基于此,通讯录中未参与上下游的成员变更,将不会再触发上下游通讯录的数据同步,从而避免频繁无意义的数据拉取,继而提高数据拉取效率。
步骤509、服务器向该终端返回所拉取的各并行对象集合的业务协作信息。
步骤510、终端接收服务器发送的各并行对象集合的业务协作信息。
一可能实现方式中,服务器可基于终端发送的并行对象集合标识以及版本号,判断该终端中已存储的并行对象集合的历史协作信息是否需要更新,若需要更新,则服务器执行以上步骤S52-S54,并向终端发送该并行对象集合的业务协作信息;若不需要更新,该服务器可以不发送该并行对象集合的业务协作信息;例如,该服务器可向该终端发送通知消息,例如该通知消息用于通知该终端中已有最新版本的数据,无需更新。
一可能实现方式中,服务器在缓存或业务信息数据库中以节点树的形式,存储对象集合对应的业务协作信息。示例性的,每个对象集合对应的对象成员节点树表征对象集合内的至少一个对象之间参与目标业务的业务协作关系。若采用上述步骤S52-S54,有选择的定向缓存各并行对象的数据,则服务器可采用全量更新的方式向终端发送各并行对象集合的数据。示例性的,则服务器将遍历得到的各并行对象集合的业务协作信息发送至终端的步骤可包括以下步骤S6:
步骤S6、对于任一并行对象集合的对象成员节点树,若该对象成员节点树中任一节点被移除,服务器将该对象成员节点树中符合预配置对接规则的第二全量节点的业务协作信息发送至终端。
该第二全量节点是指对象成员节点树中所有节点,包括参与该目标业务的成员节点和分组节点。需要说明的是,若采用上述步骤S52-S54,有选择的定向缓存各并行对象的数据,若对象成员节点树中有节点被移除,如图6所示,某企业的跟部门中的部门A参与目标业务,然而,若部门A中的部门B被移除,也即是,部门A参与目标业务,由于部门B被移出部门A,部门B不再参与目标业务;此时终端也需同步移除终端本地所存储的部门A节点下的部门B。由于内部通讯录的变更导致原先部门B从参与目标业务的范围中消失,且服务器最新所缓存的数据中不存在部门B,因此可能存在服务器无法通知终端需要删除部门B的情况。为保证服务器准确通知终端需移除部门B,本申请可通过执行步骤S6,以全量更新的方式,使得终端能够得到最新的参与目标业务的业务协作信息,保证了数据拉取的准确性和可靠性。
示例性的,该服务器可分批次向终端发送各业务节点的业务协作信息。例如,对于每个并行对象集合,服务器可向终端发送该并行对象集合对应的成员节点树。终端接收该成员节点树,并提取该成员节点树所包括的业务节点的标识;例如,该业务节点可包括成员节点或分组节点的节点标识。该终端基于该业务节点的标识,分批向服务器发送至少一个批次的节点标识。该服务器接收该终端发送至少一个批次的节点标识;对于每个批次,该服务器基于该批次的节点标识,提取该批次的节点标识对应的业务协作信息,并向终端发送所提取的业务协作信息。该终端接收该服务器返回的各批次的节点标识对应的业务协作信息。
本申请实施例提供的数据拉取方法,通过在接收终端的数据拉取请求时,先向该终端返回该目标链路所对应的对象集合节点树,以使终端得到各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用当前批次对应的并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,以向终端返回所拉取的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
本申请提供的数据拉取方法,涉及以下的大数据、云技术等技术领域。
应理解的是,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
应理解的是,大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
图7为本申请实施例提供的一种数据拉取装置的结构示意图。如图7所示,该装置包括:拉取请求发送模块701、接收模块702、获取模块703以及拉取模块704。
拉取请求发送模块701,用于向服务器发送数据拉取请求,该数据拉取请求用于拉取目标链路的业务协作信息,该目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
接收模块702,用于接收该服务器发送的目标链路所对应的对象集合节点树;
基于该对象集合节点树,重复执行以下并行拉取步骤,直至拉取到该目标链路中每个对象集合的业务协作信息:
获取模块703,用于从该对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识;
拉取模块704,用于向该服务器发送当前批次对应的至少两个并行对象集合的标识,并接收该服务器发送的该至少两个并行对象集合的业务协作信息。
在一种可能实现方式中,该接收模块702,用于:
接收该服务器发送的至少一个批次的节点树的元数据,每个批次对应的节点树表征该目标链路中部分对象集合之间的业务协作关系;
在目标应用页面中显示该目标链路中各个对象集合的元数据,该元数据包括对象集合的名称、所属的父节点或者属性信息中的至少一项。
在一种可能实现方式中,该装置还包括:
第一优先级设置模块,用于响应于检测到对该任一对象集合触发的查看操作,将待查看的任一对象集合的拉取优先级置于其它对象集合之前;
该获取模块703,用于:
基于该各对象集合的拉取优先级,从该各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识,该当前批次的至少两个对象集合的标识包括待查看的任一对象集合的标识。
在一种可能实现方式中,该装置还包括:
第二优先级设置模块,用于将当前对象集合的拉取优先级置于其它对象集合之前,该当前对象集合是指终端的目标应用中当前所登录的对象所属的对象集合;
该获取模块703,用于:
基于该各对象集合的拉取优先级,从该各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识,该当前批次的至少两个对象集合的标识包括该当前对象集合的标识。
在一种可能实现方式中,该数据拉取请求携带该目标链路的链路标识、当前对象集合的标识以及该终端上一次所拉取数据的版本号。
本申请实施例提供的数据拉取方法,通过基于数据拉取请求从服务器中获取目标链路所对应的对象集合节点树,从而得到该目标链路的各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用该对象集合节点树,重复执行对各并行对象集合的并行拉取,利用该对象集合节点树获取当前批次对应的至少两个并行对象集合的标识,使得后续可基于该至少两个并行对象集合的标识,从该服务器中拉取该至少两个并行对象集合的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
图8为本申请实施例提供的一种数据拉取装置的结构示意图。如图8所示,该装置包括:接收模块801、发送模块802以及并行拉取模块803。
接收模块801,用于接收终端发送的数据拉取请求,该数据拉取请求用于拉取目标链路的业务协作信息,该目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
发送模块802,用基于目标链路的链路标识,向该终端返回该目标链路所对应的对象集合节点树;
该接收模块801,还用于接收该终端发送的当前批次对应的并行对象集合的标识;
并行拉取模块803,用于基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息;
该发送模块802,还用于向该终端返回所拉取的各并行对象集合的业务协作信息。
在一种可能实现方式中,并行拉取模块803,用于:
基于该至少两个并行对象集合的标识,并行执行将该业务信息数据库中各并行对象集合的初始业务协作信息读取至缓存;
在该缓存中遍历各并行对象集合中符合预配置对接规则的业务协作信息。
在一种可能实现方式中,并行拉取模块803,用于:
将该缓存的容量增大至预配置容量值;
并行执行针对各并行对象集合的以下数据读取步骤:
从该业务信息数据库中读取各并行对象集合分别对应的全量成员节点树,得到每个并行对象集合对应的第一全量节点,该第一全量节点包括属于至少一个业务链路的节点,该至少一个业务链路包括目标链路;
从该每个并行对象集合对应的第一全量节点中,筛选出该每个并行对象集合对应属于该目标链路的初始节点;
将该每个并行对象集合对应的初始节点的初始业务协作信息存储至缓存,并记录各并行对象集合的标识、目标链路标识与初始业务协作信息之间的关联关系。
在一种可能实现方式中,每个对象集合对应的对象成员节点树表征对象集合内的至少一个对象之间参与目标业务的业务协作关系;
该发送模块802,还用于:
对于任一并行对象集合的对象成员节点树,若该对象成员节点树中任一节点被移除,将该对象成员节点树中符合预配置对接规则的第二全量节点的业务协作信息发送至终端。
本申请实施例提供的数据拉取方法,通过在接收终端的数据拉取请求时,先向该终端返回该目标链路所对应的对象集合节点树,以使终端得到各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用当前批次对应的并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,以向终端返回所拉取的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
图9是本申请实施例中提供了一种计算机设备的结构示意图。如图9所示,该计算机设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据拉取方法的步骤,与相关技术相比可实现:
本申请实施例提供的数据拉取方法,通过基于数据拉取请求从服务器中获取目标链路所对应的对象集合节点树,从而得到该目标链路的各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用该对象集合节点树,重复执行对各并行对象集合的并行拉取,利用该对象集合节点树获取当前批次对应的至少两个并行对象集合的标识,使得后续可基于该至少两个并行对象集合的标识,从该服务器中拉取该至少两个并行对象集合的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
本申请实施例提供的数据拉取方法,通过在接收终端的数据拉取请求时,先向该终端返回该目标链路所对应的对象集合节点树,以使终端得到各对象集合的整体情况,为后续分批次拉取数据、并在每个批次并行拉取多个对象集合的数据提供可能。进一步利用当前批次对应的并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,以向终端返回所拉取的业务协作信息;由于通过分批次拉取数据,每个批次采用并行方式拉取多个对象集合的业务协作信息,减少了数据拉取所消耗的时间,提高了数据拉取效率。
在一个可选实施例中提供了一种计算机设备,如图9所示,图9所示的计算机设备900包括:处理器901和存储器903。其中,处理器901和存储器903相连,如通过总线902相连。可选地,计算机设备900还可以包括收发器904,收发器904可以用于该计算机设备与其他计算机设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器904不限于一个,该计算机设备900的结构并不构成对本申请实施例的限定。
处理器901可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线902可包括一通路,在上述组件之间传送信息。总线902可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器903可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质\其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器903用于存储执行本申请实施例的计算机程序,并由处理器901来控制执行。处理器901用于执行存储器903中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:服务器、终端或云计算中心设备等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (14)
1.一种数据拉取方法,其特征在于,所述方法包括:
向服务器发送数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
接收所述服务器发送的目标链路所对应的对象集合节点树;
基于所述对象集合节点树,重复执行以下并行拉取步骤,直至拉取到所述目标链路中每个对象集合的业务协作信息:
从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识;
向所述服务器发送当前批次对应的至少两个并行对象集合的标识,并接收所述服务器发送的所述至少两个并行对象集合的业务协作信息。
2.根据权利要求1所述的方法,其特征在于,所述接收所述服务器发送的目标链路所对应的对象集合节点树,包括:
接收所述服务器发送的至少一个批次的节点树的元数据,每个批次对应的节点树表征所述目标链路中部分对象集合之间的业务协作关系;
在目标应用页面中显示所述目标链路中各个对象集合的元数据,所述元数据包括对象集合的名称、所属的父节点或者属性信息中的至少一项。
3.根据权利要求2所述的方法,其特征在于,所述在目标应用页面中显示所述目标链路中各个对象集合的元数据之后,所述方法还包括:
响应于检测到对所述任一对象集合触发的查看操作,将待查看的任一对象集合的拉取优先级置于其它对象集合之前;
所述从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识,包括:
基于所述各对象集合的拉取优先级,从所述各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识,所述当前批次的至少两个对象集合的标识包括待查看的任一对象集合的标识。
4.根据权利要求2所述的方法,其特征在于,所述在目标应用页面中显示所述目标链路中各个对象集合的元数据之后,所述方法还包括:
将当前对象集合的拉取优先级置于其它对象集合之前,所述当前对象集合是指终端的目标应用中当前所登录的对象所属的对象集合;
所述从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识,包括:
基于所述各对象集合的拉取优先级,从所述各对象集合的标识中筛选出当前批次对应的至少两个并行对象集合的标识,所述当前批次的至少两个对象集合的标识包括所述当前对象集合的标识。
5.根据权利要求1所述的方法,其特征在于,所述数据拉取请求携带所述目标链路的链路标识、当前对象集合的标识以及所述终端上一次所拉取数据的版本号。
6.一种数据拉取方法,其特征在于,所述方法包括:
接收终端发送的数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
基于目标链路的链路标识,向所述终端返回所述目标链路所对应的对象集合节点树;
接收所述终端发送的当前批次对应的并行对象集合的标识;
基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,并向所述终端返回所拉取的各并行对象集合的业务协作信息。
7.根据权利要求6所述的方法,其特征在于,所述基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息,包括:
基于所述至少两个并行对象集合的标识,并行执行将所述业务信息数据库中各并行对象集合的初始业务协作信息读取至缓存;
在所述缓存中遍历各并行对象集合中符合预配置对接规则的业务协作信息。
8.根据权利要求7所述的方法,其特征在于,所述基于所述至少两个并行对象集合的标识,并行执行将所述业务信息数据库中各并行对象集合的初始业务协作信息读取至缓存,包括:
将所述缓存的容量增大至预配置容量值;
并行执行针对各并行对象集合的以下数据读取步骤:
从所述业务信息数据库中读取各并行对象集合分别对应的全量成员节点树,得到每个并行对象集合对应的第一全量节点,所述第一全量节点包括属于至少一个业务链路的节点,所述至少一个业务链路包括目标链路;
从所述每个并行对象集合对应的第一全量节点中,筛选出所述每个并行对象集合对应属于所述目标链路的初始节点;
将所述每个并行对象集合对应的初始节点的初始业务协作信息存储至缓存,并记录各并行对象集合的标识、目标链路标识与初始业务协作信息之间的关联关系。
9.根据权利要求8所述的方法,其特征在于,每个对象集合对应的对象成员节点树表征对象集合内的至少一个对象之间参与目标业务的业务协作关系;
所述向所述终端返回所拉取的各并行对象集合的业务协作信息,包括:
对于任一并行对象集合的对象成员节点树,若所述对象成员节点树中任一节点被移除,将所述对象成员节点树中符合预配置对接规则的第二全量节点的业务协作信息发送至终端。
10.一种数据拉取装置,其特征在于,所述装置包括:
拉取请求发送模块,用于向服务器发送数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
接收模块,用于接收所述服务器发送的目标链路所对应的对象集合节点树;
基于所述对象集合节点树,重复执行以下并行拉取步骤,直至拉取到所述目标链路中每个对象集合的业务协作信息:
获取模块,用于从所述对象集合节点树所包括的各对象集合的标识中,获取当前批次对应的至少两个并行对象集合的标识;
拉取模块,用于向所述服务器发送当前批次对应的至少两个并行对象集合的标识,并接收所述服务器发送的所述至少两个并行对象集合的业务协作信息。
11.一种数据拉取装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的数据拉取请求,所述数据拉取请求用于拉取目标链路的业务协作信息,所述目标链路包括至少两个对象集合、以及各对象集合之间参与目标业务的业务协作关系;
发送模块,用于基于目标链路的链路标识,向所述终端返回所述目标链路所对应的对象集合节点树;
所述接收模块,还用于接收所述终端发送的当前批次对应的并行对象集合的标识;
并行拉取模块,用于基于当前批次对应的至少两个并行对象集合的标识,并行执行从业务信息数据库中拉取各并行对象集合的业务协作信息;
所述发送模块,还用于向所述终端返回所拉取的各并行对象集合的业务协作信息。
12.一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210983080.1A CN117009632A (zh) | 2022-08-16 | 2022-08-16 | 数据拉取方法、装置、计算机设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210983080.1A CN117009632A (zh) | 2022-08-16 | 2022-08-16 | 数据拉取方法、装置、计算机设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009632A true CN117009632A (zh) | 2023-11-07 |
Family
ID=88567863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210983080.1A Pending CN117009632A (zh) | 2022-08-16 | 2022-08-16 | 数据拉取方法、装置、计算机设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009632A (zh) |
-
2022
- 2022-08-16 CN CN202210983080.1A patent/CN117009632A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10560465B2 (en) | Real time anomaly detection for data streams | |
US20210263906A1 (en) | Recreating an oltp table and reapplying database transactions for real-time analytics | |
CN113254466B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US9442967B2 (en) | Systems and methods for efficient data ingestion and query processing | |
US20180248709A1 (en) | Managing channels in an open data ecosystem | |
US20170147615A1 (en) | Systems and methods for pruning data by sampling | |
CN107908637B (zh) | 一种基于知识库的实体更新方法及系统 | |
JP2014528126A (ja) | 複数のターゲットへのマルチソースプッシュ通知の分配 | |
US11822433B2 (en) | Qualification parameters for captain selection in a search head cluster | |
WO2017016084A1 (zh) | 告警信息通知方法、装置及告警信息过滤设备 | |
CN112347192A (zh) | 数据同步方法、装置、平台以及可读介质 | |
CN112181678A (zh) | 业务数据的处理方法、装置和系统、存储介质、电子装置 | |
US20230090132A1 (en) | State-based detection of anomalous api calls within a real-time data stream | |
CN113065953B (zh) | 一种基于分布式的期货中继交易系统 | |
CN111193661B (zh) | 一种基于企业通信渠道融合系统的管理方法及装置 | |
US9043274B1 (en) | Updating local database and central database | |
KR102031589B1 (ko) | 관계 체인 처리 방법 및 시스템, 그리고 저장 매체 | |
WO2023186154A1 (zh) | 数据传输系统以及方法 | |
US9501521B2 (en) | Systems and methods for detecting missing data in query results | |
CN117009632A (zh) | 数据拉取方法、装置、计算机设备、存储介质及程序产品 | |
WO2023028517A1 (en) | Updating records in a real-time storage system | |
CN111966650B (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
CN113392081A (zh) | 数据处理系统及方法 | |
CN113407491A (zh) | 数据处理方法及装置 | |
CN111291127A (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 |