CN117519839B - 数据加载方法及装置 - Google Patents
数据加载方法及装置 Download PDFInfo
- Publication number
- CN117519839B CN117519839B CN202410014994.6A CN202410014994A CN117519839B CN 117519839 B CN117519839 B CN 117519839B CN 202410014994 A CN202410014994 A CN 202410014994A CN 117519839 B CN117519839 B CN 117519839B
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- target
- positive sequence
- information
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 154
- 230000002441 reversible effect Effects 0.000 claims abstract description 284
- 238000012545 processing Methods 0.000 claims abstract description 195
- 238000013479 data entry Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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
Abstract
本申请提供数据加载方法及装置,其中所述数据加载方法包括:获取目标数据库中待加载数据表的全局数据条目信息;根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描;根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及数据加载方法及装置。
背景技术
随着计算机技术的发展,数据库的使用覆盖了更为广泛的业务服务。数据库作为持久化数据的存储介质,不仅可以提供稳定的数据存储服务,还能够支持业务运行时将存储的数据加载到内存供前端业务服务使用。对数据库表中的数据进行加载的场景,多存在于内存交易、跑批处理等场景,尤其是在待加载的数据量十分巨大的情况下,如何准确、高效地完成指定数据的加载成为了数据快速加载问题的关键。现有技术中,在从数据库表中加载数据时,大多数采用分区分表方案和自增列方案;前者虽然能够确保数据加载的高效性,但是其加载方式灵活性较低,需要预先完成分区或分表的处理,且只能够完成好的分区或者分表进行数据加载,无法适配数据此阶段发生变更的场景。后者相较于前者具有一定的灵活性,可以根据资源变化而动态调整适应线程数加载数据,但是该方案的数据加载过程需要额外的计算资源维护数据列和索引,计算资源消耗较大且维护成本高;因此亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本申请实施例提供了一种数据加载方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种数据加载装置,一种计算设备,以及一种计算机可读存储介质。
根据本申请实施例的第一方面,提供了一种数据加载方法,包括:
获取目标数据库中待加载数据表的全局数据条目信息;
根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;
利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描;
根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
根据本申请实施例的第二方面,提供了一种数据加载装置,包括:
获取模块,被配置为获取目标数据库中待加载数据表的全局数据条目信息;
计算模块,被配置为根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;
扫描模块,被配置为利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描;
加载模块,被配置为根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
根据本申请实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述数据加载方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据加载方法的步骤。
本实施例提供的数据加载方法,为了能够提高数据加载效率的同时降低计算资源的消耗,可以先获取目标数据库中待加载数据表的全局数据条目信息,以实现在数据加载处理前就能够了解待加载数据表中需要加载的数据量。以此为基础,可以根据全局数据条目信息计算可用的线程集合中每个线程所能够处理的数据量,即处理条目信息,以确定每个线程在后续进行数据加载时所应该被分配的数据量。在确定每个线程对应的处理条目信息后,为了能够提高数据加载效率,可以根据处理条目信息将线程集合划分为正序线程组和倒序线程组,以实现利用正序线程组中的正序线程对待加载数据表中数据的索引信息进行正序扫描,以及利用倒序线程组中的倒序线程对待加载数据表中数据的索引信息进行倒序扫描;从而达到正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息从头到尾,以及从尾到头的并发扫描,以节省更多的索引信息扫描时间,实现根据扫描结果快速的确定每个线程所需要处理的数据,此后正序线程和倒序线程即可根据扫描结果对自身需要加载的数据进行并发加载处理,以达到快速完成数据加载的目的,同时也能够降低计算资源的消耗,确保在无需额外数据对象和第三方插件的帮助下,更为灵活地完成数据加载处理。
附图说明
图1是本申请一实施例提供的一种数据加载方法的示意图;
图2是本申请一实施例提供的一种数据加载方法的流程图;
图3是本申请一实施例提供的一种数据加载方法中数据加载过程的示意图;
图4是本申请一实施例提供的一种数据加载方法的处理流程图;
图5是本申请一实施例提供的一种数据加载装置的结构示意图;
图6是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
在本申请中,提供了一种数据加载方法。本申请同时涉及一种数据加载装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
实际应用中,在针对数据库表中的数据加载时,为了提高数据加载效率以及灵活性,通常会采用SQL实时切分方案,该方案对表的依赖性小,一般仅需要有主键或非空唯一键,对业务模型无侵入性;但是,其在固定场景下的性能较弱。现有技术中,SQL实时切分方案常规的做法是:首先确定表的总条目数,根据分配的线程数确定每个线程需处理的行数,通过主键或非空唯一键对表进行排序编号,利用编号进行均匀切分,并一一对应地提供给各个线程进行并发处理,每个线程中使用编号绑定的rowid之类的定位串进行定位加载。整个过程最为耗时的部分通常存在于在排序编号,因为涉及到全量数据,通常需要全索引扫描排序以及全数据量的按序编号,导致效率在固定场景下无法满足需求,因此亟需一种有效的方案以解决上述问题。
参见图1所示的示意图,本实施例提供的数据加载方法,为了能够提高数据加载效率的同时降低计算资源的消耗,可以先获取目标数据库中待加载数据表的全局数据条目信息,以实现在数据加载处理前就能够了解待加载数据表中需要加载的数据量。以此为基础,可以根据全局数据条目信息计算可用的线程集合中每个线程所能够处理的数据量,即处理条目信息,以确定每个线程在后续进行数据加载时所应该被分配的数据量。在确定每个线程对应的处理条目信息后,为了能够提高数据加载效率,可以根据处理条目信息将线程集合划分为正序线程组和倒序线程组,以实现利用正序线程组中的正序线程对待加载数据表中数据的索引信息进行正序扫描,以及利用倒序线程组中的倒序线程对待加载数据表中数据的索引信息进行倒序扫描;从而达到正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息从头到尾,以及从尾到头的并发扫描,以节省更多的索引信息扫描时间,实现根据扫描结果快速的确定每个线程所需要处理的数据,此后正序线程和倒序线程即可根据扫描结果对自身需要加载的数据进行并发加载处理,以达到快速完成数据加载的目的,同时也能够降低计算资源的消耗,确保在无需额外数据对象和第三方插件的帮助下,更为灵活地完成数据加载处理。
参见图2,图2出了根据本申请一实施例提供的一种数据加载方法的流程图,具体包括以下步骤:
步骤S202,获取目标数据库中待加载数据表的全局数据条目信息。
本实施例提供的数据加载方法可以应用于任意从数据库表中加载数据的场景,比如内存交易场景,跑批处理场景等,需要从数据库记录数据的表中读取数据加载到内存中使用;本实施例以内存交易场景为例,对从数据库中加载数据到内存中的过程进行描述,其他场景的描述均可参见本实施例中相同或相应的描述内容,本实施例在此不作过多赘述。
具体的,目标数据库具体是指存储需要加载到内存中数据的数据库,其可以是任意场景下的数据库,比如云计算场景下存储支持业务服务运行数据的数据库,再比如客户端中存储支持应用程序运行数据的数据库,再比如虚拟机中存储支持虚拟机运行数据的数据库。相应的,待加载数据表具体是指目标数据库中记录需要加载到内存中数据的数据表;比如目标数据库存储企业内全部员工的姓名,性别,身高,体重,收入等信息,且每种类型的信息存储在不同的数据表中,当需要对员工的收入进行统计时,可以在数据库中确定存储员工收入信息的数据表作为待加载数据表,用于后续将其记载的数据加载到内存中以方便前端业务服务使用。相应的,全局数据条目信息具体是指待加载数据表中所记录的数据对应的条目信息,用于后续根据全局数据条目信息可以计算当前时刻可用线程所需要处理的最大条目信息,从而完成后续的数据加载处理。
实际应用中,采用SQL实时切分方案的常规做法是确定表的总条目数后,根据分配的线程数确定每个线程需加载的行数,此后通过主键或者非空唯一键对表进行排序编号,利用编号进行均匀切分,并一一对应地提供给各个线程进行并发处理。此过程中,排序编号会消耗大量的时间,且大多数采用索引正序排序编号或者索引倒序排序编号。如图3所示,其中,T代表线程,横轴中M代表均分后单个线程加载的数据量,R代表无法完全均分总数据量后剩余的数据量,N代表线程总数,即M*N+R为总数据量。竖轴中P代表单向扫描这个索引需要的总时间。需要说明的是,本实施例中位数以M*(N/2)+R简化表达,实际N为奇数时N/2向下取整,且N大于等于2。
基于此,索引正序排序编号应用中,线程T1需要加载的数据对应编号1至编号M+R,线程T2需要加载的数据对应编号M+R+1至2M+R……;线程Tn需要加载的数据对应编号M*(N-1)+R+1至编号M*N+R。同理,索引倒序排序编号应用中,则是线程T1需要加载的数据对应编号M*N+R至编号M*(N-1)+R+1……线程Tn需要加载的数据对应编号M+R至编号1。而无论是倒序还是正序,虽然都能够完成对全量数据的扫描,但是整体时间均需要Ps的时长,即需要从头到尾或者从尾到头都扫描完成后才能够进行后续的处理。
因此,为了能够提高数据加载效率的同时降低计算资源的消耗,可以采用正序线程和倒序线程同步从索引信息的两端向中间扫描的方式进行处理,相对于单向扫描可以减少一半的时间,也就是说,由正序线程组中的正序线程负责编号1到编号M*(N/2)+R的正序扫描;由倒序线程组中的倒序线程负责编号M*N+R至编号M*(N/2)+R+1的倒序扫描,当线程扫描完毕时,仅需要P/2s的时长,可以有效的节省扫描时间,从而提高数据加载效率。
进一步的,在获取待加载数据表对应的全局数据条目信息时,为了能够确保当前时刻需要加载的数据满足下游业务的使用需求,需要先在数据库中确定待加载数据表,之后通过并行扫描待加载数据表对应的键信息即可得到;本实施例中,具体实现方式如下:
响应于数据加载请求确定目标数据库,并在所述目标数据库中确定关联所述数据加载请求的数据表,作为待加载数据表;通过并行扫描所述待加载数据表的键信息,获得所述待加载数据表的全局数据条目信息。
具体的,数据加载请求具体是指当前时刻需要将数据库表中的数据加载到内存中的请求,该请求记录所需要加载数据对应的数据表标识信息,根据该信息可以从数据库中确定待加载数据表;相应的,并行扫描待加载数据表的键信息具体是指通过并行扫描待加载数据表的主键或者非空唯一键确定全局数据条目信息的处理,其中,键信息的选择可以按照主键或者非空唯一键的字段长度决定,如选择字段最短的键作为键信息,通过扫描该键信息即可得到全局数据条目信息。需要说明的是,在扫描键信息获取全局数据条目信息时,是通过数据库优化器完成的操作,也就是说,数据库优化器将自动选择字段端的键作为键信息并扫描,从而获得全局数据条目信息。
基于此,在接收到针上游提交的数据加载请求时,可以先根据数据加载请求确定其命中的目标数据库,之后再根据数据加载请求在目标数据库中确定其需要加载数据所属的待加载数据表,此后为了能够高效且低消耗的完成数据加载处理,可以并行扫描待加载数据表的键信息,以根据并行扫描结果获得待加载数据表的全局数据条目信息,方便后续根据全局数据条目信息对每个线程进行数据量分配,以完成数据加载处理,作为数据加载请求的响应。
举例说明,程序A运行阶段需要加载用户的身份数据,此时将向存储用户身份数据的数据库D发送数据加载请求,响应于数据加载请求确定程序A需要读取用户身份数据,因此可以根据身份标识在数据库D中确定存储身份数据的待加载数据表,并通过对该数据表进行并行扫描,确定待加载数据表中记录有m条身份数据。确定待加载数据表以及其记录数据的条目信息后,即可进行后续的数据加载处理,从而支持程序A进行后续的业务处理。
综上,通过结合数据加载请求命中目标数据库,并在目标数据库中确定待加载数据表,可以确保数据库与数据表确定的精准度,从而确保最终加载到内存中的数据为下游业务需要使用的数据,以支持下游业务的运行。
步骤S204,根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组。
具体的,在上述获取到待加载数据表对应的全局数据条目信息后,进一步的,考虑到在当前可用的线程具有并发加载数据的能力,且可用线程为均衡线程,即各个线程具有相同或相近的计算能力,因此可以将可用线程组成线程集合,并基于全局数据条目信息计算每个线程对应的处理条目信息,从而确定每个线程能够处理的数量。在此基础上,为了能够提高线程加载数据的效率,且不需要额外的数据库对象介入,可以将线程集合划分为具有两种不同能力的线程组,且由于待加载数据表的全局数据条目固定,可用线程数量固定,以及每个线程的处理条目信息已经确定,因此可以按照平均划分策略,按照每个线程的处理条目信息,将线程集合划分为正序线程组和倒序线程组。实现正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息,按照正顺序和逆顺序扫描并加载相对应的数据,从而节省一半的时间。并且正序线程组的整体数据量加载能力与倒序线程组的整体数据量加载能力接近,因此可以确保两者完成数据加载任务的时间接近,以有效的提高数据加载效率。
其中,线程集合具体是指由当前阶段可用的均衡线程组成的集合,且该集合中的线程具有相同的计算能力,因此结合全局数据条目信息以及线程集合中包含的线程数量可以直接计算出每个线程所能够处理的条目信息。相应的,处理条目信息即为每个线程所能够处理的数据量对应的条目信息。相应的,正序线程组具体是指由正序线程组成的集合,且该组中的正序线程用于在扫描待加载数据表中数据对应的索引信息时,将按照从头到尾的顺序扫描;相应的,倒序线程组具体是指由倒序线程组成的集合,且该组中的倒序线程用于在扫描待加载数据表中数据对应的索引信息时,将按照从尾到头的顺序扫描;从而确保正序线程和倒序线程可以同步从索引信息的两端往中间进行扫描,从而有效的节省索引信息扫描时间,进而提高数据加载效率。
进一步的,在根据每个线程对应的处理条目信息划分线程集合时,为了能够确保划分结果的均衡性,以此保证在索引信息扫描时,尽可能的维持两组线程扫描同步完成,从而提高数据加载效率,可以结合每个线程的处理条目信息计算正序条目信息和倒序条目信息;本实施例中,具体实现方式如下:
获取线程集合中线程的线程数量信息,并根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的处理条目信息;按照每个线程对应的处理条目信息计算正序条目信息和倒序条目信息;基于所述正序条目信息在所述线程集合中选择正序线程组成正序线程组,以及基于所述倒序条目信息在所述线程集合中选择倒序线程组成倒序线程组。
具体的,线程数量信息具体是指线程集合中包含的线程总数量信息,相应的,正序条目信息具体是指应该分配给正序线程组所处理的数据量对应的条目信息,相应的,倒序条目信息具体是指应该分配给倒序线程组所处理的数据量对应的条目信息;由于每个线程所对应的处理条目信息已知,因此根据正序条目信息和倒序条目信息即可确定正序线程组和倒序线程组包含的线程。
基于此,在得到待加载数据表中数据对应的全量数据条目信息后,为了能够确保线程集合划分的更加平均,从而促使正序扫描和倒序扫描的时间更为相近,可以先获取线程集合中线程的线程数量信息,并根据线程数量信息和全局数据条目信息计算每个线程对应的处理条目信息;此后可以按照每个线程对应的处理条目信息计算正序条目信息和倒序条目信息;也就是说,由于每个线程对应的处理条目信息已知,且为了能够达到线程组划分后两组处理数据量上相对平均,因此可以结合每个线程的处理条目信息汇总出处理条目信息总量尽可能相等的条目信息,即正序条目信息和倒序条目信息;最后即可基于正序条目信息在线程集合中选择正序线程组成正序线程组,以及基于倒序条目信息在线程集合中选择倒序线程组成倒序线程组。
实际应用中,为了确保在进行线程组划分时,划分后得到的正序线程组和倒序线程组具有相近的处理能力,而线程又具有相同的计算能力,因此线程集合可以由n个线程,且n为偶数;也就是说,可以选择偶数个线程组成线程集合。从而确保划分线程组时两组包含的线程数量可以相等。此外,若可用线程数量为奇数的情况下,可以从可用线程中剔除一个线程,将剩余的偶数个线程组成线程集合。实际应用中,为了确保线程集合中的线程可以均分为正序线程组和倒序线程组,可以根据实际需求选择适配场景的手段将线程集合以偶数个线程组成,具体实现方式本实施例在此不作过多限定。
沿用上例,在m=10000的情况下,可以先确定线程集合中包含的线程数量n=10,通过计算确定每个线程对应的处理条目信息为1000;进一步的,为了确保各个线程可以从待加载数据表中数据的索引信息两端向中间扫描,以节省更多的扫描时间,可以按照每个线程对应的处理条目信息1000,以及待加载数据表记载数据的条目信息,确定应该分配给正序线程组的总处理条目信息为5000,分配给倒序线程组的总处理条目信息为5000;此后按照上述得到的总处理条件信息在线程组中选择线程T1~T5组成正序线程组,以及选择T6~T10组成倒序线程组,方便后续按照各个线程组中包含的线程进行索引信息的扫描和数据的加载处理。
实际应用中,在计算每个线程对应的处理条目信息时,可以采用平均划分策略进行划分,并且由于实际处理中全局数据条目信息可能比较随机,因此可以向下取整计算平均值得到每个线程需要处理的基础条目数,即处理条目信息。
综上,为了能够确保正序线程组和倒序线程组在后续进行索引信息扫描和数据加载时,尽可能的保证两者时间接近,可以按照平均划分的方式实现。
更进一步的,在计算每个线程对应的处理条目信息时,考虑到待加载数据表中记载的数据量可能与线程集合中包含的线程数量不具有整除关系,因此可能存在剩余条目信息,而为了避免造成数据泄露,可以将剩余条目信息分配给目标线程;本实施例中,具体实现方式如下:
根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的初始处理条目信息;根据每个线程对应的初始处理条目信息和所述全局数据条目信息确定剩余条目信息;在所述线程集合中选择目标线程,并基于所述目标线程对应的初始处理条目信息和所述剩余条目信息确定所述目标线程对应的处理条目信息;将所述线程集合中除所述目标线程外的关联线程对应的初始处理条目信息,作为每个关联线程对应的处理条目信息。
具体的,初始处理条目信息具体是指根据线程数量信息和全局数据条目信息计算每个线程对应的所需要处理数据量的条目信息;相应的,剩余条目信息具体是指在确定每个线程对应的处理条目信息后,还未分配的数据量对应的条目信息。相应的,目标线程具体是指在线程集合中选择的能够额外处理剩余条目信息的线程,可以是线程集合中的任意一个线程。优选的可以是线程集合中的第一个可用线程,或者最后一个可用线程,由于第一个或者最后一个线程的处理速度最快,因此选择第一个或者最后一个线程可以不影响整体数据加载效率。
基于此,在计算每个线程对应的处理条目信息时,可以先根据线程数量信息和全局数据条目信息计算每个线程对应的初始处理条目信息;此时若根据每个线程对应的初始处理条目信息和全局数据条目信息确定存在剩余条目信息的情况下,为了能够使得剩余条目信息也被处理,可以在线程集合中选择目标线程,并基于目标线程对应的初始处理条目信息和剩余条目信息确定目标线程对应的处理条目信息;同时将线程集合中除目标线程外的关联线程对应的初始处理条目信息,作为每个关联线程对应的处理条目信息即可。也就是说,当存在剩余条目信息时,可以将其分配给线程集合中的目标线程,从而确保待加载数据表中的数据都能够被加载到内存。
沿用上例,在m=10005的情况下,可以先确定线程集合中包含的线程数量n=10,通过计算确定每个线程对应的处理条目信息为1000;并且还剩余5个条目,而为了能够确保全部数据都能够被线程扫描并加载,可以将剩余的5个条目分配给线程集合中的T1线程,因此确定线程集合中的T1线程对应的处理条目信息为1005,剩余线程T2~T10分别对应的处理条目信息为1000。进一步的,可以将线程T1~T10根据全局数据条目信息平均的分为A、B两组,且A包含线程A1~A5,B组包含线程B5~B1,由于线程集合包含T1~T10线程,因此确定A组包含的线程A1~A5对应线程集合中的线程T1~T5;B组包含的线程B5~B1对应线程集合中的线程T6~T10;且A组为正序线程组,B组为倒序线程组,方便后续结合组中包含的线程进行索引信息的扫描和数据的加载处理。其中,A组对应的总条目信息为5005,B组对应的总条目信息为5000。
实际应用中,在针对正序线程组和倒序线程组进行线程分配时,实则是针对正序线程组选择m/2个线程组成该正序线程组,且在m为奇数时可以向下取整;同理,针对倒序线程组选择m/2个线程组成该倒序线程组,且在m为奇数时可以向上取整,从而确保两个线程组包含所能够处理的数据量接近平均,以保证数据处理效率,节省更多的时间。
综上,若存在剩余条目信息,可以从线程集合中选择目标线程并将其分配给目标线程,从而确保线程在后续扫描索引信息以及加载数据时,不会出现遗漏的问题,且该数据量相较于每个线程所需要处理的数据量较小,所占用的计算资源也少,因此整体上并不会对处理效率产生影响。
步骤S206,利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描。
具体的,在上述将线程集合划分为正序线程组和倒序线程组后,进一步的,由于待加载数据表中记录的数据为各个线程需要加载的数据,但是由于每个线程的处理能力有限,且为了能够在有限的处理能力下,提高处理效率,线程可以并发完成数据加载处理。在此之前,考虑到并发处理需要确保各个线程加载数据不重叠才能够使得待加载数据表中记录的数据都被加载到内存,因此可以先利用正序线程组和倒序线程组中包含线程对待加载数据表中数据的索引信息进行扫描,以根据扫描结果确定每个线程所需要加载数据对应的索引信息,以方便后续可以按照自身对应的索引信息找到对应的数据进行加载处理。并且,由于待加载数据表中数据的索引信息在存储时已经具有排序关系,即每条数据对应的索引信息是按序排序在目标数据库的索引数据结构中的,因此正序线程组和倒序线程组可以对索引信息按序扫描。同时为了提高扫描效率,正序线程组中的正序线程可以针对索引信息进行正序扫描,即从头到尾进行扫描。而倒序线程组中的倒序线程可以针对索引信息进行倒序扫描,即从尾到头扫描,从而可以实现两组线程同步进行索引信息扫描的处理,以节省更多的索引信息扫描时间。
其中,索引信息具体是指待加载数据表中数据存储到目标数据库时对应的索引信息,索引信息与每条数据具有唯一对应关系,且按序排序在索引数据结构中,通过对索引信息进行扫描,能够确定每个线程所需要加载的数据部分,以避免数据加载重叠或者遗漏的问题发生。
实际应用中,为了能够确保在线程扫描索引信息时,可以保证在不需要额外数据库对象的同时,保证数据加载灵活性,可以结合待加载数据表的键值信息构建扫描使用的表达式,以实现后续线程可以按照表达式完成正序扫描和倒序扫描;本实施例中,具体实现方式如下:
确定所述待加载数据表的键值信息,并根据所述键值信息构建所述待加载数据表对应的索引列表达式和倒序表达式;
所述利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描,包括:利用所述正序线程组中的正序线程,按照所述索引列表达式对所述待加载数据表中数据的索引信息进行正序扫描;利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描。
具体的,键值信息具体是指待加载数据表中的主键或者一组高效的非空唯一键,相应的,索引列表达式具体是指插入SQL语句中能够进行正序扫描索引信息的表达式;相应的,倒序表达式具体是指插入SQL语句中能够进行倒序扫描索引信息的表达式。需要说明的是,在定义索引列表达式和倒序表达式时,实则是基于索引数据结构中记录的唯一索引信息进行构建的,且通过索引列表达式能够确定正序扫描索引的方式,以及根据倒序表达式能够确定倒序扫描索引的方式。
基于此,在利用正序线程组和倒序线程组对索引信息进行正序和倒序扫描时,由于正序线程组和倒序线程组是按照SQL语句进行索引信息的扫描后加载数据的处理,因此为了支持正序扫描和倒序扫描可以同时执行,可以先确定待加载数据表的键值信息,并根据键值信息构建待加载数据表对应的索引列表达式和倒序表达式;此后,即可利用正序线程组中的正序线程,按照索引列表达式对待加载数据表中数据的索引信息进行正序扫描;以及利用倒序线程组中的倒序线程,按照倒序表达式对待加载数据表中数据的索引信息进行倒序扫描。实现根据扫描结果确定每个线程对应的索引信息,方便在后续加载数据阶段,可以直接基于索引信息完成数据的加载处理。
实际应用中,在构建倒序表达式和索引列表达式时,可以自动的由目标数据库的索引数据结构表中的相关信息生成,即根据索引数据结构表中记录的索引信息自动生成表达索引信息正序排序的表达式,以及倒序排序的表达式,以方便正序线程组和倒序线程组使用。
综上,通过构建索引列表达式和倒序表达式,可以支持正序线程组和倒序线程组按照正序和倒序两个方向对索引信息进行扫描,从而有效地提高了索引信息扫描效率,从而节省更多的时间,加快数据加载速度。
进一步的,线程在按照表达式进行索引信息扫描时,实则是先加载目标数据库中数据对应的索引数据结构,之后从索引数据结构中提取索引信息组成具有排序关系的索引信息列表,之后通过对该列表进行扫描,以方便后续根据扫描件结果确定线程所需要加载的数据;本实施例中,具体实现方式如下:
在所述目标数据库中读取所述待加载数据表中数据对应的索引数据结构,在所述索引数据结构中提取索引信息列表,其中,所述索引信息列表中包含的索引信息按序排序;利用所述正序线程组中的正序线程,按照所述索引列表达式同步对所述索引信息列表中包含的索引信息进行正序扫描;利用所述倒序线程组中的倒序线程,按照所述倒序表达式同步对所述索引信息列表中包含的索引信息进行倒序扫描。
具体的,索引数据结构具体是指对目标数据库中的数据存储信息进行记录的数据结构,其记录的信息包括但不限于数据的索引信息,标识信息,类型信息等。相应的,索引信息列表具体是指待加载数据表中数据对应的索引信息组成的列表,该索引信息列表可以理解为双向链表结构,且该列表中记录的索引信息按序排序,从而能够支持线程从索引信息列表的两端向内进行扫描。
基于此,为了能够确保正序线程组中的正序线程和倒序线程组中的倒序线程,按序完成对索引信息的扫描,可以在目标数据库中读取待加载数据表中数据对应的索引数据结构,此后在索引数据结构中提取索引信息列表,且索引信息列表中包含的索引信息按序排序;以此为基础,即可利用正序线程组中的正序线程,按照索引列表达式同步对索引信息列表中包含的索引信息进行正序扫描;利用倒序线程组中的倒序线程,按照倒序表达式同步对索引信息列表中包含的索引信息进行倒序扫描。
也就是说,正序线程组中的正序线程在扫描索引信息时,实则是全部正序线程都从索引信息的头位置开始扫描,并且根据每个正序线程在正序线程组中的位置以及自身所对应的处理信息条目信息,确定其扫描后对应的索引信息,从而在正序线程组中的正序线程都确定自身对应的索引信息后,即可执行从待加载数据表中加载数据的操作。同理,倒序线程组中的倒序线程也采用相同处理策略,本实施例在此不作过多赘述。
更进一步的,线程在按照表达式对索引信息列表进行扫描时,实则是并行从线程对应的起始位置按序扫描,并在扫描到自身对应的停止位置后,停止对索引信息的扫描,而停止位置之前且对应自身的处理条目信息的索引信息即为其所需要加载数据对应的索引信息,因此可以按照自身对应的处理条目信息和停止位置确定其需要加载的数据。本实施例中,所述正序线程组中的任意一个正序线程对索引信息的扫描,包括:
利用目标正序线程按照所述索引列表达式从所述索引信息列表的表头位置进行正序扫描;在所述目标正序线程的扫描阶段,基于所述正序线程组中每个正序线程对应的处理条目信息、所述目标正序线程对应的处理条目信息以及所述目标正序线程在所述正序线程组中的线程排序信息,在所述索引信息列表中确定正序扫描停止位置;根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据。
具体的,目标正序线程具体是指正序线程组中的任意一个正序线程,相应的,表头位置具体是指索引信息列表中按序排序后的索引信息的首位置,正序扫描即为从首位置向尾位置进行扫描的操作。相应的,正序扫描停止位置具体是指目标正序线程自身对应的索引信息的末位置,基于正序扫描停止位置以及目标正序线程所能够处理的处理条目信息,可以确定目标正序线程所对应的索引信息区间,进而可以确定该线程命中的数据,以完成后续的数据加载处理。相应的,线程排序信息具体是指目标正序线程在正序线程组中的排序位置。
基于此,由于正序线程组中的正序线程是并发的从索引信息列表的头位置进行正序扫描的,因此每个正序线程所对应的停止位置需要基于自身在正序线程组中的位置,自身所对应的处理条目信息,以及该线程之前其他线程对应的处理条目信息才能够确定。因此针对任意一个目标正序线程,可以利用目标正序线程按照索引列表达式从索引信息列表的表头位置进行正序扫描;在目标正序线程的扫描过程中,可以基于正序线程组中每个正序线程对应的处理条目信息、目标正序线程对应的处理条目信息以及目标正序线程在所述正序线程组中的线程排序信息,在索引信息列表中确定正序扫描停止位置;也就是说,在目标正序线程扫描索引信息时,根据目标正序线程在正序线程组中的位置,以及此位置之前其他线程所对应的处理条目信息,可以确定目标正序线程所对应的索引信息区间的起始位置,再结合目标正序线程对应的处理条目信息,即可确定正序扫描停止位置,以此为基础,即可确定目标正序线程所对应的索引信息,即:根据目标正序线程对应的正序扫描停止位置和目标正序线程对应的处理条目信息,确定目标正序线程对应的目标正序数据。
本实施例中,所述倒序线程组中的任意一个倒序线程对索引信息的扫描,包括:
利用目标倒序线程按照所述倒序表达式从所述索引信息列表的表尾位置进行倒序扫描;在所述目标倒序线程的扫描阶段,基于所述倒序线程组中每个倒序线程对应的处理条目信息、所述目标倒序线程对应的处理条目信息以及所述目标倒序线程在所述倒序线程组中的线程排序信息,在所述索引信息列表中确定倒序扫描停止位置;根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据。
具体的,目标倒序线程具体是指倒序线程组中的任意一个倒序线程,相应的,表尾位置具体是指索引信息列表中按序排序后的索引信息的末位置,倒序扫描即为从末位置向头位置进行扫描的操作。相应的,倒序扫描停止位置具体是指目标倒序线程自身对应的索引信息的末位置,且该末位置是相对倒序扫描的末位置,即从后往前扫描后确定的位置。基于倒序扫描停止位置以及目标倒序线程所能够处理的处理条目信息,可以确定目标倒序线程所对应的索引信息区间,进而可以确定该线程命中的数据,以完成后续的数据加载处理。相应的,线程排序信息具体是指目标倒序线程在倒序线程组中的排序位置。
基于此,由于倒序线程组中的倒序线程时并发的从索引信息列表的尾位置进行倒序扫描的,因此每个倒序线程所对应的停止位置需要基于自身在倒序线程组中的位置,自身所对应的处理条目信息,以及该线程之前其他线程对应的处理条目信息才能够确定。因此针对任意一个目标倒序线程,可以利用目标倒序线程按照倒序表达式从所述索引信息列表的表尾位置进行倒序扫描;在目标倒序线程的扫描过程中,可以基于倒序线程组中每个倒序线程对应的处理条目信息、目标倒序线程对应的处理条目信息以及目标倒序线程在倒序线程组中的线程排序信息,在索引信息列表中确定倒序扫描停止位置;也就是说,在目标倒序线程扫描索引信息时,根据目标倒序线程在倒序线程组中的位置,以及此位置之前其他线程所对应的处理条目信息,可以确定目标倒序线程所对应的索引信息区间的起始位置,再结合目标倒序线程对应的处理条目信息,即可确定倒序扫描停止位置,以此为基础,即可确定目标倒序线程所对应的索引信息。即:根据目标倒序线程对应的倒序扫描停止位置和目标倒序线程对应的处理条目信息,确定目标倒序线程对应的目标倒序数据。
需要说明的是,由于目标倒序线程是从索引信息列表的尾位置向头位置进行扫描的处理,因此其对应的倒序扫描停止位置也是相对于该扫描顺序确定的,其与正序线程组扫描的过程相反。
沿用上例,在数据库D中读取待加载数据表中数据对应的索引数据结构,并根据索引数据结构中记录的索引信息构建出索引列表达式D1,以及倒序表达式D2;此后可以利用A组中包含的线程A1~A5,按照索引列表达式D1对索引信息进行正序扫描,以及利用B组中包含的线程B5~B1,按照倒序表达式D2对索引信息进行倒序扫描。
进一步的,A组中包含的线程A1~A5此时将按照表达式D1从索引信息的头位置开始同步扫描,根据每个线程对应的处理条目信息,以及自身在A组中的排列顺序,确定线程A1对应第1条至第1005条;线程A2对应第1006条至第2005条;线程A3对应第2006条至第3005条;线程A4对应第3006条至第4005条;线程A5对应第4006条至第5005条。同理,B组中包含的线程B5~B1此时将按照表达式D2从索引信息的尾位置开始同步扫描,根据每个线程对应的处理条目信息,以及自身在B组中的排列顺序,确定线程B1对应第10005条至9006条;线程B2对应第9005条至8006条;B3对应第8005条至7006条;B4对应第7005条至6006条;B5对应第6005条至5006条。在确定每个线程对应的索引信息后,后续各个线程即可按照自身对应的索引信息加载数据到内存。
综上,通过结合多维度信息确定线程对应的扫描停止位置,可以确保各个线程能够精准的定位自身对应的索引信息区间,以此为基础可以确保自身对应数据的精准度,从而提高数据加载效率的同时,可以避免数据遗漏或者重叠加载的问题发生。
步骤S208,根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
具体的,在上述利用正序线程组和倒序线程组对待加载数据表中数据的索引信息进行扫描后,即可根据扫描结果确定每个线程对应的数据,此后各个正序线程和各个倒序线程即可按照自身对应的数据完成数据的加载,且由于各个线程具有单独的计算能力,因此可以并发完成数据加载,从而可以有效的提高数据加载效率。
进一步的,任意一个线程对应的待加载数据实则是在扫描索引信息后,根据扫描结果确定自身对应的索引信息区间,之后从待加载数据表中确定索引信息区间对应的数据,即为自身需要加载的数据,本实施例中,所述根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据,包括:
根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,在所述索引信息列表中确定所述目标正序线程对应的正序索引信息区间;根据所述正序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标正序线程对应的目标正序数据。
本实施例中,所述根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据,包括:
根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,在所述索引信息列表中确定所述目标倒序线程对应的倒序索引信息区间;根据所述倒序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标倒序线程对应的目标倒序数据。
具体的,正序索引信息区间具体是指目标正序线程所对应的索引信息组成的集合;相应的,倒序索引信息区间具体是指目标倒序线程所对应的索引信息组成的集合;相应的,待加载数据即为待加载数据表中对应索引信息区间中包含索引信息的数据,且这部分数据需要由所属的线程加载至内存。
基于此,在目标正序线程和目标倒序线程通过扫描索引信息列表后,此时即可根据目标正序线程对应的正序扫描停止位置和目标正序线程对应的处理条目信息,在索引信息列表中确定目标正序线程对应的正序索引信息区间;同时,根据目标倒序线程对应的倒序扫描停止位置和目标倒序线程对应的处理条目信息,在索引信息列表中确定所述目标倒序线程对应的倒序索引信息区间;在确定线程对应的索引信息区间后,即可按照索引信息在待加载数据表中读取数据,也就是说,可以根据正序索引信息区间中记录的索引信息在待加载数据表中确定待加载数据,作为目标正序线程对应的目标正序数据。同理,根据倒序索引信息区间中记录的索引信息在待加载数据表中确定待加载数据,作为目标倒序线程对应的目标倒序数据,最后,各个线程即可将自身对应的数据加载至内存供前端业务使用。
沿用上例,在确定A组中各个线程对应的索引信息,以及B组中各个线程对应的索引信息后;对应A组中线程A1~A5以及B组中B1~B5的线程T1~T10,即可按照自身对应的索引信息并发加载索引信息对应的数据,并将数据加载到内存后,支持程序A运行,从而实现程序A可以根据加载到的用户身份数据进行后续的业务服务。
本实施例提供的数据加载方法,为了能够提高数据加载效率的同时降低计算资源的消耗,可以先获取目标数据库中待加载数据表的全局数据条目信息,以实现在数据加载处理前就能够了解待加载数据表中需要加载的数据量。以此为基础,可以根据全局数据条目信息计算可用的线程集合中每个线程所能够处理的数据量,即处理条目信息,以确定每个线程在后续进行数据加载时所应该被分配的数据量。在确定每个线程对应的处理条目信息后,为了能够提高数据加载效率,可以根据处理条目信息将线程集合划分为正序线程组和倒序线程组,以实现利用正序线程组中的正序线程对待加载数据表中数据的索引信息进行正序扫描,以及利用倒序线程组中的倒序线程对待加载数据表中数据的索引信息进行倒序扫描;从而达到正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息从头到尾,以及从尾到头的并发扫描,以节省更多的索引信息扫描时间,实现根据扫描结果快速的确定每个线程所需要处理的数据,此后正序线程和倒序线程即可根据扫描结果对自身需要加载的数据进行并发加载处理,以达到快速完成数据加载的目的,同时也能够降低计算资源的消耗,确保在无需额外数据对象和第三方插件的帮助下,更为灵活地完成数据加载处理。
下述结合附图4以本申请提供的数据加载方法在跑批处理场景中的应用为例,对所述数据加载方法进行进一步说明。其中,图4示出了本申请一实施例提供的一种数据加载法的处理流程图,具体包括以下步骤:
步骤S402,响应于数据加载请求确定目标数据库,并在目标数据库中确定关联数据加载请求的数据表,作为待加载数据表。
步骤S404,确定待加载数据表的键值信息,并根据键值信息构建待加载数据表对应的索引列表达式和倒序表达式。
步骤S406,通过对待加载数据表进行遍历,获得待加载数据表的全局数据条目信息。
步骤S408,获取线程集合中线程的线程数量信息,并根据线程数量信息和全局数据条目信息计算每个线程对应的处理条目信息。
具体的,根据线程数量信息和全局数据条目信息计算每个线程对应的初始处理条目信息;根据每个线程对应的初始处理条目信息和全局数据条目信息确定剩余条目信息;在线程集合中选择目标线程,并基于目标线程对应的初始处理条目信息和剩余条目信息确定目标线程对应的处理条目信息;将线程集合中除目标线程外的关联线程对应的初始处理条目信息,作为每个关联线程对应的处理条目信息。
步骤S410,按照每个线程对应的处理条目信息计算正序条目信息和倒序条目信息。
步骤S412,基于正序条目信息在线程集合中选择正序线程组成正序线程组,以及基于倒序条目信息在线程集合中选择倒序线程组成倒序线程组。
步骤S414,利用正序线程组中的正序线程,按照索引列表达式对待加载数据表中数据的索引信息进行正序扫描。
步骤S416,利用倒序线程组中的倒序线程,按照倒序表达式对待加载数据表中数据的索引信息进行倒序扫描。
步骤S418,根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
本实施例提供的数据加载方法,为了能够提高数据加载效率的同时降低计算资源的消耗,可以先获取目标数据库中待加载数据表的全局数据条目信息,以实现在数据加载处理前就能够了解待加载数据表中需要加载的数据量。以此为基础,可以根据全局数据条目信息计算可用的线程集合中每个线程所能够处理的数据量,即处理条目信息,以确定每个线程在后续进行数据加载时所应该被分配的数据量。在确定每个线程对应的处理条目信息后,为了能够提高数据加载效率,可以根据处理条目信息将线程集合划分为正序线程组和倒序线程组,以实现利用正序线程组中的正序线程对待加载数据表中数据的索引信息进行正序扫描,以及利用倒序线程组中的倒序线程对待加载数据表中数据的索引信息进行倒序扫描;从而达到正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息从头到尾,以及从尾到头的并发扫描,以节省更多的索引信息扫描时间,实现根据扫描结果快速的确定每个线程所需要处理的数据,此后正序线程和倒序线程即可根据扫描结果对自身需要加载的数据进行并发加载处理,以达到快速完成数据加载的目的,同时也能够降低计算资源的消耗,确保在无需额外数据对象和第三方插件的帮助下,更为灵活地完成数据加载处理。
与上述方法实施例相对应,本申请还提供了数据加载装置实施例,图5示出了本申请一实施例提供的一种数据加载装置的结构示意图。如图5所示,该装置包括:
获取模块502,被配置为获取目标数据库中待加载数据表的全局数据条目信息;
计算模块504,被配置为根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;
扫描模块506,被配置为利用所述正序线程组中的正序线程对所述待加载数据表中数据的索引信息进行正序扫描,以及利用所述倒序线程组中的倒序线程对所述待加载数据表中数据的索引信息进行倒序扫描;
加载模块508,被配置为根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
一个可选的实施例中,所述获取模块502进一步被配置为:
响应于数据加载请求确定目标数据库,并在所述目标数据库中确定关联所述数据加载请求的数据表,作为待加载数据表;通过并行扫描所述待加载数据表的键信息,获得所述待加载数据表的全局数据条目信息。
一个可选的实施例中,所述装置还包括:
确定表达式模块,被配置为确定所述待加载数据表的键值信息,并根据所述键值信息构建所述待加载数据表对应的索引列表达式和倒序表达式;
所述扫描模块506进一步被配置为:
利用所述正序线程组中的正序线程,按照所述索引列表达式对所述待加载数据表中数据的索引信息进行正序扫描;利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描。
一个可选的实施例中,所述计算模块504进一步被配置为:
获取线程集合中线程的线程数量信息,并根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的处理条目信息;按照每个线程对应的处理条目信息计算正序条目信息和倒序条目信息;基于所述正序条目信息在所述线程集合中选择正序线程组成正序线程组,以及基于所述倒序条目信息在所述线程集合中选择倒序线程组成倒序线程组。
一个可选的实施例中,所述计算模块504进一步被配置为:
根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的初始处理条目信息;根据每个线程对应的初始处理条目信息和所述全局数据条目信息确定剩余条目信息;在所述线程集合中选择目标线程,并基于所述目标线程对应的初始处理条目信息和所述剩余条目信息确定所述目标线程对应的处理条目信息;将所述线程集合中除所述目标线程外的关联线程对应的初始处理条目信息,作为每个关联线程对应的处理条目信息。
一个可选的实施例中,所述扫描模块506进一步被配置为:
在所述目标数据库中读取所述待加载数据表中数据对应的索引数据结构,在所述索引数据结构中提取索引信息列表,其中,所述索引信息列表中包含的索引信息按序排序;利用所述正序线程组中的正序线程,按照所述索引列表达式同步对所述索引信息列表中包含的索引信息进行正序扫描;所述利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描,包括:利用所述倒序线程组中的倒序线程,按照所述倒序表达式同步对所述索引信息列表中包含的索引信息进行倒序扫描。
一个可选的实施例中,所述正序线程组中的任意一个正序线程对索引信息的扫描,包括:
利用目标正序线程按照所述索引列表达式从所述索引信息列表的表头位置进行正序扫描;在所述目标正序线程的扫描阶段,基于所述正序线程组中每个正序线程对应的处理条目信息、所述目标正序线程对应的处理条目信息以及所述目标正序线程在所述正序线程组中的线程排序信息,在所述索引信息列表中确定正序扫描停止位置;所述目标正序线程对应的数据的确定,包括:根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据。
一个可选的实施例中,所述根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据,包括:根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,在所述索引信息列表中确定所述目标正序线程对应的正序索引信息区间;根据所述正序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标正序线程对应的目标正序数据。
一个可选的实施例中,所述倒序线程组中的任意一个倒序线程对索引信息的扫描,包括:
利用目标倒序线程按照所述倒序表达式从所述索引信息列表的表尾位置进行倒序扫描;在所述目标倒序线程的扫描阶段,基于所述倒序线程组中每个倒序线程对应的处理条目信息、所述目标倒序线程对应的处理条目信息以及所述目标倒序线程在所述倒序线程组中的线程排序信息,在所述索引信息列表中确定倒序扫描停止位置;所述目标倒序线程对应的数据的确定,包括:根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据。
一个可选的实施例中,所述根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据,包括:根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,在所述索引信息列表中确定所述目标倒序线程对应的倒序索引信息区间;根据所述倒序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标倒序线程对应的目标倒序数据。
本实施例提供的数据加载装置,为了能够提高数据加载效率的同时降低计算资源的消耗,可以先获取目标数据库中待加载数据表的全局数据条目信息,以实现在数据加载处理前就能够了解待加载数据表中需要加载的数据量。以此为基础,可以根据全局数据条目信息计算可用的线程集合中每个线程所能够处理的数据量,即处理条目信息,以确定每个线程在后续进行数据加载时所应该被分配的数据量。在确定每个线程对应的处理条目信息后,为了能够提高数据加载效率,可以根据处理条目信息将线程集合划分为正序线程组和倒序线程组,以实现利用正序线程组中的正序线程对待加载数据表中数据的索引信息进行正序扫描,以及利用倒序线程组中的倒序线程对待加载数据表中数据的索引信息进行倒序扫描;从而达到正序线程组和倒序线程组可以同时对待加载数据表中数据的索引信息从头到尾,以及从尾到头的并发扫描,以节省更多的索引信息扫描时间,实现根据扫描结果快速的确定每个线程所需要处理的数据,此后正序线程和倒序线程即可根据扫描结果对自身需要加载的数据进行并发加载处理,以达到快速完成数据加载的目的,同时也能够降低计算资源的消耗,确保在无需额外数据对象和第三方插件的帮助下,更为灵活地完成数据加载处理。
上述为本实施例的一种数据加载装置的示意性方案。需要说明的是,该数据加载装置的技术方案与上述的数据加载方法的技术方案属于同一构思,数据加载装置的技术方案未详细描述的细节内容,均可以参见上述数据加载方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
图6示出了根据本申请一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行所述数据加载方法的计算机可执行指令。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据加载方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据加载方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于数据加载方法。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据加载方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据加载方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地域,根据专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种数据加载方法,其特征在于,包括:
获取目标数据库中待加载数据表的全局数据条目信息;
根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;
确定所述待加载数据表的键值信息,并根据所述键值信息构建所述待加载数据表对应的索引列表达式和倒序表达式;利用所述正序线程组中的正序线程,按照所述索引列表达式对所述待加载数据表中数据的索引信息进行正序扫描;利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描;
根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
2.根据权利要求1所述的数据加载方法,其特征在于,所述获取目标数据库中待加载数据表的全局数据条目信息,包括:
响应于数据加载请求确定目标数据库,并在所述目标数据库中确定关联所述数据加载请求的数据表,作为待加载数据表;
通过并行扫描所述待加载数据表的键信息,获得所述待加载数据表的全局数据条目信息。
3.根据权利要求1所述的数据加载方法,其特征在于,所述根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组,包括:
获取线程集合中线程的线程数量信息,并根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的处理条目信息;
按照每个线程对应的处理条目信息计算正序条目信息和倒序条目信息;
基于所述正序条目信息在所述线程集合中选择正序线程组成正序线程组,以及基于所述倒序条目信息在所述线程集合中选择倒序线程组成倒序线程组。
4.根据权利要求3所述的数据加载方法,其特征在于,所述根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的处理条目信息,包括:
根据所述线程数量信息和所述全局数据条目信息计算每个线程对应的初始处理条目信息;
根据每个线程对应的初始处理条目信息和所述全局数据条目信息确定剩余条目信息;
在所述线程集合中选择目标线程,并基于所述目标线程对应的初始处理条目信息和所述剩余条目信息确定所述目标线程对应的处理条目信息;
将所述线程集合中除所述目标线程外的关联线程对应的初始处理条目信息,作为每个关联线程对应的处理条目信息。
5.根据权利要求1所述的数据加载方法,其特征在于,所述利用所述正序线程组中的正序线程,按照所述索引列表达式对所述待加载数据表中数据的索引信息进行正序扫描,包括:
在所述目标数据库中读取所述待加载数据表中数据对应的索引数据结构,在所述索引数据结构中提取索引信息列表,其中,所述索引信息列表中包含的索引信息按序排序;
利用所述正序线程组中的正序线程,按照所述索引列表达式同步对所述索引信息列表中包含的索引信息进行正序扫描;
所述利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描,包括:
利用所述倒序线程组中的倒序线程,按照所述倒序表达式同步对所述索引信息列表中包含的索引信息进行倒序扫描。
6.根据权利要求5所述的数据加载方法,其特征在于,所述正序线程组中的任意一个正序线程对索引信息的扫描,包括:
利用目标正序线程按照所述索引列表达式从所述索引信息列表的表头位置进行正序扫描;
在所述目标正序线程的扫描阶段,基于所述正序线程组中每个正序线程对应的处理条目信息、所述目标正序线程对应的处理条目信息以及所述目标正序线程在所述正序线程组中的线程排序信息,在所述索引信息列表中确定正序扫描停止位置;
所述目标正序线程对应的数据的确定,包括:
根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据。
7.根据权利要求6所述的数据加载方法,其特征在于,所述根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,确定所述目标正序线程对应的目标正序数据,包括:
根据所述目标正序线程对应的所述正序扫描停止位置和所述目标正序线程对应的处理条目信息,在所述索引信息列表中确定所述目标正序线程对应的正序索引信息区间;
根据所述正序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标正序线程对应的目标正序数据。
8.根据权利要求5所述的数据加载方法,其特征在于,所述倒序线程组中的任意一个倒序线程对索引信息的扫描,包括:
利用目标倒序线程按照所述倒序表达式从所述索引信息列表的表尾位置进行倒序扫描;
在所述目标倒序线程的扫描阶段,基于所述倒序线程组中每个倒序线程对应的处理条目信息、所述目标倒序线程对应的处理条目信息以及所述目标倒序线程在所述倒序线程组中的线程排序信息,在所述索引信息列表中确定倒序扫描停止位置;
所述目标倒序线程对应的数据的确定,包括:
根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据。
9.根据权利要求8所述的数据加载方法,其特征在于,所述根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,确定所述目标倒序线程对应的目标倒序数据,包括:
根据所述目标倒序线程对应的所述倒序扫描停止位置和所述目标倒序线程对应的处理条目信息,在所述索引信息列表中确定所述目标倒序线程对应的倒序索引信息区间;
根据所述倒序索引信息区间中记录的索引信息在所述待加载数据表中确定待加载数据,作为所述目标倒序线程对应的目标倒序数据。
10.一种数据加载装置,其特征在于,包括:
获取模块,被配置为获取目标数据库中待加载数据表的全局数据条目信息;
计算模块,被配置为根据所述全局数据条目信息计算线程集合中每个线程对应的处理条目信息,并按照所述处理条目信息将所述线程集合划分为正序线程组和倒序线程组;
扫描模块,被配置为确定所述待加载数据表的键值信息,并根据所述键值信息构建所述待加载数据表对应的索引列表达式和倒序表达式;利用所述正序线程组中的正序线程,按照所述索引列表达式对所述待加载数据表中数据的索引信息进行正序扫描;利用所述倒序线程组中的倒序线程,按照所述倒序表达式对所述待加载数据表中数据的索引信息进行倒序扫描;
加载模块,被配置为根据扫描结果确定每个正序线程对应的数据并加载,以及每个倒序线程对应的数据并加载,其中,各个正序线程和各个倒序线程并发加载数据。
11.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现权利要求1至9任意一项所述方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至9任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410014994.6A CN117519839B (zh) | 2024-01-05 | 2024-01-05 | 数据加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410014994.6A CN117519839B (zh) | 2024-01-05 | 2024-01-05 | 数据加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117519839A CN117519839A (zh) | 2024-02-06 |
CN117519839B true CN117519839B (zh) | 2024-04-16 |
Family
ID=89748093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410014994.6A Active CN117519839B (zh) | 2024-01-05 | 2024-01-05 | 数据加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519839B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902702A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN108388569A (zh) * | 2018-01-09 | 2018-08-10 | 杭州电子科技大学 | 一种快速的键值数据库的系统及建立方法 |
CN109964203A (zh) * | 2016-11-14 | 2019-07-02 | 谷歌有限责任公司 | 数据并行计算设备的排序 |
CN112306959A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种移动存储设备的文件扫描方法、存储介质及设备终端 |
CN113608765A (zh) * | 2021-08-05 | 2021-11-05 | 北京华云安信息技术有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN113874852A (zh) * | 2019-05-23 | 2021-12-31 | 国际商业机器公司 | 用于在多主混合事务和分析处理系统中演进大规模数据集的索引 |
CN116521816A (zh) * | 2023-04-26 | 2023-08-01 | 北京百度网讯科技有限公司 | 一种数据处理方法、检索方法、装置、设备以及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691690B2 (en) * | 2017-10-31 | 2020-06-23 | International Business Machines Corporation | Helper scan in a database management system |
-
2024
- 2024-01-05 CN CN202410014994.6A patent/CN117519839B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902702A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
CN109964203A (zh) * | 2016-11-14 | 2019-07-02 | 谷歌有限责任公司 | 数据并行计算设备的排序 |
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN108388569A (zh) * | 2018-01-09 | 2018-08-10 | 杭州电子科技大学 | 一种快速的键值数据库的系统及建立方法 |
CN113874852A (zh) * | 2019-05-23 | 2021-12-31 | 国际商业机器公司 | 用于在多主混合事务和分析处理系统中演进大规模数据集的索引 |
CN112306959A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种移动存储设备的文件扫描方法、存储介质及设备终端 |
CN113608765A (zh) * | 2021-08-05 | 2021-11-05 | 北京华云安信息技术有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN116521816A (zh) * | 2023-04-26 | 2023-08-01 | 北京百度网讯科技有限公司 | 一种数据处理方法、检索方法、装置、设备以及存储介质 |
Non-Patent Citations (3)
Title |
---|
TagTree: Global Tagging Index with Efficient Querying for Time Series Databases;Jin Xue等;《2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS)》;20220715;全文 * |
基于多任务异步处理的电力系统序网络拓扑分析;郭敏;周亮;王中庆;王宇鹏;白懿鹏;吕飞鹏;;电测与仪表;20160310(05);全文 * |
服务端存储优化技术的研究与实现;路明;《中国优秀硕士学位论文全文数据库 信息科技辑》;20200715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117519839A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407311B (zh) | 获取搜索结果的方法和装置 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
US5845113A (en) | Method for external sorting in shared-nothing parallel architectures | |
CN108197296A (zh) | 基于Elasticsearch索引的数据存储方法 | |
CN107562851B (zh) | 一种数据的更新方法、装置及电子设备 | |
US20230082563A1 (en) | Data processing method and data processing apparatus | |
CN111475584B (zh) | 数据处理方法、系统以及装置 | |
CN110134681A (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
CN114253553A (zh) | 数据处理方法及装置 | |
CN113297269A (zh) | 数据查询方法及装置 | |
CN116166690A (zh) | 一种面向高并发场景的混合向量检索方法及装置 | |
CN117519839B (zh) | 数据加载方法及装置 | |
CN108182200A (zh) | 基于语义相似度的关键词拓展方法和装置 | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
CN111625600B (zh) | 数据存储的处理方法、系统、计算机设备及存储介质 | |
CN114138840A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN112417264B (zh) | 一种信息搜索的方法及装置 | |
CN111723092A (zh) | 数据处理方法及装置 | |
CN116361287A (zh) | 路径解析方法、装置以及系统 | |
CN113448739B (zh) | 一种数据处理方法及装置 | |
US20210149960A1 (en) | Graph Data Storage Method, System and Electronic Device | |
CN112162986B (zh) | 一种并行top-k范围skyline查询方法和系统 | |
JP2019121333A (ja) | データダイナミックマイグレーション方法とデータダイナミックマイグレーション装置 | |
CN114691630A (zh) | 一种智慧供应链大数据共享方法及系统 | |
CN105550765B (zh) | 一种路网距离计算中的代表元选取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |