CN108572958A - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN108572958A
CN108572958A CN201710132651.XA CN201710132651A CN108572958A CN 108572958 A CN108572958 A CN 108572958A CN 201710132651 A CN201710132651 A CN 201710132651A CN 108572958 A CN108572958 A CN 108572958A
Authority
CN
China
Prior art keywords
keyword
data block
data
index
target data
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.)
Granted
Application number
CN201710132651.XA
Other languages
English (en)
Other versions
CN108572958B (zh
Inventor
袁野
周海发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710132651.XA priority Critical patent/CN108572958B/zh
Publication of CN108572958A publication Critical patent/CN108572958A/zh
Application granted granted Critical
Publication of CN108572958B publication Critical patent/CN108572958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • 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是本发明实施例提供的数据处理装置的一个可选的结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)数据,也称为静态数据,或者称为截面数据,是由若干相关现象在某一时点上所处的状态的数据组成的,描述了现象在某一时刻的变化情况,反映一定时间、地点等客观条件下现象之间存在的内在数值联系,例如可以是在相同时间点上收集的数据,还可以是在数据查找之前已经预先创建完毕的数据。
例如,地图应用中使用的地图数据,在进行地图数据查找时地图数据是稳定的不会发生变化。再例如,增强现实应用中使用的地图数据,包括不同地点的各个真实对象和虚拟对象的影像数据。
就数据本身而言,可以是一条数据或者多条数据,又或者是一定容量(如一定字节数)的数据。例如高精度电子地图中一个地点或某一区域的地图数据,又例如增强现实地图中位于某一地点的一个或多个虚拟对象的影像数据。
2)数据块,包括:2.1)哈希关键字部分,即数据块自身的哈希关键字;2.2)数据部分,即顺序排列的多个数据,数据块中的各个数据在数据块中根据序列号形成有序排列。
3)序列号,对于数据块中有序排列的数据对应分配的有序的标识,序列号可以采用数字排序(如1/2/3/4),或者采用字母排序(如a/b/c/d),或者字母与数字的结合排序(如a1/a2/a3/a4),又或者是其他任意形式的有序的标识。
4)序列号索引,数据块中的各数据序列号形成的有序(例如数字排序,字母排序等)的索引。
5)数据块集合,包括:5.1)哈希关键字部分,即,数据块集合自身的哈希关键字;5.2)数据部分,即两个以上的数据块。
6)兴趣点(POI,POint of Interest),用于对应一个对象(目标),例如在高精度电子地图中,兴趣点可以是地点,用于对应如房子、商铺、邮筒和公交站等,在增强现实地图中,兴趣点可以是在地点中的虚拟对象(如游戏中的各种虚拟道具)。
现在将参考附图描述实现本发明实施例的数据处理装置。数据处理装置可以以各种形式来实施。例如,本发明实施例中描述的数据处理装置可以实施为诸如智能电话、笔记本电脑、平板电脑(PAD)、车载终端等等的终端,以及诸如数字电视(TV,Television)、台式计算机等等的固定终端。终端通过运行应用客户端而实现各种基于数据查找的服务。
再例如,参见图1,图1是本发明实施例提供的数据处理器装置部署在基于服务器/客户端***的一个的可选的示意图,本发明实施例中描述的数据处理装置可以实施为服务器,服务器可以应用于任意基于服务器/客户端的架构中而实现的各种基于数据查找的服务。
就前述的基于数据查找的服务来说,示例性地,包括:
1)在线社交服务中的用户查找,例如基于各种定向条件(用户名称;地域、偏好等各种属性),在社交网络的用户数据库中查找符合条件的用户;
2)增强现实服务,根据用户佩戴增强现实设备(例如,采用眼镜或者头盔的形式)时在环境中所处的方位,在增强现实地图数据库中查找对应该方位的虚拟对象的地图数据,并在增强现实设备的视场内显示,实现真实世界与虚拟世界融合的效果。
3)电子地图(例如,高精度电子地图),根据目标位置,在高精度电子地图数据库中查找目标位置的地图数据并进行显示。
参见图2,图2是本发明实施例提供的数据处理装置的一个可选的硬件结构示意图,数据处理装置100包括处理器101、显示单元102、通信单元103、存储器104、输入单元105和电源单元106。图1示出了具有各种组件的数据处理装置,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述数据处理装置中的组件。
处理器101用于控制数据处理装置的总体操作。例如,处理器101执行与实现基于数据查找的各种服务相关的控制和处理,包括前述示例性说明的各种服务。
显示单元102可以显示在数据处理装置100中进行基于数据查找的各种服务的中间信息和查找结果。
例如,当处理器101用于实现在线社交服务的相关控制和处理时,显示单元102可以显示在线社交服务的用户界面(UI,User Interface)或图形用户界面(GUI,GraphicalUser Interface),显示在社交网络中查找用户的结果。
又例如,当处理器101用于实现增强现实服务的相关控制和处理时,显示单元102根据用户佩戴增强现实设备(例如,采用眼镜或者头盔的形式)时在环境中所处的方位,显示对应该方位的现实环境的影像,以及根据各种增强现策略在现实环境中叠加的虚拟对象的影像。
再例如,当处理器101用于实现高精度电子地图的相关控制和处理时,显示单元102显示电子地图根据目标位置,在高精度电子地图数据库中查找目标位置的地图数据并进行显示。
通信单元103通常包括一个或多个组件,其允许数据处理装置100与无线通信***或网络之间的有线方式或无线方式的通信。例如,通信单元103可以实施为移动通信模块、无线互联网模块和短程通信模块中的至少一个。
移动通信模块将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括无线局域网(WLAN)、无线相容性认证(Wi-Fi)、无线宽带(Wibro)、全球微波互联接入(Wimax)、高速下行链路分组接入(HSDPA)等等。
短程通信模块是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙、射频识别(RFID,Radio Frequency Identification)、红外数据协会(IrDA,Infrared短Data Association)、超宽带(UWB,Ultra WIDeband)、紫蜂等等。
存储器104可以存储由处理器101执行的处理和控制操作的软件程序等等,或者可以暂时地存储已经输出或将要输出的数据(例如,前述的基于数据查找的各种服务处理的中间结果或最终结果)。
存储器104可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM,Random AccessMemory)、静态随机访问存储器(SRAM,Static Random Access Memory)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read Only Memory)、可编程只读存储器(PROM,Programmable Read OnlyMemory)、磁性存储器、磁盘、光盘等等。而且,数据处理装置100可以与通过网络连接执行存储器104的存储功能的网络存储装置协作。
输入单元105可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。输入单元105允许用户输入各种类型的信息,并且可以包括键盘、触摸板、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元102上时,可以形成触摸屏。
电源单元106在处理器101的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。
对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,Digital SignalProcessing)、数字信号处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在处理器101中实施。
对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器104中并且由处理器101执行。
至此,已经按照其功能描述了本发明实施例中涉及的数据处理装置,基于上述数据处理装置的硬件结构示意图,对本发明实施例提供的应用于数据处理装置的数据处理方法进行说明。
对本发明实施例提供的存储待查找的数据的划分方式进行说明。
参见图3,图3是本发明实施例提供的存储数据时对数据进行划分后的一个可选的结构的示意图,可供查找的数据被划分为多个数据块,以数据块作为在数据查找时的基本查找对象,即,在查找目标数据时,需要首先定位目标数据所处的数据块即(目标数据块),每个数据块中按照数据的序列号有序排列数据。
对于数据块而言,可以使用不同方式对可供查找的数据进行划分而得到,包括如下几种可选的划分方式:
1)基于数据之间的关联性划分,将在一个或多个维度关联的数据划分到对应的数据块,这里的维度可以包括时间、地域和描述对象。
以基于数据的对象进行划分为例,对于高精度电子地图数据而言,可以将高精度电子地图数据按照所描述的地理区域(如县、市、街道)进行划分;对于增强现实地图数据而言,可以按照地点进行划分,每个地点所应用的虚拟对象的影像数据划分到相应地点的数据块中。
以基于数据的时间维度进行划分为例,可以将时间戳分布在一小时内的数据以每10分钟为粒度划分到数据块。
2)基于数据的容量进行划分,即将待查找的全部数据,按照特定容量为粒度进行划分,例如以100兆字节为单位进行划分为多个数据块。
需要指出地,上述将待查找的数据划分为数据块的方式仅为示例,本发明实施例中对于将待查找数据划分为数据块的实现方式不做具体限定,实际应用中上述划分数据块的方式可以择一使用或结合使用。
本发明实施例还提供区别于图3的对可供查找的全部数据进行划分后的结构,参见图4,图4是本发明实施例提供的存储数据进行划分后的一个可选的结构的示意图,数据存储的基本单位是数据块集合,可供查找的数据被划分为多个数据块,并将数据块组合数据块集合,以数据块集合作为在数据查找时的基本查找对象,即,在查找目标数据时,需要首先定位目标数据所处的数据块集合(即目标数据块集合),对于数据块结合中各数据块的结构可以根据图3而理解。
对于将数据块组合为数据块集合而言,可以从不同的维度进行组合,示例性地,包括以下几种方式:
1)基于数据块之间的关联性进行组合,将在一个或多个维度关联的数据块组合到对应的数据块集合,这里的维度可以包括时间、地域和描述对象。
以基于数据的对象将数据块组合为例,对于高精度电子地图数据而言,可以将高精度电子地图数据按照所描述的地理区域(如县、市、街道)进行组合;对于增强现实地图数据而言,可以按照虚拟对象所处的地点进行组合,将多个相邻地点所应用的虚拟对象数据的数据块组合到数据块集合中。
以基于数据的时间维度将数据块组合为例,可以将时间戳分布在一小时内的数据以每10分钟为粒度划分得到的多个数据块,按照先后时间顺序组合到数据块集合中,例如,每个数据块集合可以存储一个小时对应的数据块。
2)基于数据的容量进行合并,即将待查找的全部数据,按照特定容量为粒度进行组合,例如对于以100兆字节为单位进行划分为多个数据块,按照1000兆字节为粒度组合到数据块集合中,每个数据块集合包括10个数据块。
需要指出地,上述将待查找的数据块组合为数据块集合的方式仅为示例,例如,还可以将预定数量的任意数据块组合为数据块集合,本发明实施例中对于将待查找数据划分为数据块组合为数据集合的实现方式不做具体限定,实际应用中上述的将数据块组合为数据块集合的方式可以择一使用或结合使用。
对本发明实施例提供的存储待查找的数据的划分后进行存储的方式进行说明。
对于以如图3示出的划分后的数据块而言,参见图5,图5是本发明实施例提供的存储数据块的一个可选的存储结构的示意图,在图5示出的存储结构(映射表)中提供了数据块的哈希关键字(Hash Key)与数据块的存储位置的映射表,在映射表中针对每个数据块提供对应的哈希关键字、以及对应的存储位置。
各个数据块都有唯一的哈希关键字以及对应的存储位置,以图5示出的数据块为例,数据块1对应的哈希关键字为:Hash Key11、以及对应的存储位置11,数据块2对应的哈希关键字为:Hash Key12、以及对应的存储位置12
对于如图5示出的数据块的哈希关键字而言,可以直接采用数据块的序列号作为哈希关键字,或者,将数据块的序列号使用哈希算法进行计编码得到的哈希值。例如,对于数据块1的哈希关键字来说,可以直接使用序列号“1”作为哈希关键字,或者对序列号“1”使用哈希算法进行编码得到的哈希值。
这样,在待查找的数据(也就是目标数据)归属的数据块(也就是目标数据块)的哈希关键字时,即可基于映射表定位目标数据块的存储位置,基于在数据处理装置本地或网络侧的非易失性存储空间中的存储位置,能够将数据块读取到数据处理装置的内存空间中进行继续查找目标数据,由于不需要全部数据块读取到内存空间,能够显著节省对内存空间的占用。
对于以如图4示出的划分后的数据块集合而言,参见图6,图6是本发明实施例提供的存储数据块集合的一个可选的存储结构(映射表)的示意图,在图6示出的存储结构中提供了数据块集合的哈希关键字与数据块集合的存储位置的映射关系,以及数据块集合中各数据块的哈希关键字与数据块的存储位置的映射关系。
各个数据块都有唯一的哈希关键字以及对应的存储位置,以图6示出的数据块集合1为例,数据块集合1对应的哈希关键字为:Hash Key1、以及对应的存储位置1,对于数据块集合1中的各个数据块而言,均有对应的哈希关键字和存储位置,例如,数据块1对应的哈希关键字为:Hash Key1、以及对应的存储位置11,数据块2对应的哈希关键字为:Hash Key2、以及对应的存储位置12
对于如图6示出的数据块集合的哈希关键字而言,可以直接采用数据块集合的序列号作为哈希关键字,或者,将数据块集合的序列号使用哈希算法进行计编码得到的哈希值。例如,对于数据块结合1的哈希关键字来说,可以直接使用序列号“1”作为哈希关键字,或者对序列号“1”使用哈希算法进行编码得到的哈希值;对于如图6示出的数据块的哈希关键字而言,可以使用如图5示出的数据块相同的计算方式。
以数据块1的数据11为例,对应的哈希关键字为:Hash Key1,这样,一旦获知目标数据归属的数据块集合、以及所归属的数据块的哈希关键字,基于图6示出的映射表,即可首先定位目标数据所处的数据块集合(目标数据块集合)的存储位置,并定位目标数据所处的数据块(目标数据块)的存储位置,基于上述存储位置读取目标数据块,例如,在数据处理装置本地或网络侧的非易失性存储空间中的存储位置读取目标数据块,从而将目标数据块读取到数据处理装置的内存空间中进行继续查找,由于不需要将全部数据块集合、以及目标数据块集合中的全部数据块读取到内存空间,能够显著节省对内存空间的占用。
再对前述数据块中数据的存储方式进行说明,数据块中的各个数据在数据块中分配有序列号,并基于序列号形成有序的排列方式,参见图7,图7是本发明实施例提供的数据块中有序排列数据的一个可选的示意图,数据块中的各数据按照数字形式的序列号进行有序排序。
再参见图8,图8是本发明实施例提供的数据块中有序排列数据的一个可选的示意图,数据块中的各数据按照字母序形式的序列号进行有序排序,当然,实际应用中数据块中的数据可以采用其他任意形式的有序排列,例如基于字母、数字和符号结合等。
至此,已经对本发明实施例提供的存储数据的结构进行了说明,下面结合本发明实施例提供的不同存储结构,对形成用于查找数据的关键字进行说明。
对于采用如图5所示的存储结构存储的数据来说,可以使用数据所归属的数据块的哈希关键字、以及数据在所归属的数据块中的序列号来定位。
参见图9,图9是本发明实施例提供的用于查找数据的关键字的一个可选的结构示意图,应用于采用如图5所示的存储结构的数据的查找,数据的关键字包括第一关键字和第二关键字,其中,第一关键字Hash Key是数据所归属的数据块的序列号(或者是数据所归属的数据块的序列号进行哈希编码得到的哈希值),第二关键字Main Key是数据在所归属的数据块中的序列号。
以图9示出的数据11(序列号为11,归属于序列号为1的数据块即数据块1,在数据块1中的序列号为11),对应的第一关键字Hash Key11可以是“1”,或者是对“1”进行哈希编码得到的哈希值,对应的第二关键字Main Key11为“11”。
对于采用如图6所示的存储结构存储的数据来说,可以使用数据所归属的数据块集合的哈希关键字、所归属的数据块的哈希关键字、以及数据在所归属的数据块中的序列号来定位。
参见图10,图10是本发明实施例提供的用于查找数据的关键字的一个可选的结构示意图,应用于采用如图6所示的存储结构的数据的查找,数据的关键字包括第一关键字和第二关键字,其中,第一关键字Hash Key又包括第一子关键字Hash Key(1)和第二子关键字Hash Key(2),第一子关键字是数据所归属的数据块集合的序列号(或者是数据所归属的数据块集合的序列号进行哈希编码得到的哈希值),第二子关键字是数据所归属的数据块的序列号(或者是数据所归属的数据块的序列号进行哈希编码得到的哈希值),第二关键字Main Key是数据在所归属的数据块中的序列号。
以图10示出的数据11(序列号为11,归属于序列号为1的数据块集合即数据块集合1,在数据块集合1中归属于序列号为11的数据块即数据块11,在数据块11中的序列号为11),对应的第一子关键字Hash Key1可以是“1”,或者是对“1”进行哈希编码得到的哈希值,对应的第二子关键字Hash Key11可以是“11”,或者是对“11”进行哈希编码得到的哈希值,对应的第二关键字Main Key11为“11”。
至此,已经对本发明实施例提供的存储数据形成数据的关键字进行了说明,下面,针对已经获知待查找数据也就是目标数据的关键字的情况下查找目标数据的处理进行说明。
参见图11,图11是本发明实施例提供的数据处理方法的一个可选的流程示意图,能够应用于前述的数据处理装置中,在数据处理装置的非易失性存储空间(如闪存、硬盘)中存储可供查找的数据,能够将目标数据所归属的数据块(目标数据块)从非易失性存储空间读取到内存空间中,并在目标数据块中继续查找目标数据,以节省内存空间、高效的方式实现针对已知关键字的目标数据的查找,结合图11涉及的步骤进行说明。
步骤101,从目标数据的关键字中提取第一关键字和第二关键字。
根据数据采取的存储结构(如图5和如图6示出的存储结构)不同,数据采取对应类型的关键字,当数据采用图5示出的存储结构时,数据采用如图9示出的相应类型的关键字,关键字包括数据所归属数据块的哈希关键字以及数据在所归属数据块中的序列号;当数据采用如图6示出的存储结构时,数据采用如图10示出的相应类型的关键字,
作为一个示例,第一关键字和第二关键字可以基于在关键字预先分配的长度而进行区分,例如,对于长度是50的关键字,其长度0-25的区间对应第一关键字,其长度26-50的区间对应第二关键字,当然,第一关键字和第二关键字的长度根据实际情况确定,以上仅为示例。
可以理解地,上述的长度可以为在内存空间中的一个存储空间,对于在内存空间中分配的一个长度为50(比特或字节)的存储空间,在存储空间的0-25的部分存储第一关键字,在存储空间的26-50部分存储第二关键字,如此,在内存空间中按照长度可以实现对第一关键字和第二关键字的区分。
作为另一个示例,第一关键字和第二关键字可以基于特定的分隔符如“:”、“-”等进行区分。
步骤102,以目标数据的第一关键字为索引,与各数据块的哈希关键字依次进行比对。
在一个实施例中,针对可供查找的数据是使用如图5所示的存储结构的情况,可供查找的数据被划分到多个数据块中存储,目标数据存储在其中一个数据块中,相应地,目标数据的第一关键字是目标数据归属的数据块(目标数据块)的哈希关键字,则读取如图5所示的映射表(包括各数据块的哈希关键字与相应数据块的存储位置)至内存空间中,以第一关键字为索引,与内存空间中映射表的各数据块的Hash Key一一进行比对。
在一个实施例中,针对可供查找的数据是使用如图6所示的存储结构的情况,可供查找的数据被划分到多个数据块中,并且数据块被组合形成多个数据块集合,目标数据存储在一个数据块集合(目标数据块集合中)的一个数据块(目标数据块)中。
相应地,目标数据的第一关键字包括第一子关键字(也即目标数据所归属的数据块集合的哈希关键字)和第二子关键字(也即目标数据块集合中目标数据所归属的数据块的哈希关键字)。
对于以目标数据的第一关键字为索引,与各数据块的哈希关键字依次进行比对而言,参见图12,图12是本发明实施例提供的以目标数据的第一关键字为索引,与各数据块的哈希关键字依次进行比对的一个可选的流程示意图,涉及以下几个步骤:
步骤1021,读取如图6所示的映射表(包括各数据块集合的哈希关键字与相应数据块集合的存储位置的映射关系,以及数据块集合中各数据块的哈希关键字与相应数据块的存储位置的映射关系)至内存空间中。
步骤1022,以目标数据的第一子关键字为索引,与内存空间的映射表中各数据块集合的哈希关键字进行比对,得到目标数据所归属的目标数据块集合的存储位置,基于存储位置读取目标数据块集合。
步骤1023,以目标数据的第二子关键字为索引,与映射表中目标数据块集合中各数据块的哈希关键字进行比对,得到目标数据所归属的目标数据块在非易失性存储空间的存储位置。
步骤1024,基于存储位置从非易失性存储空间的存储的目标数据块集合读取目标数据块至内存空间。
步骤103,基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块。
在一个实施例中,针对可供查找的数据是使用如图5所示的存储结构的情况,以第一关键字为索引与如图5所示的映射表中的各数据块的Hash Key一一进行比对时,能够得到目标数据所归属的目标数据块的存储位置,从而基于在非易失性存储空间的存储位置读取目标数据块至内存空间中。
例如,对于图9示出的数据11,第一关键字Hash Key为Hash Key11,第二关键字MainKey为Main Key11,基于Hash Key11与图5所示的映射表中个数据块的Hash Key进行比对,能够得到数据11所归属的数据块1的存储位置11,从非易失性存储空间的存储位置11能够读取数据块1至内存空间中,可以看出,不必将全部数据块读取到内存空间中,与将全部数据块读取到内存空间相比,显著降低对内存空间的占用。
在另一个实施例中,针对可供查找的数据是使用如图6所示的存储结构的情况,可供查找的数据被划分到多个数据块中,并且数据块被组合为多个数据块集合,以目标数据的第一关键字为索引在如图6所示的与映射表中各数据块集合的哈希关键字进行比对,能够得到目标数据所归属的目标数据块集合在非易失性存储空间的存储位置,以目标数据的第二关键字在如图6所示的与映射表中目标数据块集合中各数据的哈希关键字进行比对,在目标数据块集合在非易失性存储空间的存储位置中能够进一步得到目标数据所归属的数据块(目标数据块)在非易失性存储空间的存储位置,从而可以从存储位置能够读取目标数据块至内存空间中。
例如,对于图10示出的数据11,第一子关键字Hash Key(1)为Hash Key1,第二子关键字Hash Key(2)为Hash Key11,第二关键字Main Key为Main Key11,基于Hash Key1与图6所示的映射表中个数据块集合的哈希关键字进行比对,能够得到数据11所归属的数据块集合1的存储位置1,基于Hash Key11与图6所示的映射表中个数据块的哈希关键字进行比对,能够得到数据11所归属的数据块1的存储位置11,在非易失性存储空间的存储位置1中能够进一步得到数据11所归属的数据1块在非易失性存储空间的存储位置12,从而可以从存储位置12能够读取数据块1至内存空间中。可以看出,不必将全部数据块集合、以及目标数据块集合中的全部数据块读取到内存中,与将全部数据块集合读取到内存空间相比,能够显著减少对内存空间的占用。
对于步骤102和步骤103提供的数据块的查找方式是基于数据块的哈希关键字进行的,本发明实施例中也称为哈希查找方式。
步骤104,以所述第二关键字为索引,依次与所述目标数据块的索引的中间值、以及递归分割后的所述目标数据块的索引的中间值进行比对;其中,所述索引包括所述目标数据块中各数据的顺序排列的序列号。
步骤105,基于比对成功时所述第二关键字所映射的存储位置,从所述目标数据块的相应存储位置读取所述目标数据。
在步骤104的一个实施例中,涉及以下几个步骤:
步骤1041,以所述第二关键字为索引,与所述目标数据块的索引的中间值进行比对:在比对成功时执行步骤1042,比对失败时执行步骤1043。
步骤1042,说明第二关键字与中间值一致,从该中间值在目标数据块所映射的存储位置,从内存空间中的相应存储位置即可读取目标数据。
步骤1043,在比对未成功时,将所述目标数据块的索引等分为第一索引和第二索引,确定所述第二关键字的取值所处的所述第一索引。
例如,当索引为(1,2,3,4,5)时,中间值为3,若第二关键字为4则与中间值3比对不成功,将索引基于中间值进行分割(使用尽量等分原则,如偶数时进行等分,奇数时使第一索引和第二索引的序列号的数量的差值为1),形成第一索引(4,5)和第二索引(1,2),由于索引是升序排列,且第二关键字4大于原第一索引的中间值3,因此,初步判断第二关键字的取值处于高取值空间的新的第一索引(4,5)。
步骤1044,将所述第二关键字与所述第一索引的中间值进行比对,在比对成功时执行步骤1042,比对失败时执行步骤1045。
步骤1045,在未比对成功时,将所述第一索引等分为新的第一节点和新的第二索引,确定所述第二关键字的取值所处的新的第一索引,并返回步骤1043,直至比对成功,或者新的第一索引不具有第二关键字。
接续前述示例,由于第二索引(4,5)仅有2个值,因此随机选取一个作为中间值与第二关键字4比对,如果所取的中间值为4则比对成功,如果所取的值为5,则向左查找到4继续比对,比对成功。再例如,当第二关键字为3,5时,将原第一索引等分后仍然无法比对成功,则判定比对失败,目标数据块中未包括有目标数据。
对于步骤104和步骤105提供的查找方式来说,是基于第二关键字在数据块中进行折半递归的查找,本发明实施例中也称为二分查找方式。
再结合增强现实地图中数据查找的示例进行说明。
数据的本地查找算法有哈希查找(Hash)查找和二分查找两种,单一的哈希查找(即只根据目标数据的哈希关键字,在全部数据的哈希关键字中以遍历的方式进行查找)的优点是查询速度快;缺点是消耗的内存较大,属于典型的空间换时间,而且需要解决键值冲突的问题;单一的二分查找方式(即只根据目标数据的序列号,在递归分割的序列号索引中进行查找,每个只与索引的中间值进行比较,直至查找得到数据或索引)的优点是简单、查询速度较快,而且不需要多余的内存空间;缺点是数据需要有序排列,并且***和删除操作成本较大,在海量数据的查找中平均比较次数较多。
本发明实施例提供将哈希查找和二分查找相结合的方式,数据查找分为哈希查找和二分查找两个阶段,主要依赖于两种数据结构,一种数据结构是用于数据查找的关键字(Key),另一种数据结构是用于存储数据块的Hash Key与数据块的存储位置的映射表,下面阐述两种数据结构。
数据的关键字的内存结构如下表1所示:
Hash Key Main Key
表1
数据的关键字(Key)被分为两部分:第一部分是Hash Key,用于哈希查找过程,即根据哈希关键字去映射表中找出需要进行二分查找的数据块;第二部分是Main Key,主要用于二分查找过程,即在找到的数据块中根据Main Key进行二分查找。
如在增强现实服务的地图中会有很多地点(兴趣点)的集合用于投放指定的任务(地点指用户在增强现实地图上能看到的目标,而多个POI点构成一个集合),为了存储集合与POI之间的关系,会把集合(集合)的ID(一个集合的唯一标识)和POI的ID(一个POI的唯一标识)组合成一条关键字,而集合的ID就可以作为关键字中的Hash Key(也可以使用Hash算法对集合的ID进行编码得到),POI_ID作为关键字的Main Key。
Hash Key与数据块存储位置的映射表
映射表中存储的元素主要由两部分组成:第一部分是关键字中的Hash Key(可以是增强现实地图中地点集合的ID,也可以是通过集合的ID算出的一个哈希值);第二部分是与Hash Key对应的数据块的存储位置,该数据块用于二分查找。
对于一个待查找的数据的关键字(Key),只要映射表中存在该关键字中的HashKey,就能快速获取到数据所归属的数据块的存储位置,进而将数据块读取的内存空间中进行二分查找。
数据查找流程
参见图13,图13是本发明实施例提供的数据查找方法的一个可选的流程示意图,涉及以下步骤:
首先,对目标数据的Key进行分割处理,从中获得相应的Hash Key和Main Key,其中Hash Key用于哈希查找,Main Key用于二分查找。
其次,将获得的Hash Key与映射表中已经存储的各数据块的Hash Key进行比较,看是否能够找到匹配的Hash Key;如果没有找到,表示查找失败,没有这个Hash Key所对应的数据块;如果找到,表示有这个Hash Key所对应的数据块,将数据块取出到内存空间中,用于后面的二分查找。
再次,使用关键字中Main Key对提取的数据块进行二分查找。
二分查找的过程就是:首先找到数据块的中间节点,以中间节点为界将数据块分为前后两部分,然后用Main Key与中间节点进行比较。如果Main Key和中间节点相等,表示查找成功找到相应的静态数据;如果Main Key小于中间节点,就需要在前半部分重复上述的过程,直到没有中间节点为止(表示查找失败);如果Main Key大于中间节点,就需要在后半部分重复上述的过程,直到没有中间节点为止(表示查找失败)。
例如,如增强现实地图上有7个POI,POI的ID对应为1、2、3、4、5、6、7,将这7个POI点分成2个集合,集合的ID分别为1001和1002,所得的集合为1001:[1,3,7]和1002:[2,4,5,6]。最终形成的数据排列如下:
1001:[1,3,7]
1002:[2,4,5,6]
假设现在需要搜索出静态Key为1002:5(集合的ID为1002,POI的ID为5)的位置,根据上述的查找方式,查找过程如下:
首先,获得静态Key中的Hash Key和Main Key,即为1002和5。
然后,用1002去映射表中找出对应的数据块,即[2,4,5,6]。
最后,用5对[2,4,5,6]进行二分查找,经过比较,最终找到5映射的存储位置。
从存储位置可以读取POI点的信息,用于校验数据或给用户显示。
上述的查找方式应用到增强现实的对象查找功能(例如,对象可以为添加到现实环境中的各种虚拟对象,如宝物等道具),从理论上来讲搜索效率比直接使用二分查找最大能够提高50%,也就是说用户原来需要5秒才能看到完整的POI信息,由于查找速度的加快,只需要2.5秒就能够查找到并进行显示。
对本发明实施例提供的数据处理装置的功能结构进行说明,参见图14,图14是本发明实施例提供的数据处理装置的一个可选的结构示意图,包括:提取单元210、第一查找单元220、第一获取单元230、第二查找单元240和第二获取单元250;另外,还可以包括关键字单元260。
提取单元210,用于从目标数据的关键字中提取第一关键字和第二关键字;
第一查找单元220,用于以所述第一关键字为索引,与各数据块的哈希关键字依次进行比对;
第一获取单元230,用于基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块;
第二查找单元240,用于以所述第二关键字为索引,依次与所述目标数据块的索引的中间值、以及所述目标数据块的递归分割后的索引的中间值进行比对;其中,所述索引包括所述目标数据块中数据的顺序排列的序列号;
第二获取单元250,用于基于比对成功时所述第二关键字所映射的存储位置,从所述目标数据块的相应存储位置获取所述目标数据。
在一个实施例中,关键字单元260,用于基于各所述数据块的序列号形成相应数据块的哈希关键字;针对各所述数据块中的各数据根据排列关系而顺序分配序列号;基于所述各数据归属的数据块的哈希关键字、以及所述各数据对应分配的序列号进行组合,形成相应节点的关键字。
在一个实施例中,所述关键字单元260,用于对各所述数据块的序列号进行哈希编码得到相应数据块的哈希关键字,或者,将各所述数据块的序列号作为相应数据块的哈希关键字。
在一个实施例中,所述第一查找单元220,还用于读取映射表,所述映射表包括所述各数据块的哈希关键字与相应存储位置的映射关系;以所述第一关键字为索引,与所述映射表中所述各数据块的哈希关键字进行比对。
在一个实施例中,所述第一查找单元220,还用于从所述第一关键字中提取出第一子关键字和第二子关键字;以所述第一子关键字为索引,与各数据块集合的哈希关键字依次进行比对;基于比对成功时所述第一子关键字所映射的存储位置,获取以所述第一子关键字为哈希关键字的目标数据块集合;以所述第二子关键字为索引,与所述目标数据块集合中各数据块的哈希关键字依次进行比对,获取所述目标数据块集合中以所述第二关键字为哈希关键字的所述目标数据块。
在一个实施例中,所述第一获取单元230,还用于基于比对成功时所述第一关键字所映射的存储位置,从非易失性存储空间的相应存储位置,读取以所述第一关键字为哈希关键字的目标数据块至内存空间中。
在一个实施例中,所述第二获取单元250,还用于基于比对成功时所述第二关键字在所述目标数据块中所映射的存储位置,从所述内存空间存储的所述目标数据块的相应存储位置读取所述目标数据。
在一个实施例中,所述第二查找单元240,还用于以所述第二关键字为索引,与所述目标数据块的索引的中间值进行比对;在比对未成功时,将所述目标数据块的索引等分为第一索引和第二索引,确定所述第二关键字的取值所处的所述第一索引;将所述第二关键字与所述第一索引的中间值进行比对;在未比对成功时,将所述第一索引等分为新的第一节点和新的第二索引,确定所述第二关键字的取值所处的新的第一索引;将所述第二关键字与新的所述第一索引的中间值进行比对,直至比对成功,或者新的所述第一索引不具有所述第二关键字。
本发明实施例还提供一种存储介质,存储有可执行指令,用于执行如本发明实施例图11、图12和图13任一附图提供的数据处理方法,本发明实施例所述的存储介质可为光盘、闪存或磁盘等存储介质,可选为非瞬间存储介质。
综上所述,本发明实施例具有以下有益效果:
以第一关键字与各数据块的哈希关键字进行比对,确定目标数据归属的目标数据块,后续可以在目标数据块中进行继续查找,将基于哈希关键字与基于序列号在递归分割的索引中查找的方式结合;一方面,避免了读取全部数据块并在每个数据块遍历查找导致的占用大量存储空间的问题;另一方面,避免了单一采用数据的序列号在递归分割的索引中查找而导致的查找效率低下的问题,提升了查找效率。
本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种数据处理方法,其特征在于,包括:
从目标数据的关键字中提取第一关键字和第二关键字;
以所述第一关键字为索引,与各数据块的哈希关键字依次进行比对;
基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块;
以所述第二关键字为索引,依次与所述目标数据块的索引的中间值、以及所述目标数据块的递归分割后的索引的中间值进行比对;其中,所述索引包括所述目标数据块中数据的顺序排列的序列号;
基于比对成功时所述第二关键字所映射的存储位置,从所述目标数据块的相应存储位置获取所述目标数据。
2.如权利要求1所述的方法,其特征在于,还包括:
基于各所述数据块的序列号形成相应数据块的哈希关键字;
针对各所述数据块中的各数据的排列关系而顺序分配序列号;
基于所述各数据归属的数据块的哈希关键字、以及所述各数据对应分配的序列号进行组合,形成相应数据的关键字。
3.如权利要求2所述的方法,其特征在于,所述基于各所述数据块的序列号形成相应数据块的哈希关键字,包括:
对各所述数据块的序列号进行哈希编码得到相应数据块的哈希关键字,或者,将各所述数据块的序列号作为相应数据块的哈希关键字。
4.如权利要求1所述的方法,其特征在于,所述以所述第一关键字为索引,与各数据块的哈希关键字依次进行比对,包括:
读取映射表至内存空间,所述映射表包括所述各数据块的哈希关键字与相应存储位置的映射关系;
以所述第一关键字为索引,与所述映射表中所述各数据块的哈希关键字进行比对。
5.如权利要求1所述的方法,其特征在于,所述以所述第一关键字为索引,与各数据块的哈希关键字依次进行比对;基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块,包括:
从所述第一关键字中提取出第一子关键字和第二子关键字;
以所述第一子关键字为索引,与各数据块集合的哈希关键字依次进行比对;
基于比对成功时所述第一子关键字所映射的存储位置,获取以所述第一子关键字为哈希关键字的目标数据块集合;
以所述第二子关键字为索引,与所述目标数据块集合中各数据块的哈希关键字依次进行比对,获取所述目标数据块集合中以所述第二关键字为哈希关键字的所述目标数据块。
6.如权利要求1所述的方法,其特征在于,所述基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块,包括:
基于比对成功时所述第一关键字所映射的存储位置,从非易失性存储空间的相应存储位置,读取以所述第一关键字为哈希关键字的目标数据块至内存空间中。
7.如权利要求6所述的方法,其特征在于,所述基于比对成功时所述第二关键字所映射的存储位置,从所述目标数据块的相应存储位置获取所述目标数据,包括:
基于比对成功时所述第二关键字在所述目标数据块中所映射的存储位置,从所述内存空间存储的所述目标数据块的相应存储位置读取所述目标数据。
8.如权利要求1所述的方法,其特征在于,所述以所述第二关键字为索引,依次与所述目标数据块的索引的中间值、以及所述目标数据块的递归分割后的索引的中间值进行比对,包括:
以所述第二关键字为索引,与所述目标数据块的索引的中间值进行比对;
在比对未成功时,将所述目标数据块的索引等分为第一索引和第二索引,确定所述第二关键字的取值所处的所述第一索引;
将所述第二关键字与所述第一索引的中间值进行比对;
在未比对成功时,将所述第一索引等分为新的第一索引和新的第二索引,确定所述第二关键字的取值所处的新的第一索引;
将所述第二关键字与新的所述第一索引的中间值进行比对,直至比对成功,或者新的所述第一索引不具有所述第二关键字。
9.一种数据处理装置,其特征在于,包括:
提取单元,用于从目标数据的关键字中提取第一关键字和第二关键字;
第一查找单元,用于以所述第一关键字为索引,与各数据块的哈希关键字依次进行比对;
第一获取单元,用于基于比对成功时所述第一关键字所映射的存储位置,获取以所述第一关键字为哈希关键字的目标数据块;
第二查找单元,用于以所述第二关键字为索引,依次与所述目标数据块的索引的中间值、以及所述目标数据块的递归分割后的索引的中间值进行比对;其中,所述索引包括所述目标数据块中数据的顺序排列的序列号;
第二获取单元,用于基于比对成功时所述第二关键字所映射的存储位置,从所述目标数据块的相应存储位置获取所述目标数据。
10.如权利要求9所述的数据处理装置,其特征在于,还包括:
关键字单元,用于基于各所述数据块的序列号形成相应数据块的哈希关键字;针对各所述数据块中的各数据的排列关系而顺序分配序列号;基于所述各数据归属的数据块的哈希关键字、以及所述各数据对应分配的序列号进行组合,形成相应数据的关键字。
11.如权利要求10所述的数据处理装置,其特征在于,
所述关键字单元,还用于对各所述数据块的序列号进行哈希编码得到相应数据块的哈希关键字,或者,将各所述数据块的序列号作为相应数据块的哈希关键字。
12.如权利要求9所述的数据处理装置,其特征在于,
所述第一查找单元,还用于读取映射表至内存空间,所述映射表包括所述各数据块的哈希关键字与相应存储位置的映射关系;以所述第一关键字为索引,与所述映射表中所述各数据块的哈希关键字进行比对。
13.如权利要求9所述的数据处理装置,其特征在于,
所述第一查找单元,还用于从所述第一关键字中提取出第一子关键字和第二子关键字;以所述第一子关键字为索引,与各数据块集合的哈希关键字依次进行比对;基于比对成功时所述第一子关键字所映射的存储位置,获取以所述第一子关键字为哈希关键字的目标数据块集合;以所述第二子关键字为索引,与所述目标数据块集合中各数据块的哈希关键字依次进行比对,获取所述目标数据块集合中以所述第二关键字为哈希关键字的所述目标数据块。
14.如权利要求9所述的数据处理装置,其特征在于,
所述第一获取单元,还用于基于比对成功时所述第一关键字所映射的存储位置,从非易失性存储空间的相应存储位置,读取以所述第一关键字为哈希关键字的目标数据块至内存空间中。
15.如权利要求14所述的数据处理装置,其特征在于,
所述第二获取单元,还用于基于比对成功时所述第二关键字在所述目标数据块中所映射的存储位置,从所述内存空间存储的所述目标数据块的相应存储位置读取所述目标数据。
16.如权利要求9所述的数据处理装置,其特征在于,
所述第二查找单元,还用于以所述第二关键字为索引,与所述目标数据块的索引的中间值进行比对;在比对未成功时,将所述目标数据块的索引等分为第一索引和第二索引,确定所述第二关键字的取值所处的所述第一索引;将所述第二关键字与所述第一索引的中间值进行比对;在未比对成功时,将所述第一索引等分为新的第一索引和新的第二索引,确定所述第二关键字的取值所处的新的第一索引;将所述第二关键字与新的所述第一索引的中间值进行比对,直至比对成功,或者新的所述第一索引不具有所述第二关键字。
CN201710132651.XA 2017-03-07 2017-03-07 数据处理方法及装置 Active CN108572958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710132651.XA CN108572958B (zh) 2017-03-07 2017-03-07 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710132651.XA CN108572958B (zh) 2017-03-07 2017-03-07 数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN108572958A true CN108572958A (zh) 2018-09-25
CN108572958B CN108572958B (zh) 2022-07-29

