数据存储方法、数据查询方法及相关装置与流程

专利2022-06-30  72


本发明涉及存储技术领域,具体而言,涉及一种数据存储方法、数据查询方法及相关装置。



背景技术:

在信息时代,数据信息的存储十分关键。近些年,随着数据信息量暴增,需进行存储的数据信息量也激增。目前存储数据的方式主要是将数据信息逐条存储于数据库中,查询数据时,需将查询条件与数据库中存储的数据信息逐条比对,以得到所需查询的数据信息。显然,逐条对数据信息进行存储的方式,随着被存储的数据量增加,将给查询带来巨大的压力,使数据查询时耗过长。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据存储方法、数据查询方法及相关装置。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,实施例提供一种数据存储方法,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述存储立方体为数据查询中第一阶段的查询基本单元;所述数据存储方法包括:

查找与待存储数据关联的第一目标存储立方体;其中,所述第一目标存储立方体表征的所有属性值与所述待存储数据匹配;

若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内;

若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。

第二方面,实施例提供一种数据查询方法,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述数据查询方法包括:

遍历所述存储立方体查找第二目标存储立方体;其中,所述第二目标存储立方体表征的所有属性值与查询条件匹配;

从所述第二目标存储立方体中查找目标数据。

第三方面,实施例提供一种数据存储装置,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述存储立方体为数据查询中第一阶段的查询基本单元,所述数据存储装置包括:

查找模块,用于查找与待存储数据关联的第一目标存储立方体;其中,所述第一目标存储立方体表征的所有属性值与所述待存储数据匹配;

存储模块,用于若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内;

创建模块,用于若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。

第四方面,实施例提供一种数据查询装置,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述数据查询装置包括:

遍历模块,用于遍历所述存储立方体查找第二目标存储立方体;其中,所述第二目标存储立方体表征的所有属性值与查询条件匹配;

确定模块,用于从所述第二目标存储立方体中查找目标数据。

第五方面,实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。

第六方面,实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。

相较于现有技术,本发明实施例提供的数据存储方法应用于包括多个存储立方体的电子设备。其中,存储立方体作为数据查询中第一阶段的查询基本单元,其内存储有多条存储数据。在存储待存储数据时,先查找所有属性值与待存储数据匹配的第一目标存储立方体,如果查找到第一目标存储立方体,则将待存储数据存储至第一目标存储立方体内,如果未查找到第一目标存储立方体,依据从待存储数据中提取到的多类属性值,创建新的存储立方体,并用于存储所述待存储数据。如此,需要查询数据时则可以先以存储立方体为基本单位进行查询,再从存储立方体中确定所需数据,避免遍历所有已存储的数据,从而,提高数据查询效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了相关技术的示例图。

图2示出了本发明实施例提供的电子设备的示意图。

图3示出了本发明实施例提供的数据存储方法的步骤流程图。

图4为图3中步骤s101的子步骤流程图之一。

图5示出了本发明实施例提供的数据存储方法中创建特定查询地图的子步骤流程图。

图6示出了对待处理地图分割的示例图。

图7示出了基于图6得到的一种特定查询地图的示例图之一。

图8示出了基于图6得到的一种特定查询地图的示例图之二。

图9为图3中步骤s101的子步骤流程图之二。

图10示出了本发明实施例提供的数据存储装置的示意图。

图11示出了本发明实施例提供的数据查询方法的步骤流程图。

图12示出了本发明实施例提供的数据查询装置的示意图。

图标:100-电子设备;101-存储器;102-通信接口;103-处理器;104-总线;400-数据存储装置;401-查找模块;402-存储模块;403-创建模块;500-数据查询装置;501-遍历模块;502-确定模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在信息化时代,数据信息量激增。高效地利用数据,才能为管理、决策提供可靠的帮助。比社会治安综合治理场景为例,人作为社会成员在治安管理空间内活动则会产生大量的行为数据(比如,行为数据可以是人的轨迹数据、就诊数据、消费数据等),随着城市规模不断扩张,外来人口的大量涌入,治安管理空间内活动的人越来越多,如此,治安管理空间内每日增加的行为数据过亿。通过对社会成员的行为数据的分析,可以判断社会成员的行为是否符合治安管理空间对应的规则。

高效利用数据信息的前提是对产生的数据信息进行存储,现有技术中将得到的数据信息逐条的存储于数据库内,由于数据信息对应的实体信息和事件信息是分别存储,之间直接导致查询实体信息对应的事件信息会很慢。需要说明的是,可以是指能够独立存在的、作为一切属性的基础和万物本原的物体,实体与事件关联。比如,实体可以是人,事件与人相关的事。

例如,以存储实时获得的医疗就诊信息为例,通常个人和其对应的属性值进行关联后存储于一个存储区;然后,将医院就医信息与对应的属性值关联后存储于另外一个存储区。可以理解地,在此例中,人是实体,医院就医是事件。人的属性值可以是医保卡号、身份证号、性别、手机号、姓名、邮箱等。上述医院就医信息的属性值可以是医保卡号、就医人姓名、就医人身份证号、就医时间、就诊科室、医院组织编号及医院名称等。存储后,如图1所示。需要查找到与特定人匹配的医院就医信息,则需先查找与特定人关联的属性值,将由于特定人关联的属性依次与已存储的各条医院就医信息对应的属性进行比对,从而找到特定人对应的医院就医信息。然而,在信息化时代下,即便是一个地市级医院,每秒新增的医疗就诊信息的数量大小可以采用gb级甚至pb级别进行衡量。显然,采用现有技术中逐条存储的存储方式将使得数据的查询时效性难以保障。

为了改善上述问题,本发明实施例提供了一种数据存储方法、数据查询方法及相关装置。

请参照图2,图2示出了本发明实施例提供的电子设备100的方框示意图。电子设备100可以是,但不限于个人电脑(personalcomputer,pc)、服务器、分布式部署的计算机等等。可以理解的是,电子设备100也不限于物理服务器,还可以是物理服务器上的虚拟机、基于云平台上构建的虚拟机等能提供与所述服务器或者虚拟机有相同功能的计算机。

电子设备100的操作系统可以是,但不限于,windows系统、linux系统等。上述电子设备100包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。其中,存储器101可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口(可以是有线或者无线)实现该电子设备与外部设备之间的通信连接。

总线104可以是isa总线、pci总线或eisa总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器101用于存储程序,例如图10和图12所示的数据存储装置400及数据查询装置500。该数据存储装置400及数据查询装置500包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述电子设备100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器103在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的数据存储方法及数据查询方法。

处理器103可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器103中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器103可以是通用处理器103,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

请参考图3,图3示出了本发明实施例提供的一种数据存储方法。可选地,上述数据存储方法可以应用于电子设备100。如图3所示,上述数据存储方法可以包括以下步骤:

步骤s101,查找与待存储数据关联的第一目标存储立方体。

上述待存储数据可以是获得的需要被存储的数据信息。上述待存储数据可以是对采集到的原始数据处理后得到的数据信息,上述待存储数据包括事件内容及多个查询字段。上述查询字段可以是预先定义的。查询字段的内容可以是从原始数据中提取到的实体信息所关联的属性值。每一个查询字段对应一个类型的属性值。比如,上述预先定义的查询字段可以是姓名、性别、名族及车牌号,原始数据是“身份id为123的实体信息被路口a的卡口采集到”,则得到待存储数据包括:事件内容“身份id为123的实体出现于路口a”、查询字段“张三”、查询字段“男”、查询字段“民族汉”及查询字段“车牌号京a1234”。

上述电子设备100中包括多个存储立方体。上述存储立方体内存储有多条存储数据。可以理解地,上述存储立方体可以是基于存储空间在多维属性空间构建的存储模块402。换句话说,上述存储立方体不仅可以存储数据,还与至少一个维度上的具体属性相关。多维属性空间中所具有的属性维度可以和预设的具有查询意义的查询字段对应。

可以理解地,上述存储立方体在存储器101中以存储空间的形式存在,上述存储空间可以是以存储堆栈、区域、存储阵列的形式存在。

可以理解地,上述存储立方体在多维属性空间内以多边立方体的形式存在。上述多边立方体的一条边表征一个属性值,不同的边可以对应着不同的属性值。同一维度属性取值可以不同,比如,在姓名维度上,可取的属性值可以包括张三、李四、王五等。

上述第一目标存储立方体可以是从已有的存储立方体中确定出的与待存储数据匹配的存储立方体。上述匹配的存储立方体在多维属性空间中所具有的属性值与待存储数据中所有查询字段的内容均符合的存储立方体。换句话说,从待存储数据中提取到的所有类别的属性值(也即,所有查询字段的内容,虽然待存储数据的属性值可以与存储立方体的属性值相同,但是为了区分二者是不同的概念,以下将待存储数据的属性值简称为数据属性值)与存储立方体所具有的属性值均相同,则判断二者匹配。

