CN115994145B - 一种处理数据的方法和装置 - Google Patents
一种处理数据的方法和装置 Download PDFInfo
- Publication number
- CN115994145B CN115994145B CN202310111816.0A CN202310111816A CN115994145B CN 115994145 B CN115994145 B CN 115994145B CN 202310111816 A CN202310111816 A CN 202310111816A CN 115994145 B CN115994145 B CN 115994145B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- node
- index tree
- nodes
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 59
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种处理数据的方法和装置,涉及大数据技术领域。该方法的一具体实施方式包括:能够响应于数据处理请求,从预先设置的多种类型的索引树中,确定与数据包含的索引字段匹配的索引树,其中每一种索引树存储于堆外内存中,索引树中各个节点的节点信息包括自身节点信息以及关联节点;根据所述索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;通过目标节点定位数据源中的数据并对定位到的数据进行处理。本发明的实施例提高了数据处理的稳定性和效率,提升了用户体验。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种处理数据的方法和装置。
背景技术
目前大数据技术广泛应用于互联网应用中,随着互联网应用包含的业务类型越多越多、越来越复杂,对数据处理的复杂度的要求也越来越高。
现有技术中主要是基于SQL语句从数据源中直接查询或处理数据,当高频访问数据时,由于网络时延会导致性能损耗较大;在将数据放入到本地内存中时,数据量过大会可能影响应用的垃圾回收导致性能衰退,并且,通常使用的key-value数据访问方式也难以满足用户的多元化数据访问需求,影响了用户体验。
发明内容
有鉴于此,本发明实施例提供一种处理数据的方法和装置,能够响应于数据处理请求,从预先设置的多种类型的索引树中,确定与数据包含的索引字段匹配的索引树,其中每一种索引树存储于堆外内存中,索引树中各个节点的节点信息包括自身节点信息以及关联节点;根据所述索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;通过目标节点定位数据源中的数据并对定位到的数据进行处理。本发明的实施例提高了数据处理的稳定性和效率,提升了用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理数据的方法,其特征在于,包括:响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段的字段值;所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理。
可选地,所述处理数据的方法,包括:确定用户定义的索引类型,其中,所述索引类型包括有一个或多个索引字段;从所述数据源中获取所述索引类型包括的一个或多个所述索引字段的字段值;利用获取到的一个或多个所述索引字段的字段值构建索引树。
可选地,所述处理数据的方法,还包括:从所述数据源中获取数据的主键;所述利用获取到的一个或多个所述索引字段的字段值构建索引树,包括:利用获取到的一个或多个所述索引字段的字段值以及所述主键的主键键值作为索引树的节点,构建索引树。
可选地,所述构建索引树,进一步包括:在堆外内存中获取存储所述索引树的内存空间;针对所述索引树包含的每一个节点,执行:从所述内存空间中获取存储所述节点的存储块;利用所述存储块存储所述节点的节点信息,所述节点信息包含自身节点信息,以及所述索引树的数据结构中与所述节点具有关联关系的关联节点。
可选地,所述处理数据的方法,进一步包括:接收一条新增数据,其中,所述新增数据包含的主键键值未存在于所述数据源中;针对所述新增数据,执行下述操作:将所述新增数据添加至所述数据源;从所述新增数据中解析出一个或多个索引字段,并将所述新增数据对应发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述新增数据,并在所述第二索引树中增加对应于所述新增数据的节点,其中,各个所述第二索引树基于新增的所述节点执行排序。
可选地,所述处理数据的方法,进一步包括:
接收一条新增数据,其中,所述新增数据包含的主键键值已存在于所述数据源中;针对所述新增数据,执行下述操作:将所述新增数据替换所述数据源中匹配于所述主键键值的原有数据;从所述新增数据中解析出一个或多个索引字段,并将被替换的原有数据、以及所述新增数据发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述被替换的原有数据以及所述新增数据,在所述第二索引树中删除原有数据对应的节点,并增加对应于所述新增数据的节点,其中,各个所述第二索引树基于删除原有数据对应的节点、以及新增的所述节点分别执行排序。
可选地,所述处理数据的方法,还包括:利用第一计数器记录所述数据源中更新数据到消息队列的次数,利用第二计数器累加记录各个所述第二索引树根据所述消息队列完成更新所述第二索引树中的节点的次数;判断所述第一计数器与索引字段总数的乘积是否与所述第二计数器相等,如果是,确定所述数据源对应的各个索引树处于就绪状态。
可选地,所述处理数据的方法,进一步包括:在判断出所述第一计数器与索引字段总数的乘积与所述第二计数器不相等的情况下,阻塞针对所述新增数据的数据查询请求,直到所述第二计数器的记录值与所述第一计数器的记录值相等。
可选地,所述利用查找到的一个或多个所述目标节点,定位数据源中的数据,包括:获取所述目标节点的节点值,从所述节点值中解析出主键对应的键值,根据所述键值从所述数据源中查询,得到所述数据处理请求所查询的数据。
为实现上述目的,根据本发明实施例的第二方面,提供了一种处理数据的装置,其特征在于,包括:确定索引树模块、定位节点模块和处理数据模块;其中,
所述确定索引树模块,用于响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段或者同一种索引字段组合的字段值;所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;
所述定位节点模块,用于根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;
所述处理数据模块,用于利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理。
可选地,所述处理数据的装置,用于确定用户定义的索引类型,其中,所述索引类型包括有一个或多个索引字段;从所述数据源中获取所述索引类型包括的一个或多个所述索引字段的字段值;利用获取到的一个或多个所述索引字段的字段值构建索引树。
可选地,所述处理数据的装置,还用于从所述数据源中获取数据的主键;所述利用获取到的一个或多个所述索引字段的字段值构建索引树,包括:利用获取到的一个或多个所述索引字段的字段值以及所述主键的主键键值作为索引树的节点,构建索引树。
可选地,所述处理数据的装置,进一步用于在堆外内存中获取存储所述索引树的内存空间;针对所述索引树包含的每一个节点,执行:从所述内存空间中获取存储所述节点的存储块;利用所述存储块存储所述节点的节点信息,所述节点信息包含自身节点信息,以及所述索引树的数据结构中与所述节点具有关联关系的关联节点。
可选地,所述处理数据的装置,进一步用于接收一条新增数据,其中,所述新增数据包含的主键键值未存在于所述数据源中;针对所述新增数据,执行下述操作:将所述新增数据添加至所述数据源;从所述新增数据中解析出一个或多个索引字段,并将所述新增数据对应发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述新增数据,并在所述第二索引树中增加对应于所述新增数据的节点,其中,各个所述第二索引树基于新增的所述节点执行排序。
可选地,所述处理数据的装置,进一步用于接收一条新增数据,其中,所述新增数据包含的主键键值已存在于所述数据源中;针对所述新增数据,执行下述操作:将所述新增数据替换所述数据源中匹配于所述主键键值的原有数据;从所述新增数据中解析出一个或多个索引字段,并将被替换的原有数据、以及所述新增数据发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述被替换的原有数据以及所述新增数据,并在所述第二索引树中删除原有数据对应的节点,并增加对应于所述新增数据的节点,其中,各个所述第二索引树基于删除原有数据对应的节点、以及新增的所述节点分别执行排序。
可选地,所述处理数据的装置,进一步用于利用第一计数器记录所述数据源中更新数据到消息队列的次数,利用第二计数器累加记录各个所述第二索引树根据所述消息队列完成更新所述第二索引树中的节点的次数;判断所述第一计数器与索引字段总数的乘积是否与所述第二计数器相等,如果是,确定所述数据源对应的各个索引树处于就绪状态。
可选地,所述处理数据的装置,用于在判断出所述第一计数器与索引字段总数的乘积与所述第二计数器不相等的情况下,阻塞针对所述新增数据的数据查询请求,直到所述第二计数器的记录值与所述第一计数器的记录值相等。
可选地,所述处理数据的装置,用于利用查找到的一个或多个所述目标节点,定位数据源中的数据,包括:获取所述目标节点的节点值,从所述节点值中解析出主键对应的键值,根据所述键值从所述数据源中查询,得到所述数据处理请求所查询的数据。
为实现上述目的,根据本发明实施例的第三方面,提供了一种处理数据的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述处理数据的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述处理数据的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够响应于数据处理请求,从预先设置的多种类型的索引树中,确定与数据包含的索引字段匹配的索引树,其中每一种索引树存储于堆外内存中,索引树中各个节点的节点信息包括自身节点信息以及关联节点;根据所述索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;并通过目标节点定位数据源中的数据,并对定位到的数据进行处理。本发明的实施例提高了数据处理的稳定性和数据处理的效率,提升了用户体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例提供的一种处理数据的方法的流程示意图;
图2是本发明一个实施例提供的一种处理新增数据的流程示意图;
图3是本发明一个实施例提供的一种索引树的结构示意图;
图4是本发明一个实施例提供的一种处理数据的装置的结构示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种处理数据的方法,该方法可以包括以下步骤:
步骤S101:响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段的字段值。
具体地,根据用户对数据的应用场景,可以为数据包含的一个字段或多个字段设置索引:例如数据对象为Test,其数据结构如下所示,包含field1、field2、field3、field4等字段;
public class Test{
String field1,
String field2,
String field3,
String field4,}
示例性地,对应于Test的具体数据为:Test{“1”,“2”,“3”,“4”},Test{“A”,“B”,“C”,“D”},Test{“Q”,“W”,“E”,“R”}等;可以理解的是,Test的结构仅为示例,在实际应用场景中,字段的数量较大,数据的数量级也较大。本发明对待处理数据的数据结构、数据数量、数据内容不做限定。
进一步地,可以根据用户需求,基于字段创建多种索引以利用索引提高数据的查询效率,其中,多种索引之间为相互独立的;每一种索引类型可以包含多个字段:例如:field1作为索引字段是一种索引类型、field3和field4两个索引字段结合为另一种索引类型、field3与field1两个索引字段结合为另一种索引类型等;进一步地,每一种索引类型对应设置有对应类型的索引树;即预先设置有多种类型的索引树;在处理数据请求时,根据数据请求指示的索引字段,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树;例如:数据处理请求指示的索引字段为“field1”,则从预先设置的多种类型的索引树中,确定与“field1”匹配的第一索引树。
在本发明的一个实施例中,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树;确定出数据处理请求指示了索引字段的方法可以通过查询数据源的数据字典,确定是否查询请求包含的一个或多个字段为索引字段,或者,利用数据查询请求中与索引相关的标识,直接指示一个或多个字段为索引字段;进一步类似地,在确定出数据处理请求中指示利用主键查询的情况下,从数据处理请求中解析出一个或多个主键,并利用主键以及数据处理请求包含的数据查询条件,直接从数据源查询和处理数据;其中,利用主键直接查询可以得到匹配的一条数据,利用索引字段查询可以得到一条或者多条数据。
进一步地,对于一个索引树来说,该索引树的每个节点所包含的索引字段的字段值归属的索引字段为同一种,可以理解的是,在一种索引字段为多个字段组合的情况下,该种类的索引字段对应的字段值为多个字段的字段值拼接而成。下面以多条Test数据为例说明,例如field1作为索引字段对应于一个索引树1,该索引树1的每一个节点包含field1对应的字段值,例如3个节点对应包含的节点值分别为“1”、“A”、“W”,即分别为field1字段的字段值;又例如对于多条Test数据,field3和field4结合作为索引字段对应于一个索引树2,该索引树2的每一个节点包含field3和field4对应的索引值的组合,例如3个节点对应包含的节点值分别为“3-4”、“C-D”、“Y-Z”等;即,每一种类型的索引树包括的节点包括有同一种索引字段的字段值。
由此可见,针对一个数据源(例如数据表、散列表等)中包含的索引字段的类型,可以对应设置有多个索引树,以通过不同类型的索引树存储不同种类的索引字段对应的字段值。优选地,所述索引树的数据结构为红黑树。其中,红黑树是是一种自平衡二叉查找树,其在进行数据节点的插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的数据查询性能。
数据源对应的一种或多种索引类型由用户根据应用场景自行设定;其中索引类型可以包含一个或多个索引字段,例如:field1作为索引字段是一种索引类型、field3和field4两个索引字段结合为另一种索引类型;进一步地,从所述数据源中获取数据的主键;所述利用获取到的一个或多个所述索引字段的字段值构建索引树,包括:利用获取到的一个或多个所述索引字段的字段值以及所述主键的主键键值作为索引树的节点,构建索引树。
进一步地,索引类型除了索引字段,还可以包含除索引字段以外的一个或多个主键字段;通过灵活设置索引类型,提高了处理数据的灵活性和效率。进一步地,在所述索引类型还包括有主键的情况下,获取所述主键的主键键值,并利用获取到的一个或多个所述索引字段的字段值以及所述主键的主键键值构建索引树。
在本发明的实施例中,构建索引树的方法可以是动态进行的,例如:基于一个空的索引树组件,随着每一条新增数据的处理等操作,数据源的数据发生变更,同时索引树也对应地进行变动更新。也可以基于遍历数据源中已经存在的数据,进行索引树的构建。在构建之后对应地进行新增数据、变更数据等数据处理。
以Test数据对象为例,假设主键字段为field1和field2组成的联合主键,索引字段为field3,则针对一条数据Test{“1”,“2”,“3”,“4”},构建索引树的节点的节点值为“3-1_2”;可以理解的是,节点值可以是通过拼接索引字段的字段值以及述主键的主键键值而得到,其中拼接的方法可以通过一种或多种符号,本发明的实施例所使用的“-”、“_”符号仅为示例。类似地,根据获取到的多条数据构建如图3所示的索引树示意图。可以理解的是,用户可以变更对索引类型,在确定用户定义的索引类型变更的情况下,对应地变更索引类型对应的索引树。
进一步地,为索引树从堆外内存申请内存空间以存储该索引树;其中,堆外内存(off-heap memory)与堆内内存相对应,堆外内存为内存对象分配在Java虚拟机的堆以外的内存;即,在堆外内存中获取存储所述索引树的内存空间;通常在利用Java开发应用的项目中,对于Java虚拟机来说分配非空对象一般就放到堆内内存,并且Java虚拟机会定期会进行垃圾回收;对于堆内内存来说,每次垃圾回收的影响与堆内内存的大小为正相关;如果大数据量存放在内存中,会导致Java虚拟机的垃圾回收策略工作发生异常而引起应用的性能急剧衰减;相对于堆内内存,堆外内存为Java虚拟机以外的内存,堆外内存由操作系统以及应用程序管理;相比于堆内内存,堆外内存具有减少Java虚拟机垃圾回收、加快数据复制的速度。本发明的实施例可以针对Java应用利用堆外内存对一个或多个索引树进行内存管理,使得应用以稳定的处理效率来运行。提高了处理数据的稳定性,进一步提高了处理数据(数据查询、数据变更等)的效率。
可以理解的是,本发明的实施例将各个索引树(包括第一索引树、第二索引树)存储于堆外内存中,在存储时,需要保存索引树的整体结构,因此,首先为索引树从堆外内存中申请连续的内存空间,然后在这个内存空间中划分出多个存储块,利用每一个存储块存储索引树的节点的节点信息,并且在存储索引树的每一个节点到存储块时,除了存储节点对应的索引类型的值,还可以存储该节点对应的父节点、左右兄弟节点、当前节点颜色(红色或黑色等)、节点值长度、节点值(为由索引值、或索引值与主键值的组合等),通过存储每一个节点的自身节点信息以及关联节点(父节点、左右兄弟节点)从而存储了索引树的树状数据结构,即所述节点信息包含所述索引树的数据结构中与所述节点具有关联关系的关联节点。其中,节点值长度与节点值的长度相关,即节点值长度是可变的,因此存储节点的存储块的大小也可以是可变的。即,所述构建索引树,进一步包括:在堆外内存中获取存储所述索引树的内存空间;针对所述索引树包含的每一个节点,执行:从所述内存空间中获取存储所述节点的存储块;利用所述存储块存储所述节点的节点信息,所述节点信息包含自身节点信息,以及所述索引树的数据结构中与所述节点具有关联关系的关联节点。即,所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点。
步骤S102:根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点。
具体地,在进行数据查询时,根据接收到的数据请求中包含的查询条件包含的字段、字段值等,从对应的第一索引树中查找匹配于数据查询条件的目标节点。
以图3的示意图为例,假设数据查询请求中包含待处理的字段值包含的索引的字段值为“1”,则根据索引树的各个节点包含的索引的字段值,按照红黑树遍历节点的顺序,查找出匹配的三个目标节点“1-1_0”、“1-1_2”、“1-1_3”;即,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;可以理解的是,按照红黑树的顺序,在遍历节点时,在判断出节点的索引值大于1的情况下,可以确定是否结束遍历,即不需要遍历索引树的全部节点,从而提高了定位数据的效率。
步骤S103:利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理。
具体地,在定位出目标节点后,进一步根据目标节点定位数据源中的数据;仍以步骤S102的示例说明,假设查找到的三个目标节点的节点值为“1-1_0”、“1-1_2”、“1-1_3”,如果数据查询请求中包含待查询数据的主键的主键键值为“1_2”,则从三个目标节点的节点值“1-1_0”、“1-1_2”、“1-1_3”中解析出主键的主键键值为“1_0”、“1_2”、“1_3”,进一步地,分别根据主键的主键键值从数据源(例如散列表)中获取对应的数据得到所述数据处理请求所查询的数据。可以理解的是,散列表中存储的数据为对应于数据源的所有字段(包含索引字段、主键字段、以及除索引字段、主键字段以外的其他字段等);即,所述利用查找到的一个或多个所述目标节点,定位数据源中的数据,包括:获取所述目标节点的节点值,从所述节点值中解析出主键对应的键值,根据所述键值从数据源(例如散列表)中查询,得到所述数据处理请求所查询的数据。
由此可见,本发明的实施例的数据存储以及查询等操作,都是发生在堆外内存中,从而达到单次操作执行效率最优的有益效果。
进一步地,在数据变更的情况下,如果变更的数据关联于索引树的节点,则对应地变更索引树节点;即,在所述数据处理请求的类型指示为变更数据的情况下,包括:根据所述变更数据的主键从所述散列表中定位到待变更的数据,并执行数据变更;判断所述变更数据的目标节点包括的字段值是否发生变更,如果是,变更所述目标节点。其中,在变更索引树中的目标节点时,采用删除原有的节点,添加新的节点的方法更新数据对应的节点可以理解的是,变更后的节点可以由红黑树模型自动调整位置以达到红黑树树结构的平衡。
进一步地,对定位到的数据进行处理;对数据的操作包括:修改数据、删除数据等;进一步地,可以通过定位获取到的一条或多条数据进行统计分析等处理以实现数据查询以及数据可视化。
如图2所示,本发明实施例提供了一种处理新增数据的流程,该流程可以包括以下步骤:
步骤S201:接收一条新增数据;判断新增数据包含的主键键值是否已存在于数据源中。如果不存在,执行步骤S202,否则执行步骤S203。
在本发明的一个实施例中,针对动态接收数据构建索引树、或者数据源的情况,接收到的数据均视为“新增数据”。
步骤S202:将所述新增数据添加至所述数据源;从所述新增数据中解析出一个或多个索引字段,并将所述新增数据对应发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述新增数据,并在所述第二索引树中增加对应于所述新增数据的节点,其中,各个所述第二索引树基于新增的所述节点执行排序。
具体地,接收到一条新增数据,在判断出数据源中不存在该新增数据的主键键值的情况下,首先将新增数据存储至散列表(例如ConcurrentHashMap或HashMap等)中,进一步地,将所述新增数据对应发送至消息队列。
进一步地,利用与所述数据源关联的各个第二索引树基于关联于新增数据的消息从所述消息队列中获取所述新增数据,并在第二索引树中增加对应于所述新增数据的节点。即在数据源对应具有多种类型的索引树(即多个第二索引树)的情况下,针对新增数据,每一个第二索引树均需要对应地将新增数据添加为自己的节点。并且,各个所述第二索引树基于新增的所述节点执行排序。
仍以图3所示的索引树示意图为例,假设图3所示的索引树为新增数据匹配到的一个第二索引树,又例如新增数据为Test{“1”,“2”,“9”,“0”};则该索引树新增一个节点,该增加的对应于该新增数据的节点的节点值为“9-1_2”;可以理解的是,利用存储块存储新增节点对应的节点信息;关于利用存储块存储新增节点对应的节点信息的描述与步骤S101的描述一致,在此不再赘述。
步骤S203:将所述新增数据替换所述数据源中匹配于所述主键键值的原有数据;从所述新增数据中解析出一个或多个索引字段,并将被替换的原有数据、以及所述新增数据发送至消息队列;利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述被替换的原有数据以及所述新增数据,并在所述第二索引树中删除原有数据对应的节点,并增加对应于所述新增数据的节点,其中,各个所述第二索引树基于删除原有数据对应的节点、以及新增的所述节点分别执行排序。
具体地,接收到一条新增数据,在判断出数据源中已经存在该新增数据的主键键值的情况下,首先将所述新增数据替换所述数据源中匹配于所述主键键值的原有数据中。
进一步地,从所述新增数据中解析出一个或多个索引字段,并将被替换的原有数据、以及所述新增数据发送至消息队列。
进一步地,利用与数据源关联的各个第二索引树从所述消息队列中获取所述被替换的原有数据以及所述新增数据,在第二索引树中删除原有数据对应的节点,并增加对应于所述新增数据的节点。并且,各个所述第二索引树基于新增的所述节点执行排序。其中,各个所述第二索引树基于删除原有数据对应的节点、以及新增的所述节点分别执行排序。
由此可见,在接收到一条或多条新增数据时,在将新增数据存储至数据源(散列表)的同时需要根据索引类型分别添加到对应的索引树中。通常,索引树的添加新增数据对应的节点的效率低于将新增数据添加至散列表的速度,并且对散列表的操作可以支持多并发,而对索引树的操作不支持并发,因此,本发明的实施例对索引树进行异步更新。
优选地,在本发明的一个实施例中,利用第一计数器记录所述数据源中更新数据到消息队列的次数,利用第二计数器累加记录各个所述第二索引树根据所述消息队列完成更新所述第二索引树中的节点的次数;判断所述第一计数器与索引字段总数的乘积是否与所述第二计数器相等,如果是,确定所述数据源对应的各个索引树处于就绪状态。
具体地,每接收一次新增数据包含有索引字段,则需要发送一条索引变更信息到消息队列,则第一计数器加1。在新增数据为变更数据的情况下,会发送一个索引删除,新的索引插入两条信息到消息队列,则第一计数器会被增加两次。可以理解的是,如果数据源没有对应的索引树,即数据源中没有建立索引(其只需要Key-Value键值查询就可以进行数据处理的业务需求),则不会发送索引变更信息,第一计数器也不会改变。在每个第二索引树获取索引变更信息后,会进行自身索引的维护,完成后为第二计数器加1。只有当第一计数器=第二计数器*索引总个数(也是总索引树的个数)时,代表索引是就绪的,才会提供索引查询功能。即判断所述第一计数器与索引字段总数的乘积是否与所述第二计数器相等,如果是,确定所述数据源对应的各个索引树处于就绪状态。否则,在判断出所述第一计数器与索引字段总数的乘积与所述第二计数器不相等的情况下,阻塞针对所述新增数据的数据查询请求,直到所述第二计数器的记录值与所述第一计数器的记录值相等。
由此可见,通过增加第一计数器、第二计数器,用于实现计数锁的功能,防止索引没有更新完成时,相当于数据已经存在于散列表,但是根据索引树查不到,从而造成针对数据查询请求所提供出的查询数据的结果是有误的。通过设置计数器,提高了数据的一致性和可靠性。
进一步地,在判断出索引树的节点添加结束后,释放处理索引占用的资源。其中,索引占用的资源可以为线程,每一个索引类型设置有对应的线程。
由此可见,针对数据的多种类型的操作(新增,修改更新,删除等)需要首先在数据源中执行对应的处理,然后解析数据中包含的一个或多个索引字段,并将相关索引字段的信息发送到消息队列中,此时即可返回处理结果给应用,进一步地,数据源对应的每个索引树均会异步从消息队列中获取索引字段对应的信息,以完成索引树自身的节点的更新。对于新增数据,如果新增数据的数据主键在数据全量源中已经存在,在新增数据插入数据源时,会使用本次新增的数据替换掉原来的数据,此时会发送两个信息到消息队列中:被覆盖的数据信息,新增的数据信息。数据源对应的每个第二索引树会逐个处理消息,从自身索引树中删除被覆盖的数据(被替换的数据)信息对应的索引节点,并完成自身节点的排序;为新增数据信息插入新的索引节点,并完成自身节点的排序。如果新增数据的数据主键在数据全量源中不存在,则直接将新增数据添加到数据源,然后将新增数据信息发送给数据源对应的每个第二索引树。每个第二索引树都会根据数据信息新增索引节点,并完成自身节点的排序。如果是删除数据,则是先从数据源中删除,然后每个第二索引树均删除自身索引树中被删除数据对应的节点。
如图4所示,本发明实施例提供了一种处理数据的装置400,包括:确定索引树模块401、定位节点模块402和处理数据模块403;其中,
所述确定索引树模块401,用于响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段或者同一种索引字段组合的字段值;所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;
所述定位节点模块402,用于根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;
所述处理数据模块403,用于利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理。
本发明实施例还提供了一种处理数据的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图5示出了可以应用本发明实施例的处理数据的方法或处理数据的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用、即时通信工具和邮箱客户端等。
终端设备501、502、503可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的数据处理请求进行处理,并将数据处理请求得到的结果反馈给终端设备。
需要说明的是,本发明实施例所提供的处理数据的方法一般由服务器505执行,相应地,处理数据的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括确定索引树模块、定位节点模块和处理数据模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,处理数据模块还可以被描述为“利用查找到的一个或多个所述目标节点,定位数据源中的数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段的字段值;所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理。
本发明的实施例,能够响应于数据处理请求,从预先设置的多种类型的索引树中,确定与数据包含的索引字段匹配的索引树,其中每一种索引树存储于堆外内存中,索引树中各个节点的节点信息包括自身节点信息以及关联节点;根据所述索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;并通过目标节点定位数据源中的数据,并对定位到的数据进行处理。本发明的实施例提高了数据处理的效率,提升了用户体验。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种处理数据的方法,其特征在于,包括:
响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段的字段值;
所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;
根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;
利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理;
所述方法还包括:确定用户定义的索引类型,其中,所述索引类型包括有一个或多个索引字段;从所述数据源中获取所述索引类型包括的一个或多个所述索引字段的字段值;利用获取到的一个或多个所述索引字段的字段值构建索引树;其中,所述构建索引树,进一步包括:在堆外内存中获取存储所述索引树的内存空间;针对所述索引树包含的每一个节点,执行:从所述内存空间中获取存储所述节点的存储块;利用所述存储块存储所述节点的节点信息,所述节点信息包含自身节点信息,以及所述索引树的数据结构中与所述节点具有关联关系的关联节点。
2.根据权利要求1所述的方法,其特征在于,
还包括:从所述数据源中获取数据的主键;
所述利用获取到的一个或多个所述索引字段的字段值构建索引树,包括:利用获取到的一个或多个所述索引字段的字段值以及所述主键的主键键值作为索引树的节点,构建索引树。
3.根据权利要求1所述的方法,其特征在于,进一步包括:
接收一条新增数据,其中,所述新增数据包含的主键键值未存在于所述数据源中;
针对所述新增数据,执行下述操作:
将所述新增数据添加至所述数据源;
从所述新增数据中解析出一个或多个索引字段,并将所述新增数据对应发送至消息队列;
利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述新增数据,并在所述第二索引树中增加对应于所述新增数据的节点,其中,各个所述第二索引树基于新增的所述节点执行排序。
4.根据权利要求1所述的方法,其特征在于,进一步包括:
接收一条新增数据,其中,所述新增数据包含的主键键值已存在于所述数据源中;
针对所述新增数据,执行下述操作:
将所述新增数据替换所述数据源中匹配于所述主键键值的原有数据;
从所述新增数据中解析出一个或多个索引字段,并将被替换的原有数据、以及所述新增数据发送至消息队列;
利用与所述数据源关联的各个第二索引树从所述消息队列中获取所述被替换的原有数据以及所述新增数据,在所述第二索引树中删除原有数据对应的节点,并增加对应于所述新增数据的节点,其中,各个所述第二索引树基于删除原有数据对应的节点、以及新增的所述节点分别执行排序。
5.根据权利要求3或4所述的方法,其特征在于,
还包括:利用第一计数器记录所述数据源中更新数据到消息队列的次数,
利用第二计数器累加记录各个所述第二索引树根据所述消息队列完成更新所述第二索引树中的节点的次数;
判断所述第一计数器与索引字段总数的乘积是否与所述第二计数器相等,如果是,确定所述数据源对应的各个索引树处于就绪状态。
6.根据权利要求5所述的方法,其特征在于,进一步包括:
在判断出所述第一计数器与索引字段总数的乘积与所述第二计数器不相等的情况下,阻塞针对所述新增数据的数据查询请求,直到所述第二计数器的记录值与所述第一计数器的记录值相等。
7.根据权利要求1所述的方法,其特征在于,所述利用查找到的一个或多个所述目标节点,定位数据源中的数据,包括:
获取所述目标节点的节点值,从所述节点值中解析出主键对应的键值,根据所述键值从所述数据源中查询,得到所述数据处理请求所查询的数据。
8.一种处理数据的装置,其特征在于,包括:确定索引树模块、定位节点模块和处理数据模块;其中,
所述确定索引树模块,用于响应于数据处理请求,在确定出所述数据处理请求指示了索引字段的情况下,从预先设置的多种类型的索引树中,确定与所述索引字段匹配的第一索引树,其中,每一种类型的索引树包括的节点包括有同一种索引字段或者同一种索引字段组合的字段值;所述第一索引树存储于从堆外内存中获取的内存空间中,所述第一索引树包含的各个节点的节点信息存储于所述内存空间中的存储块中,其中,所述节点信息包含自身节点信息以及所述第一索引树的数据结构中与所述节点具有关联关系的关联节点;
所述定位节点模块,用于根据所述第一索引树中各个节点包括的字段值,定位到所述数据处理请求包括的待处理的字段值所对应的一个或多个目标节点;
所述处理数据模块,用于利用查找到的一个或多个所述目标节点,定位数据源中的数据,并对定位到的数据进行处理;
所述确定索引树模块,还包括:确定用户定义的索引类型,其中,所述索引类型包括有一个或多个索引字段;从所述数据源中获取所述索引类型包括的一个或多个所述索引字段的字段值;利用获取到的一个或多个所述索引字段的字段值构建索引树;其中,所述构建索引树,进一步包括:在堆外内存中获取存储所述索引树的内存空间;针对所述索引树包含的每一个节点,执行:从所述内存空间中获取存储所述节点的存储块;利用所述存储块存储所述节点的节点信息,所述节点信息包含自身节点信息,以及所述索引树的数据结构中与所述节点具有关联关系的关联节点。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111816.0A CN115994145B (zh) | 2023-02-09 | 2023-02-09 | 一种处理数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111816.0A CN115994145B (zh) | 2023-02-09 | 2023-02-09 | 一种处理数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115994145A CN115994145A (zh) | 2023-04-21 |
CN115994145B true CN115994145B (zh) | 2023-08-22 |
Family
ID=85991931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111816.0A Active CN115994145B (zh) | 2023-02-09 | 2023-02-09 | 一种处理数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994145B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN103339624A (zh) * | 2010-12-14 | 2013-10-02 | 加利福尼亚大学董事会 | 支持地理结构数据的交互式模糊搜索的高效前缀搜索算法 |
CN107533518A (zh) * | 2015-01-20 | 2018-01-02 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
CN108885604A (zh) * | 2015-12-08 | 2018-11-23 | 乌尔特拉塔有限责任公司 | 存储器结构软件实现方案 |
CN110019211A (zh) * | 2017-11-27 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 关联索引的方法、装置和系统 |
CN111061680A (zh) * | 2018-10-15 | 2020-04-24 | 北京京东尚科信息技术有限公司 | 一种数据检索的方法和装置 |
CN112883125A (zh) * | 2021-04-28 | 2021-06-01 | 北京奇岱松科技有限公司 | 一种实体数据处理方法、装置、设备和存储介质 |
CN113297204A (zh) * | 2020-07-15 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 索引生成方法及装置 |
CN113312539A (zh) * | 2021-06-10 | 2021-08-27 | 北京百度网讯科技有限公司 | 一种检索服务的提供方法、装置、设备和介质 |
US11210596B1 (en) * | 2020-11-06 | 2021-12-28 | issuerPixel Inc. a Nevada C. Corp | Self-building hierarchically indexed multimedia database |
CN114461746A (zh) * | 2021-12-31 | 2022-05-10 | 安徽科大讯飞医疗信息技术有限公司武汉分公司 | 用于检索数据的方法和检索引擎系统 |
CN114579561A (zh) * | 2020-12-02 | 2022-06-03 | 北京金山云网络技术有限公司 | 数据处理方法和装置、存储介质 |
CN115510058A (zh) * | 2022-09-22 | 2022-12-23 | 彩讯科技股份有限公司 | 一种通讯录信息搜索方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101266358B1 (ko) * | 2008-12-22 | 2013-05-22 | 한국전자통신연구원 | 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법 |
-
2023
- 2023-02-09 CN CN202310111816.0A patent/CN115994145B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN103339624A (zh) * | 2010-12-14 | 2013-10-02 | 加利福尼亚大学董事会 | 支持地理结构数据的交互式模糊搜索的高效前缀搜索算法 |
CN107533518A (zh) * | 2015-01-20 | 2018-01-02 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
CN108885604A (zh) * | 2015-12-08 | 2018-11-23 | 乌尔特拉塔有限责任公司 | 存储器结构软件实现方案 |
CN110019211A (zh) * | 2017-11-27 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 关联索引的方法、装置和系统 |
CN111061680A (zh) * | 2018-10-15 | 2020-04-24 | 北京京东尚科信息技术有限公司 | 一种数据检索的方法和装置 |
CN113297204A (zh) * | 2020-07-15 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 索引生成方法及装置 |
US11210596B1 (en) * | 2020-11-06 | 2021-12-28 | issuerPixel Inc. a Nevada C. Corp | Self-building hierarchically indexed multimedia database |
CN114579561A (zh) * | 2020-12-02 | 2022-06-03 | 北京金山云网络技术有限公司 | 数据处理方法和装置、存储介质 |
CN112883125A (zh) * | 2021-04-28 | 2021-06-01 | 北京奇岱松科技有限公司 | 一种实体数据处理方法、装置、设备和存储介质 |
CN113312539A (zh) * | 2021-06-10 | 2021-08-27 | 北京百度网讯科技有限公司 | 一种检索服务的提供方法、装置、设备和介质 |
CN114461746A (zh) * | 2021-12-31 | 2022-05-10 | 安徽科大讯飞医疗信息技术有限公司武汉分公司 | 用于检索数据的方法和检索引擎系统 |
CN115510058A (zh) * | 2022-09-22 | 2022-12-23 | 彩讯科技股份有限公司 | 一种通讯录信息搜索方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
面向应用集成的内存数据索引算法的实现;张金等;《计算机工程与科学》;第71-74页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115994145A (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019211A (zh) | 关联索引的方法、装置和系统 | |
CN112445626B (zh) | 一种基于消息中间件的数据处理方法和装置 | |
CN111597148B (zh) | 用于分布式文件系统的分布式元数据管理方法 | |
CN113760948A (zh) | 一种数据查询的方法及装置 | |
CN110909022A (zh) | 一种数据查询方法和装置 | |
CN111381820A (zh) | 一种基于gui自动生成api的方法及装置 | |
CN110807028B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111241189B (zh) | 一种同步数据的方法和装置 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN111753019B (zh) | 一种应用于数据仓库的数据分区方法和装置 | |
CN113704245A (zh) | 一种数据库主键生成方法、分表定位方法和装置 | |
CN111427899A (zh) | 存储文件的方法、装置、设备和计算机可读介质 | |
CN112182138A (zh) | 一种目录编制方法和装置 | |
CN112100168A (zh) | 一种确定数据关联关系的方法和装置 | |
CN111159207B (zh) | 一种信息处理方法和装置 | |
CN110851343A (zh) | 一种基于决策树的测试方法和装置 | |
CN117349321B (zh) | 一种文档数据库多表连接查询方法及装置 | |
CN115994145B (zh) | 一种处理数据的方法和装置 | |
CN110688355A (zh) | 变更容器状态的方法和装置 | |
CN113312355A (zh) | 一种数据管理的方法和装置 | |
CN108733668B (zh) | 用于查询数据的方法和装置 | |
CN117557394A (zh) | 智能对账方法、系统、设备及储存介质 | |
CN110858199A (zh) | 一种单据数据分布式计算的方法和装置 | |
CN113704242B (zh) | 一种数据处理方法和装置 | |
CN113726885A (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 |