Family

ID=63577062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710132651.XA Active CN108572958B (zh) 2017-03-07 2017-03-07 数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN108572958B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764705A (zh) * 2019-10-22 2020-02-07 北京锐安科技有限公司 一种数据的读写方法、装置、设备和存储介质
CN110838199A (zh) * 2019-11-12 2020-02-25 Tcl-罗格朗国际电工(惠州)有限公司 门禁卡管理方法、装置、计算机设备和存储介质
CN111104787A (zh) * 2018-10-26 2020-05-05 伊姆西Ip控股有限责任公司 用于比较文件的方法、设备和计算机程序产品
CN113553343A (zh) * 2021-06-29 2021-10-26 通号城市轨道交通技术有限公司 电子地图数据查询方法及***
CN113608701A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种存储***中数据管理方法和固态硬盘
CN113626490A (zh) * 2020-05-08 2021-11-09 杭州海康威视数字技术股份有限公司 数据查询方法、装置及设备、存储介质
WO2023083237A1 (zh) * 2021-11-11 2023-05-19 支付宝(杭州)信息技术有限公司 图数据的管理

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858747A (zh) * 2006-04-30 2006-11-08 北京金山软件有限公司 一种数据存储/检索方法及***
CN101594319A (zh) * 2009-06-26 2009-12-02 华为技术有限公司 表项查找方法和装置
CN101692651A (zh) * 2009-09-27 2010-04-07 中兴通讯股份有限公司 一种哈希查找表的方法和装置
CN101727465A (zh) * 2008-11-03 2010-06-09 ***通信集团公司 分布式列存储数据库索引建立、查询方法及装置与***
CN101782922A (zh) * 2009-12-29 2010-07-21 山东山大鸥玛软件有限公司 一种面向海量数据检索的多级桶哈希索引方法
CN102012851A (zh) * 2010-12-20 2011-04-13 浪潮(北京)电子信息产业有限公司 一种持续数据保护方法及服务器
US20110145188A1 (en) * 2008-08-07 2011-06-16 Thomas Vachuska Providing data structures for determining whether keys of an index are present in a storage system
CN102193917A (zh) * 2010-03-01 2011-09-21 ***通信集团公司 一种数据处理和查询方法和装置
CN102467458A (zh) * 2010-11-05 2012-05-23 英业达股份有限公司 建立数据区块的索引方法
CN102541968A (zh) * 2010-12-31 2012-07-04 百度在线网络技术(北京)有限公司 一种索引方法
CN102945242A (zh) * 2006-11-01 2013-02-27 起元技术有限责任公司 管理数据的方法、***和计算机***
CN103412962A (zh) * 2013-09-04 2013-11-27 国家测绘地理信息局卫星测绘应用中心 一种海量瓦片数据的存储方法及读取方法
CN103488709A (zh) * 2013-09-09 2014-01-01 东软集团股份有限公司 一种索引建立方法及***、检索方法及***
CN103513956A (zh) * 2012-06-26 2014-01-15 阿里巴巴集团控股有限公司 一种处理器处理数据的方法以及装置
US20140136802A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Accessing data in a storage system
CN104395904A (zh) * 2012-04-27 2015-03-04 网络装置公司 高效的数据对象存储和检索
CN104794162A (zh) * 2015-03-25 2015-07-22 中国人民大学 实时数据存储与查询方法
CN105320775A (zh) * 2015-11-11 2016-02-10 中科曙光信息技术无锡有限公司 数据的存取方法和装置
US20160103767A1 (en) * 2014-10-09 2016-04-14 Netapp, Inc. Methods and systems for dynamic hashing in caching sub-systems

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858747A (zh) * 2006-04-30 2006-11-08 北京金山软件有限公司 一种数据存储/检索方法及***
CN102945242A (zh) * 2006-11-01 2013-02-27 起元技术有限责任公司 管理数据的方法、***和计算机***
US20110145188A1 (en) * 2008-08-07 2011-06-16 Thomas Vachuska Providing data structures for determining whether keys of an index are present in a storage system
CN101727465A (zh) * 2008-11-03 2010-06-09 ***通信集团公司 分布式列存储数据库索引建立、查询方法及装置与***
CN101594319A (zh) * 2009-06-26 2009-12-02 华为技术有限公司 表项查找方法和装置
CN101692651A (zh) * 2009-09-27 2010-04-07 中兴通讯股份有限公司 一种哈希查找表的方法和装置
CN101782922A (zh) * 2009-12-29 2010-07-21 山东山大鸥玛软件有限公司 一种面向海量数据检索的多级桶哈希索引方法
CN102193917A (zh) * 2010-03-01 2011-09-21 ***通信集团公司 一种数据处理和查询方法和装置
CN102467458A (zh) * 2010-11-05 2012-05-23 英业达股份有限公司 建立数据区块的索引方法
CN102012851A (zh) * 2010-12-20 2011-04-13 浪潮(北京)电子信息产业有限公司 一种持续数据保护方法及服务器
CN102541968A (zh) * 2010-12-31 2012-07-04 百度在线网络技术(北京)有限公司 一种索引方法
CN104395904A (zh) * 2012-04-27 2015-03-04 网络装置公司 高效的数据对象存储和检索
CN103513956A (zh) * 2012-06-26 2014-01-15 阿里巴巴集团控股有限公司 一种处理器处理数据的方法以及装置
US20140136802A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Accessing data in a storage system
CN103412962A (zh) * 2013-09-04 2013-11-27 国家测绘地理信息局卫星测绘应用中心 一种海量瓦片数据的存储方法及读取方法
CN103488709A (zh) * 2013-09-09 2014-01-01 东软集团股份有限公司 一种索引建立方法及***、检索方法及***
US20160103767A1 (en) * 2014-10-09 2016-04-14 Netapp, Inc. Methods and systems for dynamic hashing in caching sub-systems
CN104794162A (zh) * 2015-03-25 2015-07-22 中国人民大学 实时数据存储与查询方法
CN105320775A (zh) * 2015-11-11 2016-02-10 中科曙光信息技术无锡有限公司 数据的存取方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
喻波等: "一种基于共享前缀的两级索引结构", 《计算机工程与科学》 *
黄金等: "哈希索引在交警专用移动执法终端数据检索中的应用研究", 《中国公共安全(学术版)》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104787A (zh) * 2018-10-26 2020-05-05 伊姆西Ip控股有限责任公司 用于比较文件的方法、设备和计算机程序产品
CN111104787B (zh) * 2018-10-26 2024-04-26 伊姆西Ip控股有限责任公司 用于比较文件的方法、设备和计算机程序产品
CN110764705A (zh) * 2019-10-22 2020-02-07 北京锐安科技有限公司 一种数据的读写方法、装置、设备和存储介质
CN110764705B (zh) * 2019-10-22 2023-08-04 北京锐安科技有限公司 一种数据的读写方法、装置、设备和存储介质
CN110838199A (zh) * 2019-11-12 2020-02-25 Tcl-罗格朗国际电工(惠州)有限公司 门禁卡管理方法、装置、计算机设备和存储介质
CN113626490A (zh) * 2020-05-08 2021-11-09 杭州海康威视数字技术股份有限公司 数据查询方法、装置及设备、存储介质
CN113626490B (zh) * 2020-05-08 2023-08-25 杭州海康威视数字技术股份有限公司 数据查询方法、装置及设备、存储介质
CN113553343A (zh) * 2021-06-29 2021-10-26 通号城市轨道交通技术有限公司 电子地图数据查询方法及***
CN113608701A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种存储***中数据管理方法和固态硬盘
WO2023083237A1 (zh) * 2021-11-11 2023-05-19 支付宝(杭州)信息技术有限公司 图数据的管理