在一些实施例中,上述步骤s101可以是首先获取待存储数据对应的数据属性值。其次,遍历存储立方体,将遍历到的存储立方体所对应的属性值与数据属性值进行比较。如果存储立方体所对应的属性值与数据属性值一一对应且相同,则将其确定为第一目标存储立方体,流程进入步骤s102。反之,则确定不存在第一目标存储立方体,流程进入步骤s103。

在另外一些实施例中,上述步骤s101还可以是首先获取待存储数据对应的所有数据属性值。其次,在多维属性空间内依据获取到的所有数据属性值进行定位,若能定位到已有的存储立方体,则将其确定为第一目标立方体,流程进入步骤s102;反之,则确定不存在第一目标存储立方体,流程进入步骤s103。

步骤s102,若查找到第一目标存储立方体,则将待存储数据存储至第一目标存储立方体内。

在一些实施例中,将上述待存储数据存储至第一目标存储立方体对应的存储空间。相较于现有技术,将具有相同数据属性值的待存储数据集中存储,能够加快数据的查找。

步骤s103,若未查找到第一目标存储立方体,依据从待存储数据中提取到的多类属性值,创建新的存储立方体。

在一些实施例中,在存储器101内选择一个新的存储空间,在多维属性空间内依据获取的数据属性值构建多边立方体,使构建的多边立方体中一条边表征获取到的一个数据属性值。再将新的存储空间与新构建的多边立方体关联,得到新的存储立方体。

为了方便本领域技术人员理解和使用本审通提供的数据存储方法,下面与交通数据的存储进行举例:

预先定义多维属性空间对应的属性维度包括名字、民族、性别、车颜色和车牌号类别。

交通管理服务器可以从设置于道路两侧的卡口监控系统获取待存储数据,比如,待存储数据1对应的查询字段的内容分别为京a1234、白色、张三、汉族、男。在已有的存储立方体中查找与表征属性值为“京a、白色、张三、汉族、男”的存储立方体。若有,将其作为第一目标存储立方体,并将待存储数据1存储于其内;若没有,创建一个新的存储立方体,新创建的存储立方体在多维属性空间中属性值分别为“京a、白色、张三、汉族、男”。

下面对本发明实施例的实现细节进行描述:

在一些实施例中,上述待存储数据通常表征实体在实际空间中发生的事情,因此,待存储数据对应着事件发生位置信息。在一些场景下,查询到的数据需要与实体的轨迹关联。因此,事件发生位置信息也可以是具有查询意义的字段,也就是,待存储数据可以包括一个查询字段,其内容为事件发生位置信息。可选地,事件发生位置信息通常以经纬度信息或者地名信息存在,然而,无论是以经纬度信息还是地名信息存在的事件发生位置信息,都存在不利于查询的问题。为了方便查询,在一些实施例中,可以将事件发生位置信息转换为位置属性值(比如,二进制编码)。可选地,不同位置区域对应一个独有的位置属性值。若事件发生位置信息属于一个位置区域,则该事件发生位置信息的位置属性值为该位置区域对应的位置属性值。

此外,由于位置信息具有查询意义,在多维属性空间内可以定义与位置相关的属性维度。上述位置区域的位置属性值也是与位置相关的属性维度上可选的取值。也即,存储立方体可以包括位置属性值。

在一些实施例中,上述电子设备100包括特定查询地图。上述特定查询地图用于查询待存储数据中事件发生位置信息所对应的位置属性值。可选地,特定查询地图包括多个被赋予不同位置属性值的位置区域。除此之外,所有的位置区域之间存在查询顺序。可以理解地,上述查询顺序用于指导位置区域之间的遍历顺序。在一些实施例中,设置查询顺序的目的可以是确保每一个位置区域都能被查询到。

基于以上,在一些实施例中,如图4所示,上述步骤s101可以包括以下步骤:

子步骤s101-1,依据待存储数据对应的事件发生位置信息,结合查询顺序,在特定查询地图上查找匹配的位置区域。

上述位置区域可以表征特定查询地图所指代的实际空间中的一个空间区域。可以理解地,位置区域可以包括多个属于他的位置信息。

在一些实施例中,上述子步骤s101-1可以是依据查询顺序依次遍历对应的位置区域。可选地,将待存储数据对应的事件发生位置信息与遍历到的位置区域进行比较,判断该事件发生位置信息是否属于被遍历到的位置区域。若属于,则将该位置区域确定为匹配的位置区域,流程进入子步骤s101-2。反之,则按照查询顺序继续遍历其他位置区域。

子步骤s101-2,获取匹配的位置区域对应的目标位置属性值。

在一些实施例中,从特定查询地图中读取匹配的位置区域的位置属性值,并将其作为目标位置属性值。

子步骤s101-3,依据待存储数据,从具有目标位置属性值的第一存储立方体中确定第一目标存储立方体。

在一些实施例中,先利用目标位置属性值在已有的存储立方体中查询具有目标位置属性的第一存储立方体,然后,在利用待存储数据的查询字段中的内容(也即,待存储数据的属性值),从第一存储立方体中确定第一目标存储立方体。

为了提高查找匹配的位置区域的效率。设置的查询顺序时既要确保单向,还要避免一轮查找过程中同一位置区域被多次遍历。

为了实现上述要求,在一些实施例中,上述数据存储方法还可以包括步骤:创建所述特定查询地图。可选地,如图5所示,上述创建所述特定查询地图的步骤包括:

步骤s201-1,获取待处理地图。

在一些实施例中,上述待处理地图需被存储数据的发生位置区域的地图数据。比如,应用于a市的交通管理服务器时,所需存储的是a市的交通数据,因此,将a市的地图数据作为待处理地图。

步骤s201-2,将待处理地图划分为多个地图区域,并建立地图区域之间的查询顺序。

在一些实施例中,可以将待处理地图均匀的划分为多个地图区域,然后,建立多个地图区域之间的查询顺序。建立多个地图区域之间的查询顺序可以依据地图区域之间地域上的相邻关系建立,使查询顺序上除排列在最后一个的地图区域以外,不同的地图区域对应的相邻下一个地图区域不同,每个地图区域与相邻下一个地图区域地域位置相邻。还得使查询顺序上除排列在第一位的地图区域以外,不同的地图区域对应的相邻上一个地图区域不同。例如,如图6所示,将待处理地图一分为四,然后,按照划分得到的地图区域之间在地域上的相邻关系建立查询顺序,以箭头构成的z曲线在图6中表征。

步骤s201-3,检验地图区域是否满足预设的精度要求。

在一些实施例中,可以通过检测地图区域的分辨率是否达到预设值判断其是否满足预设的精度要求。可以理解地,预设值设置越高,满足精度要求的分辨率越高,优势是更加精准,但是,地图区域也要划分足够小才能满足。如果地图区域满足预设的精度要求,流程进入步骤s201-4。反之,流程进入步骤s201-5。

步骤s201-4,为划分得到的各个地图区域赋予对应的位置属性值,得到位置区域,以生成特定查询地图。

在一些实施例中,为每一个地图区域一个唯一的位置属性值以作为位置区域,从而组合得到特定查询地图。接上例,分别给地图区域赋予位置属性值:00、01、10和11,从而得到位置区域,具有位置属性的位置区域和位置区域之间的查询顺序便构成如图7所示的特定查询地图。

步骤s201-5,将地图区域划分为多个子图区域,并建立每个地图区域对应的子图区域之间的查询顺序。

可以理解地,对地图区域再次划分,使划分后得到的子图区域的分辨率相较于划分前的地图区域能够得到提高。

在一些实施例中,分别对各个地图区域进行划分,每个地图区域被划分后均可以得到多个子图区域。换句话说,划分得到的子图区域原本是属于该地图区域的一部分。为了方便描述,下文中将每个地图区域划分后得到的子图区域简称为该地图区域对应的子图区域。

在一些实施例中,可以建立每个地图区域对应的子图区域之间的查询顺序。在一些实施例中,上述对地图区域的划分和建立各个地图区域对应的子图区域之间的查询顺序的原理与步骤s201-2中对待处理地图的划分及划分后得到的地图区域之间的查询顺序的原理相同,在此不再赘述。

步骤s201-6,重复检验子图区域是否满足预设的精度要求?

在一些实施例中,上述步骤s201-6与步骤s201-3的原理相同,在此不再赘述。如果子图区域满足预设的精度要求,流程进入步骤s201-7。反之,流程返回步骤s201-5对不满足精度要求的子图区域进行划分,并建立划分后得到的区域之间的查询顺序。

