CN112069190B - 一种分批数据获取方法、装置、设备及介质 - Google Patents
一种分批数据获取方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112069190B CN112069190B CN201910502639.2A CN201910502639A CN112069190B CN 112069190 B CN112069190 B CN 112069190B CN 201910502639 A CN201910502639 A CN 201910502639A CN 112069190 B CN112069190 B CN 112069190B
- Authority
- CN
- China
- Prior art keywords
- data
- data acquisition
- batch
- request
- pulling
- 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/23—Updating
-
- 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
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- 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
- G06F16/2358—Change logging, detection, and notification
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分批数据获取方法、装置、设备及介质,所述方法包括获取第一数据获取请求;根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;若数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。本发明将串行拉取数据改为异步并行,并在完成所有数据拉取后才进行拷贝,保证数据一致性;通过断点续拉和版本保存,避免重复拉取数据。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种分批数据获取方法、装置、设备及介质。
背景技术
现有技术中为获取存储于服务器大数据量的数据,经常需要对数据进行分批拉取,在经过多批拉取后才能够获取到全部所需数据。在拉取过程中,任意一批数据的拉取失败都可能导致数据获取过程失败,而再次进行数据获取又只能够从第一批数据开始拉取,重复拉取已经拉取过的数据既浪费资源,又无益于降低数据获取过程失败的风险。
进一步地,在现有的数据获取过程中,每一批拉取到的数据都可以被记录于客户端本地以用于更新本地数据,若数据获取过程中能够某一批数据拉取失败,则会导致客户端本地存储的部分数据被更新,而部分数据未被更新,从而产生数据不一致问题。
发明内容
为了解决现有技术中数据传输过程中无法充分利用带宽资源而导致数据获取速度慢,并且数据存在不一致的技术问题,本发明实施例提供一种分批数据获取方法、装置、设备及介质。
一方面,本发明提供了一种分批数据获取方法,所述方法包括:
获取第一数据获取请求;
根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;
根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;
若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
另一方面,本发明提供一种分批数据获取装置,所述装置包括:
第一数据获取请求获取模块,用于获取第一数据获取请求;
数据获取接口启动模块,用于根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;
分批拉取模块,用于根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;
原子更新模块,用于若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
另一方面,本发明提供了一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种分批数据获取方法。
另一方面,本发明提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种分批数据获取方法。
本发明提供了一种分批数据获取方法、装置、设备及介质。本发明对大数据量数据的获取过程进行了至少三处改进,提出了断点续拉机制、并行拉取机制和数据一致性保护机制,将现有的串行拉取数据改为异步并行拉取数据,并在完成所有数据拉取后才进行原子性拷贝,保证数据一致性;并且在这个基础上,做拉取失败的断点数据和版本保存,避免重复拉取失败的数据,降低后台服务器负载,也提升了客户端数据显示速度,提升客户粘度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的在参考所述分批拉取策略的数据获取示意图;
图2是本发明提供的一种场景中多次分批拉取数据的逻辑时序图;
图3是本发明提供的另一种场景中多次分批拉取数据的逻辑时序图;
图4是本发明提供的另一种场景中多次分批拉取数据的逻辑时序图;
图5是本发明提供的现有技术中串行拉取的示意图;
图6是本发明提供的实施环境示意图;
图7是本发明提供的一种分批数据获取方法流程图;
图8是本发明提供的数据分配逻辑执行流程图;
图9是本发明提供的根据预设的数据拉取逻辑和所述第一数据获取请求生成数据分批拉取请求流程图;
图10是本发明提供的现有技术中数据获取获取失败后第二次数据获取的逻辑示意图;
图11是本发明提供的本发明实施例中断点续拉逻辑示意图;
图12是本发明提供的大批量获取数据过程中客户端界面示意图;
图13是本发明提供的大批量获取数据成功后客户端界面示意图;
图14是本发明提供的一种分批数据获取装置框图;
图15是本发明提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
现有技术中为了获取大批量的数据通常可以使用分批拉取策略。所述分批拉取策略通过产生分批拉取请求以得到响应于所述分批拉取请求返回的数据。若全部数据都被拉取完毕,则数据获取完成。若任意一次分批拉取请求响应失败,则数据获取过程失败。以客户端和服务器构成的即时通信系统中,客户端请求获取数据为例,请参考图1,其示出了参考所述分批拉取策略的数据获取示意图。客户端按照预设的数据获取逻辑产生拉取分片数据请求,并将所述拉取分片数据请求传输至服务器以得到分片数据,获取所述分片数据并将所述分片数据存储在本地。当全部分片数据被成功获取后,在本地写入版本号,并通知界面显示所述全部分片数据。这一策略虽然较为简单,但是其存在下述缺陷:
首先,对于较大数据量的数据而言,其需要多次请求分片数据才能够被全部获取完毕,而任意一次的获取失败都会导致整体数据获取失败。在数据获取失败后,只能够重新进行数据获取,浪费资源。
第二、分批拉取数据并存储到本地会使得本地数据面临显著的不一致风险。
请参考图2-4,其示出了多种情况下多次分批拉取数据的逻辑时序图。图2中每次分批拉取均成功,客户端成功地获取了数据,本地数据为最新数据。图3中,在分批拉取数据伊始即产生拉取失败,客户端未获得任何新数据,本地数据为旧数据。在图4中,在分批拉取过程中产生拉取失败,客户端获得了部分新数据,显然,在多次分批拉取数据的过程中,被成功拉取的数据会被及时更新在客户端本地,而拉取失败导致未被拉取的数据,以及剩余未拉取的数据都无法被更新在客户端本地,因此客户端本地数据有部分新数据和部分旧数据。显然,这会导致客户端本地数据不一致。
第三、在分批拉取数据的过程中都是串行拉取,没有充分利用带宽资源。
请参考图5,其示出了现有技术中串行拉取的示意图。以客户端数据拉取进程每次最多拉取5万个节点的数据为例,若需要拉取多于5万的节点的数据,则客户端数据拉取进程需要运行多次。在每次数据拉取过程中,并不能够对5万个数据一并拉取,而是进行串行分片拉取,效率较为低下。
为了解决上述问题,本发明实施例优化了数据获取策略,提供了一种数据分批获取方法,首先,本发明实施例给出其实施环境。
参见图6,该实施环境包括:业务服务器01,基础数据库02和客户端03,所述业务服务器01与所述基础数据库02通信连接,以便于基于基础数据库02存储的基础数据向外提供各种服务。基础数据库02可以内置或外置于业务服务器01。
所述客户端03可以基于浏览器/服务器模式(Browser/Server,B/S)或客户端/服务器模式(Client/Server,C/S)与业务服务器01进行通信。所述客户端03可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。比如,所述客户端03可以运行即时通信类软体。
所述业务服务器01用于获取各个客户端03发出的数据获取请求,并为之提供反馈数据。业务服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
本发明实施例提供一种分批数据获取方法,所述方法以所述实施环境中的客户端为实施主体,如图7所示,包括:
S101.获取第一数据获取请求。
S103.根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据。
有别于现有技术中的串行拉取数据,本发明实施例中通过并行策略来拉取数据,各个数据获取接口之间相互独立,异步并行拉取数据,从而提升了数据拉取的效率,充分利用了带宽资源。
本发明实施例并不限定数据获取接口的数量和数据获取接口的设置方法。
在一个可行的实施方式中,可以根据预先设定的模板文件中的配置来设置数据获取接口。
在另一个可行的实施方式中,可以获取当前的带宽资源,根据当前带宽资源选择合适的接口数量,从而设置数据获取接口。
在另一个可行的实施方式中,还可以根据第一数据获取请求中涉及到的数据量和当前的带宽资源,计算所述数据获取接口的数量。
比如,若所述第一数据获取请求涉及到访问多个数据区的节点,则所述数据获取接口的数量可以以整除所述数据区的总数为目标,再结合当前的带宽资源进行设定。
比如,若所述第一数据获取请求涉及到访问10个数据区的节点,则若当前带宽资源较多,则可以设置5个数据获取接口;若当前带宽资源较少,则可以设置2个数据获取接口。
S105.根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表。
本发明实施例中使用异步并行的方式获取数据,各个数据获取接口之间并行运行,互不干扰。在每个接口在获取数据的过程中又可以按照预设的数据拉取逻辑分多批次对数据进行拉取,每个数据获取接口可以使用异步通信的方式与服务器进行交互。所述数据拉取逻辑包括了数据分配逻辑和数据分批逻辑。所述数据分配逻辑用于指示各个接口拉取的至少一个目标数据区,即决定每个接口分别拉取服务器中哪个区域中节点存储的数据,所述数据分批逻辑用于分批拉取的目标数据区中某些节点的数据,即决定某个接口拉取服务器中某个区域的哪些节点中存储的数据。
在一个可行的实施例中,所述第一数据获取请求包括节点集,所述节点集中记录了服务器中待访问的各个节点。执行所述数据分配逻辑,如图8包括:
S1.获取所述节点集覆盖的数据区集合,每个数据区命中所述节点集中的至少一个节点;
S3.若所述数据区集合的数量是数据获取接口数量的整数倍,则将各个数据区平均分配给各个数据获取接口以得到每个数据获取接口对应的目标数据区集合;
S5.若所述数据区集合的数量不是数据获取接口数量的整数倍,将数据区集合分为第一数据区集合和第二数据区集合;将所述第一数据区集合中的第一数据区平均分配给各个数据获取接口;按照数据获取接口标识递增的顺序依次为每个数据获取接口从所述第二数据区集合中分配一个第二数据区直至不存在未分配的第二数据区,以得到每个数据获取接口对应的目标数据区集合。
以所述第一数据获取请求包括53万个节点为例,其中每5万个节点位于一个数据区,其分别对应数据区1,数据区2,……,数据区10。其中数据区1至数据区9分别存储了5万个节点,数据区10存储了3万个节点。
若客户端一共并发了5个数据获取接口,则将数据区1和数据区2分配给数据获取接口1,将数据区3和数据区4分配给数据获取接口2,将数据区5和数据区6分配给数据获取接口3,将数据区7和数据区8分配给数据获取接口4,将数据区9和数据区10分配给数据获取接口5。
若客户端一共并发了三个数据获取接口,则得到第一数据区集合(数据区1值数据区9)和第二数据区集合(数据区10),将数据区1至数据区3分配给数据获取接口1,将数据区4至数据区6分配给数据获取接口2,将数据区7至数据区9分配给数据获取接口3,将数据区四分配给数据获取接口1。
所述根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,如图9所示,包括:
S1051.获取目标数据区集合。
S1052.提取所述目标数据区集合的第一个目标数据区,将所述第一个目标数据区作为当前数据区。
S1053.为所述当前数据区中的待访问节点划分批次以得到批次总数,并以第一批作为当前批次。
S1054.根据所述当前批次和所述当前数据区生成成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器。
在一个可行的实施例中,若服务器超时未反馈,则所述数据获取接口产生异常,停止执行后续步骤。
在另一个实施例中,若服务器反馈针对所述数据分批拉取请求的响应,则所述数据获取接口根据所述响应判断是否拉取成功,若是,则根据所述响应更新临时数据表。若否,则所述数据获取接口产生异常,停止执行后续步骤。
S1055.若所述当前批次不大于所述批次总数,则以所述当前批次的下一批次作为当前批次,重复执行步骤S1054。
S1056.若所述当前批次大于所述批次总数,判断所述当前数据区是否为所述目标区集合的最后一个目标数据区。
S1057.若否,则以所述目标区集合中当前数据区的下一个目标数据区为当前数据区,重复执行步骤S1053。
S1058.若是,则流程结束。
S107.若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
在一个可行的实施例中,若所述分批拉取请求的响应中包含成功响应对应的枚举值,则判定所述分批拉取请求被成功响应,提取所述响应中包含的有效数据。
在另一个可行的实施例中,若所述分批拉取请求的响应中包含的有效数据不为空,则判定所述分批拉取请求被成功响应,提取所述所述响应中的有效数据。
本发明实施例中通过并发拉取数据提升了数据的获取效率,并通过将每次成功拉取的数据存储在临时数据表中,并在全部数据被成功拉取后,统一更新本地数据的方式,保证了本地更新的原子性,确保了本地数据的一致性。
进一步地,若某个数据获取接口的某个分批拉取过程出现响应失败或者超时等异常环节,则可能触发所述数据获取的失败。
在一个可行的实施方式中,若所述数据分批拉取请求响应失败或响应超时,则全部数据获取接口停止拉取数据并退出。但是,可以保存所述临时数据表以便于进行下一次根据所述临时数据表继续获取数据。
具体地,在一个可行的实施方式中,若所述数据分批拉取请求响应失败或响应超时,则进行数据的断点续拉,所述断点续拉包括:
S102.根据所述临时数据表和所述第一数据获取请求生成第二数据获取请求,所述第二数据获取请求用于获取第一数据请求指向的,但是未记录在所述临时数据表或在所述临时数据表中失效的数据。
在一个优选的实施方式中,所述目标数据包括数据内容和所述数据内容对应的哈希版本号,根据所述哈希版本号判断所述临时数据表中在上一次数据获取过程中未被获取到的数据或者失效的数据。
S104.根据所述第二数据获取请求开辟至少两个数据获取接口,每个所述数据获取接口独立分批拉取数据。
S106.每个所述数据获取接口根据预设的数据拉取逻辑和所述第二数据获取请求生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器以便于获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至所述临时数据表。
具体地,步骤S102-S106的执行过程可以参考步骤S103-S105的执行过程。
S108.若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
若所述第二数据获取请求仍然未能够获取到所述第二数据获取请求指向的全部数据,还可以触发下一次的数据获取请求,在下一次的数据获取请求中,以所述第二数据获取请求作为第一数据获取请求,执行步骤S102即可。
本发明实施例基于哈希版本号实现了数据的断点续拉,请参考图10,其示出了现有技术中数据获取获取失败后第二次数据获取的逻辑,请参考图11,其示出了本发明实施例中断点续拉逻辑,显然,本发明实施例可以从上一次异常位置进行数据获取,避免了数据的重复获取,节省了资源,也降低了再次拉取失败的概率。
本发明实施例可以广泛的应用于各种需要数据大批量获取的场景,以即时通信场景中进行组织架构获取为例,请参考图12,其示出了大批量获取数据过程中客户端界面示意图。请参考图13,其示出了大批量获取数据成功后客户端界面示意图,本发明实施例通过并行数据拉取显著加快了大数据量数据的获取速度,并通过断点续拉提升在数据获取失败前提下的数据获取速度,从而可以降低图12的显示时间,尽快使得用户能够看到图13中的数据。
本发明实施例提供了一种分批数据获取方法,对大数据量数据的获取过程进行了至少三处改进,提出了断点续拉机制、并行拉取机制和数据一致性保护机制,将现有的串行拉取数据改为异步并行拉取数据,并在完成所有数据拉取后才进行原子性拷贝,保证数据一致性;并且在这个基础上,做拉取失败的断点数据和版本保存,避免重复拉取失败的数据,降低后台服务器负载,也提升了客户端数据显示速度,提升客户粘度。
本发明实施例还提供一种分批数据获取装置,请参考图14,所述装置包括:
第一数据获取请求获取模块201,用于获取第一数据获取请求;
数据获取接口启动模块203,用于根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;
分批拉取模块205,用于根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;
原子更新模块207,用于若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
所述装置还可以包括:
失败处理模块,用于全部数据获取接口停止拉取数据并退出,并保存所述临时数据表;
断点续拉模块,用于进行数据的断点续拉。
具体地,本发明实施例所述一种分批数据获取装置与方法实施例均基于相同发明构思。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行本发明实施例所述的一种分批数据获取方法的各种步骤,再此不再赘述。
进一步地,图15示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置。如图15所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图15所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图15中所示更多或者更少的组件,或者具有与图15所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种分批数据获取方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分批数据获取方法,其特征在于,所述方法包括:
获取第一数据获取请求,所述第一数据获取请求包括节点集,所述节点集中记录了服务器中待访问的各个节点;
根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;
根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至所述服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据;
其中,所述数据拉取逻辑包括数据分配逻辑,所述数据分配逻辑的执行方法,包括:
获取所述节点集覆盖的数据区集合,每个数据区命中所述节点集中的至少一个节点;
若所述数据区集合的数量是数据获取接口数量的整数倍,则将各个数据区平均分配给各个数据获取接口以得到每个数据获取接口对应的目标数据区集合;
若所述数据区集合的数量不是数据获取接口数量的整数倍,将数据区集合分为第一数据区集合和第二数据区集合;将所述第一数据区集合中的第一数据区平均分配给各个数据获取接口;按照数据获取接口标识递增的顺序依次为每个数据获取接口从所述第二数据区集合中分配一个第二数据区直至不存在未分配的第二数据区,以得到每个数据获取接口对应的目标数据区集合。
2.根据权利要求1所述的方法,其特征在于,所述数据拉取逻辑还包括数据分批逻辑。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,包括:
获取目标数据区集合;
提取所述目标数据区集合的第一个目标数据区,将所述第一个目标数据区作为当前数据区;
为所述当前数据区中的待访问节点划分批次以得到批次总数,并以第一批作为当前批次;
根据所述当前批次和所述当前数据区生成成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器;
若所述当前批次不大于所述批次总数,则以所述当前批次的下一批次作为当前批次,重复执行步骤:根据所述当前批次和所述当前数据区生成成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器;
若所述当前批次大于所述批次总数,判断所述当前数据区是否为所述目标区集合的最后一个目标数据区;
若否,则以所述目标区集合中当前数据区的下一个目标数据区为当前数据区,重复执行步骤:为所述当前数据区中的待访问节点划分批次以得到批次总数,并以第一批作为当前批次。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述数据分批拉取请求响应失败或响应超时,则全部数据获取接口停止拉取数据并退出,并保存所述临时数据表。
5.根据权利要求4所述的方法,其特征在于,若所述数据分批拉取请求响应失败或响应超时,则进行数据的断点续拉,所述断点续拉包括:
根据所述临时数据表和所述第一数据获取请求生成第二数据获取请求,所述第二数据获取请求用于获取第一数据请求指向的,但是未记录在所述临时数据表或在所述临时数据表中失效的数据;
根据所述第二数据获取请求开辟至少两个数据获取接口,每个所述数据获取接口独立分批拉取数据;
每个所述数据获取接口根据预设的数据拉取逻辑和所述第二数据获取请求生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器以便于获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至所述临时数据表;
若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据。
6.根据权利要求5所述的方法,其特征在于:
所述目标数据包括数据内容和所述数据内容对应的哈希版本号,根据所述哈希版本号判断所述临时数据表中在上一次数据获取过程中未被获取到的数据或者失效的数据。
7.一种分批数据获取装置,其特征在于,所述装置包括:
第一数据获取请求获取模块,用于获取第一数据获取请求,所述第一数据获取请求包括节点集,所述节点集中记录了服务器中待访问的各个节点;
数据获取接口启动模块,用于根据所述第一数据获取请求启动至少两个数据获取接口,各个所述数据获取接口均异步并行拉取数据;
分批拉取模块,用于根据预设的数据拉取逻辑和所述第一数据获取请求通过所述数据获取接口生成数据分批拉取请求,并将所述数据分批拉取请求传输至服务器,以使所述数据获取接口获取所述分批拉取请求指向的目标数据,并将所述目标数据存储至临时数据表;
原子更新模块,用于若各个数据获取接口的各个分批拉取请求均被成功响应,则根据所述临时数据表更新本地数据;
其中,所述数据拉取逻辑包括数据分配逻辑,所述数据分配逻辑用于获取所述节点集覆盖的数据区集合,每个数据区命中所述节点集中的至少一个节点;若所述数据区集合的数量是数据获取接口数量的整数倍,则将各个数据区平均分配给各个数据获取接口以得到每个数据获取接口对应的目标数据区集合;若所述数据区集合的数量不是数据获取接口数量的整数倍,将数据区集合分为第一数据区集合和第二数据区集合;将所述第一数据区集合中的第一数据区平均分配给各个数据获取接口;按照数据获取接口标识递增的顺序依次为每个数据获取接口从所述第二数据区集合中分配一个第二数据区直至不存在未分配的第二数据区,以得到每个数据获取接口对应的目标数据区集合。
8.根据权利要求7所述的装置,其特征在于,还包括:
失败处理模块,用于全部数据获取接口停止拉取数据并退出,并保存所述临时数据表;
断点续拉模块,用于进行数据的断点续拉。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-6任一项所述的一种分批数据获取方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1-6任一项所述的一种分批数据获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502639.2A CN112069190B (zh) | 2019-06-11 | 2019-06-11 | 一种分批数据获取方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502639.2A CN112069190B (zh) | 2019-06-11 | 2019-06-11 | 一种分批数据获取方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069190A CN112069190A (zh) | 2020-12-11 |
CN112069190B true CN112069190B (zh) | 2023-06-09 |
Family
ID=73658603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502639.2A Active CN112069190B (zh) | 2019-06-11 | 2019-06-11 | 一种分批数据获取方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069190B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339419B (zh) * | 2021-12-29 | 2024-04-02 | 青岛海信移动通信技术有限公司 | 一种视频流拉流处理的方法、装置及存储介质 |
CN116226153B (zh) * | 2023-05-05 | 2023-08-11 | 中国工商银行股份有限公司 | 数据的更新方法、装置、处理器和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426419A (zh) * | 2015-11-03 | 2016-03-23 | 用友网络科技股份有限公司 | 异构系统间数据升迁系统和方法 |
CN106775867A (zh) * | 2016-12-14 | 2017-05-31 | 西北工业大学 | Windows操作系统环境下的飞行模拟系统 |
CN107515874A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种分布式非关系型数据库中同步增量数据的方法与设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156240B2 (en) * | 2010-03-01 | 2012-04-10 | Yahoo! Inc. | Mechanism for supporting user content feeds |
US10032131B2 (en) * | 2012-06-20 | 2018-07-24 | Microsoft Technology Licensing, Llc | Data services for enterprises leveraging search system data assets |
-
2019
- 2019-06-11 CN CN201910502639.2A patent/CN112069190B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426419A (zh) * | 2015-11-03 | 2016-03-23 | 用友网络科技股份有限公司 | 异构系统间数据升迁系统和方法 |
CN107515874A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种分布式非关系型数据库中同步增量数据的方法与设备 |
CN106775867A (zh) * | 2016-12-14 | 2017-05-31 | 西北工业大学 | Windows操作系统环境下的飞行模拟系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112069190A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062367B (zh) | 一种数据列表的上传方法及其终端 | |
CN113568884B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN111800462B (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN112069190B (zh) | 一种分批数据获取方法、装置、设备及介质 | |
CN112416969B (zh) | 分布式数据库中的并行任务调度系统 | |
EP3570567B1 (en) | Method and device for operating instance resources | |
CN109189431A (zh) | 一种客户端升级方法、装置、设备及可读存储介质 | |
CN113885971A (zh) | 一种基于自适应平台系统的状态管理方法及装置 | |
CN111400051B (zh) | 一种资源调度方法、装置及系统 | |
CN110704198B (zh) | 数据操作方法、装置、存储介质以及处理器 | |
CN113448939A (zh) | 数据归档存储的方法、装置以及存储介质 | |
EP4293603A1 (en) | Fixed execution sequence transaction method, and apparatus | |
CN111092774A (zh) | 采集网关的配置方法及设备 | |
CN109542841A (zh) | 集群中创建数据快照的方法及终端设备 | |
CN112380411B (zh) | 敏感词处理方法、装置、电子设备、系统及存储介质 | |
CN113504981A (zh) | 任务调度方法和装置、存储介质及电子设备 | |
CN110661857B (zh) | 一种数据同步方法和装置 | |
CN113434176A (zh) | 数据更新处理方法、装置、存储介质及电子装置 | |
CN109450885B (zh) | 网络数据拦截方法、装置、电子设备及存储介质 | |
CN112711466A (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN108718285A (zh) | 云计算集群的流量控制方法、装置及服务器 | |
CN117113942B (zh) | 一种模型同步方法、装置、电子设备以及存储介质 | |
CN114979153B (zh) | 负载均衡方法、计算机设备及存储装置 | |
CN113315801B (zh) | 存储区块链数据的方法和系统 | |
CN115904435A (zh) | Gpu扩展箱的固件升级方法及装置、计算机可读存储介质 |
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 |