Also Published As

Publication number Publication date
CN108572958B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN108572958A (zh) 数据处理方法及装置
CN106484875B (zh) 基于molap的数据处理方法及装置
CN102402605B (zh) 用于搜索引擎索引的混合分布模型
EP2924594B1 (en) Data encoding and corresponding data structure in a column-store database
CN110268399A (zh) 用于维护操作的合并树修改
US20140188885A1 (en) Utilization and Power Efficient Hashing
CN110383261A (zh) 用于多流存储装置的流选择
US20080201302A1 (en) Using promotion algorithms to support spatial searches
CN104408163B (zh) 一种数据分级存储方法和装置
KR20010077983A (ko) 데이터 패킷 분류 방법 및 수단
JP2002501256A (ja) データベース装置
CN108304484A (zh) 关键词匹配方法及装置、电子设备和可读存储介质
CN109086456B (zh) 数据索引方法及装置
US9760836B2 (en) Data typing with probabilistic maps having imbalanced error costs
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
CN103874996A (zh) 用于利用散列来执行基于全文的逻辑运算的方法
CN108984723A (zh) 创建索引、数据查询方法、装置及计算机设备
CN111178965B (zh) 一种资源投放方法及服务器
CN111190893B (zh) 建立特征索引的方法和装置
CN109299106B (zh) 数据查询方法和装置
CN107729557A (zh) 一种编目信息的分类、检索方法和装置
CN110059148A (zh) 应用于电子地图的空间关键字查询的准确搜索方法
CN114579617A (zh) 数据查询方法、装置、计算机设备和存储介质
CN110633275B (zh) 一种etc交易数据滞留分析方法及装置
CN108509585A (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