步骤s201-7,为划分得到的各个子图区域赋予对应的位置属性值,得到位置区域,以生成所述特定查询地图。

在一些实施例中,上述步骤s207与步骤s204的原理相同,在此不再赘述。

可见,在上述步骤s201-5到步骤s201-6之间形成循环,在循环过程中不断划分待处理地图,换句话说,如果得到的子图区域依然不能满足精度要求,则还可以继续对子图区域进行划分。如此循环,直至划分后得到的区域满足精度要求,退出循环,为最终划分得到的区域赋予唯一的位置属性值,以作为位置区域,从而生成特定查询地图。

可以理解地,无论把地图区域划分为多少子图区域,但是整体上地图区域之间的查询顺序是不变的。为了确保地图区域之间的查询顺序不变,在一些实施例中,在建立每个所述地图区域对应的子图区域之间的查询顺序之后,上述创建所述特定查询地图的步骤还包括:

依据地图区域之间的查询顺序,建立属于不同地图区域的子图区域之间的查询顺序。

例如,可以是确定地图区域之间的查询顺序上相邻的第一地图区域和第二地图区域,其中,第一地图区域在查询顺序上先于第二地图区域。确定第一地图区域所对应的子图区域中在查询顺序上排列于最后的子图区域及确定第二地图区域所对应的第一子图区域中在查询顺序上排列于首位的第二子图区域,将第一子图区域在查询顺序上排列于第二子图区域之前,使第一子图区域在查询顺序上与第二子图区域相邻。

例如,将图6中的地图区域再次划分并建立各个地图区域对应的子图区域之间的查询区域后,再建立属于不同地图区域的子图区域之间的查询顺序,结果如图8所示。

可以理解地,若是对子图区域划分得到对应的多个区域,那么依然可以采用上述步骤建立不同子图区域对应的区域之间的查询顺序。

上述待存储数据还可以包括事件发生时间信息。可以理解地,不同时间段发生的事件对查询者而言具有不同的查询意义,因此,还可以将事件发生时间信息作为具有查询意义的字段,也就是,待存储数据可以还包括一个查询字段,其内容为事件发生时间信息。

基于以上,在一些实施例中,如图9所示,上述步骤s101可以还包括以下子步骤:

子步骤s101-4,依据待存储数据对应的事件发生时间信息,获取与事件发生时间信息对应的第二存储立方体。

在一些实施例中,多维属性空间内具有与时间相关的属性维度。已有的存储立方体均具有一时间属性值。因此,利用待存储数据对应的事件发生时间信息则可以从已有的存储立方体中确定出与事件发生时间信息对应的第二存储立方体。

子步骤s101-5,依据待存储数据,从第二存储立方体中确定第一目标存储立方体。

在一些实施例中,上述步骤s101-5与步骤s101-3的原理相同,在此不再赘述。

可见无论是上述子步骤s101-3还是子步骤s101-5,均能够提高查找第一目标存储立方体的速度。在一些实施例中,还可以位置属性值和时间属性值相结合。

比如,先利用待存储数据对应的目标位置属性值从已有的存储立方体中获取第一存储立方体。再利用待存储数据对应的事件发生时间信息从第一存储立方体中获取第二存储立方体,最后,从第二存储立方体中确定出第一目标存储立方体。

再比如,先利用待存储数据对应的事件发生时间信息从已有的存储立方体中获取第二存储立方体。再利用待存储数据对应的目标位置属性值从第二存储立方体中获取第一存储立方体,最后,从第一存储立方体中确定出第一目标存储立方体。

在一些实施例中,上述步骤s103可以包括以下步骤:

(1)依据已有的存储立方体,获取第一目标属性。

在一些实施例中,上述第一目标属性为已有的存储立方体表征的属性值中与待存储数据匹配的属性值。上述与待存储数据匹配的属性值可以是与待存储数据对应的一个数据属性值相同的属性值。

(2)从待存储数据中提取第二目标属性。

在一些实施例中,上述第二目标属性为已有的存储立方体均未表征的属性值。

可以理解地,上述第一目标属性和第二目标属性互斥。若无第一目标属性,则表示待存储数据对应的所有数据属性值均为第二目标属性。

(3)依据上述第一目标属性及第二目标属性,生成新的存储立方体。

在一些实施例中,如果没有第一目标属性,则基于第二目标属性生成新的存储立方体。

接上述交通数据的存储的例子,若已有属性值分别为“京a、白色、张三、汉族、男”的存储立方体,此时得到待存储数据2对应的查询字段内容分别为“藏a1234、白色、张三、汉族、男”及待存储数据3对应的查询字段内容分别为“京a1234、白色、张三、维族、男”,则可以通过上述步骤新建存储立方体1和存储立方体2。其中,存储立方体1在多维属性空间中属性值分别为“藏a、白色、张三、汉族、男”,存储立方体2在多维属性空间中属性值分别为“京a、白色、张三、维族、男”。

为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据存储装置400的实现方式,可选地,该数据存储装置400可以采用上述图2所示的电子设备100的器件结构。进一步地,请参阅图10,图10为本发明实施例提供的一种数据存储装置400的功能模块图。需要说明的是,本实施例所提供的数据存储装置400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据存储装置400包括:查找模块401、存储模块402及创建模块403。

查找模块401,用于查找与待存储数据关联的第一目标存储立方体。

在一些实施例中,上述步骤s101可以由查找模块401执行。可选地,上述第一目标存储立方体表征的所有属性值与所述待存储数据匹配。

存储模块402,用于若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内。

在一些实施例中,上述步骤s102可以由存储模块402执行。

创建模块403,用于若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。

在一些实施例中,上述步骤s103可以由创建模块403执行。

与上述数据存储方法对应的,本发明实施例中,还提供了一种数据查询方法。如图11所示,上述数据查询方法可以包括以下步骤:

步骤s301,遍历存储立方体查找第二目标存储立方体。

上述第二目标存储立方体表征的属性值与查询条件匹配。上述查询条件可以是用户输入的查询字段。若查询条件包括多个查询字段,则第二目标存储立方体表征的属性值需要与查询字段的内容均匹配。

步骤s302,从第二目标存储立方体中查找目标数据。

可以理解地,上述步骤s301是数据查询的第一阶段,上述步骤s302为数据查询的第二阶段。在第一阶段采用存储立方体为查询基本单元,如此避免对每一条数据的遍历。同时,通过第二目标存储立方体的查找,缩小了寻找目标数据的范围,提高查找速度。

为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据查询装置500的实现方式,可选地,该数据查询装置500可以采用上述图2所示的电子设备100的器件结构。进一步地,请参阅图12,图12为本发明实施例提供的一种数据查询装置500的功能模块图。需要说明的是,本实施例所提供的数据查询装置500,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据查询装置500包括:遍历模块501及确定模块502。

遍历模块501,用于遍历所述存储立方体查找第二目标存储立方体。

在一些实施例中,上述步骤s301可以由遍历模块501执行。可选地,上述第二目标存储立方体表征的所有属性值与查询条件匹配。

确定模块502,用于从所述第二目标存储立方体中查找目标数据。

在一些实施例中,上述步骤s302可以由确定模块502执行。

可选地,上述模块可以软件或固件(firmware)的形式存储于图2所示的存储器101中或固化于该电子设备100的操作系统(operatingsystem,os)中,并可由图2中的处理器103执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器101中。

综上所述,本发明实施例提供的一种数据存储方法、数据查询方法及相关装置。其中,上述数据存储方法应用于电子设备,电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述存储立方体为数据查询中第一阶段的查询基本单元;所述数据存储方法包括:查找与待存储数据关联的第一目标存储立方体;其中,所述第一目标存储立方体表征的所有属性值与所述待存储数据匹配;若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内;若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。如此,需要查询数据时则可以先以存储立方体为基本单位进行查询,再从存储立方体中确定所需数据,避免遍历所有已存储的数据,从而,提高数据查询效率。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:

1.一种数据存储方法,其特征在于,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述存储立方体为数据查询中第一阶段的查询基本单元;所述数据存储方法包括:

查找与待存储数据关联的第一目标存储立方体;其中,所述第一目标存储立方体表征的所有属性值与所述待存储数据匹配;

若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内;

若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。

2.根据权利要求1所述的数据存储方法,其特征在于,所述存储立方体表征的属性值包括位置属性值,所述电子设备包括特定查询地图;所述特定查询地图包括多个被赋予不同位置属性值的位置区域;所有的所述位置区域之间存在查询顺序;所述查找与待存储数据关联的第一目标存储立方体的步骤包括:

依据所述待存储数据对应的事件发生位置信息,结合所述查询顺序,在所述特定查询地图上查找匹配的所述位置区域;

获取匹配的所述位置区域对应的目标位置属性值;

依据所述待存储数据,从具有所述目标位置属性值的第一存储立方体中确定所述第一目标存储立方体。

3.根据权利要求2所述的数据存储方法,其特征在于,所述数据存储方法还包括:创建所述特定查询地图;所述创建所述特定查询地图的步骤包括:

获取待处理地图;

将所述待处理地图划分为多个地图区域,并建立所述地图区域之间的查询顺序;

检验所述地图区域是否满足预设的精度要求;

若满足,则为划分得到的各个所述地图区域赋予对应的位置属性值,得到所述位置区域,以生成所述特定查询地图;

若不满足,则将所述地图区域划分为多个子图区域,并建立每个所述地图区域对应的子图区域之间的查询顺序,重复检验所述子图区域是否满足预设的精度要求,直至划分后得到的所述子图区域满足预设的所述精度要求,为划分得到的各个所述子图区域赋予对应的位置属性值,得到所述位置区域,以生成所述特定查询地图。

4.根据权利要求3所述的数据存储方法,其特征在于,在建立每个所述地图区域对应的子图区域之间的查询顺序之后,所述创建所述特定查询地图的步骤还包括:

依据所述地图区域之间的查询顺序,建立属于不同所述地图区域的子图区域之间的查询顺序。

5.根据权利要求1所述的数据存储方法,其特征在于,所述查找与待存储数据关联的第一目标存储立方体的步骤包括:

依据所述待存储数据对应的事件发生时间信息,获取与所述事件发生时间信息对应的第二存储立方体;

依据所述待存储数据,从所述第二存储立方体中确定所述第一目标存储立方体。

6.根据权利要求1所述的数据存储方法,其特征在于,所述依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体的步骤包括:

依据已有的所述存储立方体,获取第一目标属性;其中,所述第一目标属性为已有的所述存储立方体表征的所述属性值中与所述待存储数据匹配的属性值;

从所述待存储数据中提取第二目标属性;其中,所述第二目标属性为已有的所述存储立方体未表征的属性值;

依据所述第一目标属性及第二目标属性,生成新的所述存储立方体。

7.一种数据查询方法,其特征在于,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述数据查询方法包括:

遍历所述存储立方体查找第二目标存储立方体;其中,所述第二目标存储立方体表征的属性值与查询条件匹配;

从所述第二目标存储立方体中查找目标数据。

8.一种数据存储装置,其特征在于,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述存储立方体为数据查询中第一阶段的查询基本单元,所述数据存储装置包括:

查找模块,用于查找与待存储数据关联的第一目标存储立方体;其中,所述第一目标存储立方体表征的所有属性值与所述待存储数据匹配;

存储模块,用于若查找到所述第一目标存储立方体,则将所述待存储数据存储至所述第一目标存储立方体内;

创建模块,用于若未查找到所述第一目标存储立方体,依据从所述待存储数据中提取到的多类属性值,创建新的所述存储立方体,以便存储所述待存储数据。

9.一种数据查询装置,其特征在于,应用于电子设备,所述电子设备包括多个存储立方体;所述存储立方体内存储有多条存储数据;所述数据查询装置包括:

遍历模块,用于遍历所述存储立方体查找第二目标存储立方体;其中,所述第二目标存储立方体表征的所有属性值与查询条件匹配;

确定模块,用于从所述第二目标存储立方体中查找目标数据。

10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-6任一所述的方法。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。

技术总结
本发明实施例提出一种数据存储方法、数据查询方法及相关装置,涉及存储技术领域。其中,上述数据存储方法包括:查找与待存储数据关联的第一目标存储立方体;其中,第一目标存储立方体表征的所有属性值与待存储数据匹配;若查找到第一目标存储立方体,则将待存储数据存储至第一目标存储立方体内;若未查找到第一目标存储立方体,依据从待存储数据中提取到的多类属性值,创建新的存储立方体,以便存储待存储数据。如此,需要查询数据时则可以先以存储立方体为基本单位进行查询,再从存储立方体中确定所需数据,避免遍历所有已存储的数据,从而,提高数据查询效率。

技术研发人员:张峻源
受保护的技术使用者:北京明略软件系统有限公司
技术研发日:2020.01.13
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58277.html

最新回复(0)