数据获取模型建立的方法和数据获取的方法及装置与流程

文档序号:18301639发布日期:2019-07-31 10:13阅读:437来源:国知局
数据获取模型建立的方法和数据获取的方法及装置与流程

本发明涉及互联网技术应用领域,具体而言,涉及一种数据获取模型建立的方法和数据获取的方法及装置。



背景技术:

随着物联网、互联网的发展,现在已经进入了数据爆炸的时代,人类的活动、设备的活动正产生越来越多的行为数据。行为数据为大数据分析、人工智能等领域提供了很好的数据基础。

其中在数据分析的过程中,如大数据分析,在具体的示例中例如用户浏览网店的行为会产生如下的数据:

时间、网店id、商品id、用户id、用户年龄、用户位置、商品价格等等很多很多属性的数据。

基于上述多维度的数据,在大数据分析或人工智能领域,则需要对上述维度的数据进行透视分析,例如任意列、任意两列、任意n列的透视,进而透视得到勾选维度的人群、计数等。

为了提高数据搜索速度,提高过滤性,在相关技术中往往需要创建索引,但是由于透视维度是任意的,那么为了实现提高数据的搜索速度,则需要依据用户越来越多的需求创建众多的索引,而由于创建数量众多的索引所代理的系统容量成本升高,以及由于容量成本的升高进而导致的写入性能的下降,上述问题在相关技术中成为了普遍存在的问题。

针对上述由于现有技术创建数量众多的索引导致成本升高的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据获取模型建立的方法和数据获取的方法及装置,以至少解决现有技术创建数量众多的索引导致成本升高的技术问题。

根据本发明实施例的一个方面,提供了一种数据获取模型建立的方法,包括:将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组。

可选的,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为单列的情况下,以单列中的最大值和最小值为边界,切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,该方法还包括:依据接收到的搜索请求得到检索条件;根据检索条件所处的区间,获取区间在单列中所处的列位置;依据列位置提取检索条件对应的目标数据。

可选的,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为双列的情况下,以双列中的第一列的最大值和第一列的最小值,以及第二列的最大值和第二列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,该方法还包括:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为三列的情况下,以三列中的第一列的最大值和第一列的最小值、第二列的最大值和第二列的最小值、以及第三列的最大值和第三列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,该方法还包括:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为n列的情况下,以n列中的每列的最大值和每列的最小值为边界,切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,该方法还包括:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足每列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,各个区间标记对应色区,其中,各个色区对应的颜色深浅对应各个区间所记录的数据个数。

可选的,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为聚类集合的情况下,依据预设聚类规则得到n个区间,并将每条数据所在列的值依据所属的聚类区间,填入对应的聚类集合。

根据本发明实施例的另一方面,还提供了一种数据获取的方法,包括:获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;在分组中搜索满足检索条件的目标数据。

可选的,在分组中搜索满足检索条件的目标数据包括:在分组为单列的情况下,根据检索条件所处的区间,获取区间在单列中所处的列位置;依据列位置提取目标数据。

进一步地,可选的,在分组中搜索满足检索条件的目标数据包括:在分组为双列的情况下,根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,在分组中搜索满足检索条件的目标数据包括:在分组为三列的情况下,根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,在分组中搜索满足检索条件的目标数据包括:在分组为n列的情况下,根据检索条件确定同时满足每列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选的,在分组中搜索满足检索条件的目标数据包括:在分组为至少一个聚类集合的情况下,根据检索条件所处的区间确定在至少一个聚类集合中所处的聚类集合;在聚类集合中得到检索条件对应的目标数据。

根据本发明实施例的又一方面,还提供了一种数据获取模型建立的装置,包括:划分模块,用于将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;模型建立模块,用于每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组。

根据本发明实施例的再一方面,还提供了一种数据获取的装置,包括:条件获取模块,用于获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;查询模块,用于在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;搜索模块,用于在分组中搜索满足检索条件的目标数据。

根据本发明另一实施例的一方面,还提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的数据获取模型建立的方法和数据获取的方法。

根据本发明另一实施例的另一方面,还提供了一种处理器,包括:处理器用于运行程序,其中,程序运行时执行上述的数据获取模型建立的方法和数据获取的方法。

在本发明实施例中,采用通过聚类和排序实现多个列达到较高的过滤性的方式,通过将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组,达到了不需要创建索引的前提下,提高数据的过滤性,并降低了成本,进而解决了现有技术创建数量众多的索引导致成本升高的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种数据获取模型建立的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例一的数据获取模型建立的方法的流程图;

图2a是根据本发明实施例一的数据获取模型建立的方法中单列模型数据检索的流程图;

图2b是根据本发明实施例一的数据获取模型建立的方法中双列模型数据检索的流程图;

图2c是根据本发明实施例一的数据获取模型建立的方法中三列模型数据检索的流程图;

图2d是根据本发明实施例一的数据获取模型建立的方法中n列模型数据检索的流程图;

图3是根据本发明实施例一的数据获取模型建立的方法中单列的示意图;

图4a是根据本发明实施例一的数据获取模型建立的方法中双列的示意图;

图4b是根据本发明实施例一的数据获取模型建立的方法中双列获取单个列的示意图;

图5a是根据本发明实施例一的数据获取模型建立的方法中三列的示意图;

图5b是根据本发明实施例一的数据获取模型建立的方法中三列获取单个列的示意图;

图5c是根据本发明实施例一的数据获取模型建立的方法中三列获取多个列或单个列多个条件时的示意图;

图6是根据本发明实施例二的数据获取的方法的流程图;

图7是根据本发明实施例三的数据获取模型建立的装置的结构示意图;

图8是根据本发明实施例四的数据获取的装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请涉及的技术名词:

列相关性:指列的值与存储顺序的相关性。

列与列相关性:指列的值与另一列的值的相关性。

列与列局部相关性:指在部分数据集合中的列与列的相关性。

cube:方块,代表一块聚类集。

实施例1

根据本发明实施例,还提供了一种数据获取模型建立的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据获取模型建立的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据获取模型建立的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据获取模型建立的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的数据获取模型建立的方法。图2是根据本发明实施例一的数据获取模型建立的方法的流程图。本申请提供的数据获取模型建立的方法具体如下:

步骤s202,将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;

本申请上述步骤s202中,本申请提供的数据获取模型建立的方法可以适用于大数据分析或人工智能领域,其中,以大数据分析为优选示例进行说明,假设对用户的上网行为进行分析,本申请一个或多个列可以分别代表:用户id、年龄、上网时间、登录位置、浏览内容等类型。每个列中划分的多个区间可以表示在各个类型中的划分单位,例如,在年龄列和上网时间列中,设定年龄列的最大值为100岁,最小值为10岁,分割为10等份,则可以得到每个年龄段的上网用户的数量;同理对上网时间进行划分,设定最小时刻为1,最大时刻为24,分割为24小时,则可以得到每个时间段的上网用户数量。

步骤s204,每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组。

基于步骤s202中得到的列,本申请上述步骤s204中,通过每条数据在所在列上的做对应的区间,得到每条数据在一个或多个列中所述的分组,即,假设有一条数据为“20岁,的用户a,在12点,浏览网页a”,在用户账号列上就可以找到“用户a”,在年龄列上的某一年龄区间可以找到“20岁”所在的年龄区间,在上网时间列上的某一时间区间上可以找到“12点”所在的时间区间,同理,在行为列上的某一行为区间可以找到“浏览网页a”所在的行为区间。通过搜罗上述区间内数据,可以得到每条数据在一个或多个列中所属的区域,即本申请提供的分组。

具体的,通过以聚类的方式将用户上网行为进行划分排序,达到了不需要创建索引的前提下,通过获取用户上网行为的至少一个列,即可快速找到对应的数据。

在本发明实施例中,采用通过聚类和排序实现多个列达到较高的过滤性的方式,通过将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组,达到了不需要创建索引的前提下,提高数据的过滤性,并降低了成本,进而解决了现有技术创建数量众多的索引导致成本升高的技术问题。

具体的,本申请提供的数据获取模型建立的方法分别以单列、双列、三列和n列为例进行说明,具体如下:

模型一:单列。

可选的,步骤s204中每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:

步骤s2041,在每个列为单列的情况下,以单列中的最大值和最小值为边界,切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,图2a是根据本发明实施例一的数据获取模型建立的方法中单列模型数据检索的流程图;如图2a所示,本申请提供的数据获取模型建立的方法还包括:

步骤s205,依据接收到的搜索请求得到检索条件;

步骤s206,根据检索条件所处的区间,获取区间在单列中所处的列位置;

步骤s207,依据列位置提取检索条件对应的目标数据。

其中,在模型为单列的情况下,基于步骤s2041建立的单列模型,本申请提供的数据获取模型建立的方法,结合步骤s205至步骤s207,基于单列模型的基础上接收搜索请求,并依据接收到的搜索请求得到检索条件;根据检索条件所处的区间,获取区间在单列中所处的列位置;依据列位置提取检索条件对应的目标数据。

具体的,单列的建立:以时间列为例,上网行为为例进行说明,划分时间列,以0时为最小时刻,24时为最大时刻,划分为23个时间区间,将不同时段上网的用户依次填入23个时间区间中,假设,24小时中,0点到1点的上网人数为x;9点到10点的上网人数为y;12点到13点的上网人数为z;16点到17点上网人数为m,其中,x小于y,y小于z,z远远小于m,由此可以得到时间列中各个时间区间内上网的用户人数。

单列的应用:在接收到搜索请求后,其中搜索请求中的检索条件为:获取12点30分的上网人数;通过在时间列中时间区间的划分,12点30分位于12点至13点的时间区间,由此,在12点至13点的时间区间中获取该区间的上网人数,即,上网人数z,此时z为本申请通过单列查询得到的目标数据。

模型二:双列。

可选的,步骤s204中每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:

步骤s301,在每个列为双列的情况下,以双列中的第一列的最大值和第一列的最小值,以及第二列的最大值和第二列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,图2b是根据本发明实施例一的数据获取模型建立的方法中双列模型数据检索的流程图;如图2b所示,本申请提供的数据获取模型建立的方法还包括:

步骤s305,依据接收到的搜索请求得到检索条件;

步骤s306,根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;

步骤s307,依据区间集合获取检索条件对应的目标数据。

其中,在模型为双列的情况下,基于步骤s301建立的双列模型,本申请提供的数据获取模型建立的方法,结合步骤s305至步骤s307,基于双列模型的基础上接收搜索请求,并依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

具体的,双列的建立:以时间列和年龄列为例,上网行为为例进行说明,划分时间列,以0时为最小时刻,24时为最大时刻,划分为23个时间区间,将不同时段上网的用户依次填入23个时间区间中;以10岁为最小年龄,100岁为最大年龄,划分9个年龄区间,将不同年龄上网的用户依次填入9个年龄区间中;假设,24小时中,0点到1点,年龄在20至30岁的上网人数为x’;9点到10点,年龄在20至30,30至40以及40至50的上网人数为y’;12点到13点,年龄在10至20,20至30,30至40,40至50以及50至60的上网人数为z’;16点到17点,年龄在10至20,20至30上网人数为m’,其中,x’小于y’,y’小于z’,m’远远小于z’,由此可以得到时间列中各个时间区间内,不同年龄区间上网的用户人数。

双列的应用:在接收到搜索请求后,其中搜索请求中的检索条件为:获取12点30分,年龄为25的上网人数;通过在时间列中时间区间的划分,12点30分位于12点至13点的时间区间,25位于20至30的年龄区间,由此,在12点至13点的时间区间,20岁至30岁的年龄区间中获取该区间的上网人数,即,上网人数z’,此时z’为本申请通过单列查询得到的目标数据。

模型三:三列。

可选的,步骤s204中每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:

步骤s401,在每个列为三列的情况下,以三列中的第一列的最大值和第一列的最小值、第二列的最大值和第二列的最小值、以及第三列的最大值和第三列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,图2c是根据本发明实施例一的数据获取模型建立的方法中三列模型数据检索的流程图;如图2c所示,本申请提供的数据获取模型建立的方法还包括:

步骤s405,依据接收到的搜索请求得到检索条件;

步骤s406,根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;

步骤s407,依据区间集合获取检索条件对应的目标数据。

其中,在模型为三列的情况下,基于步骤s401建立的三列模型,本申请提供的数据获取模型建立的方法,结合步骤s405至步骤s407,基于三列模型的基础上接收搜索请求,并依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

模型四:n列。

可选的,步骤s204中每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:

步骤501,在每个列为n列的情况下,以n列中的每列的最大值和每列的最小值为边界,切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选的,图2d是根据本发明实施例一的数据获取模型建立的方法中n列模型数据检索的流程图;如图2d所示,本申请提供的数据获取模型建立的方法还包括:

步骤s505,依据接收到的搜索请求得到检索条件;

步骤s506,根据检索条件确定同时满足每列的区间的区间集合;

步骤s507,依据区间集合获取检索条件对应的目标数据。

其中,在模型为n列的情况下,基于步骤s501建立的n列模型,本申请提供的数据获取模型建立的方法,结合步骤s505至步骤s507,基于n列模型的基础上接收搜索请求,并依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足每列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

同理,对应单列和双列的举例,通过每增加一个维度的数据可获取到更详细的数据分析结果。上述示例仅为实现本申请提供的数据获取模型建立的方法,以实现本申请提供的数据获取模型建立的方法为准,具体不做限定。

可选的,各个区间标记对应色区,其中,各个色区对应的颜色深浅对应各个区间所记录的数据个数。

可选的,步骤s204中每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:

步骤s601,在每个列为聚类集合的情况下,依据预设聚类规则得到n个区间,并将每条数据所在列的值依据所属的聚类区间,填入对应的聚类集合。

具体的,基于上述四个模型,还在存在k-means或k-nn聚类算法存在的情况,通过预设聚类规则,得到n个区间,并进而得到至少一个聚类集合。

综上,本申请提供的数据获取模型建立的方法提供了四种数据获取模型,对应上述四个模型具体如下:

模型一:单列。

单列,按单列最大值、最小值作为边界,切分为均匀的n个区间,将数据按值的大小填到各个区间。每个区间的边界清晰。图3是根据本发明实施例一的数据获取模型建立的方法中单列的示意图,具体详见图3。

模型二:双列。

将两列的值投射到平面坐标,每一列分别按它的最大值、最小值切分为n个区间,按列对应的值填充到对应的区间。每个数据块的边界清晰。图4a是根据本发明实施例一的数据获取模型建立的方法中双列的示意图,具体详见图4a。

为了提高任意列的过滤性,将数据按每一列的边界均匀切分,填充到对应的区间。当需要查询a列符合某个条件的数据时,只需要搜索坐标系中,a列这个维度符合条件区间的所有数据块。图4b是根据本发明实施例一的数据获取模型建立的方法中双列获取单个列的示意图,具体如图4b所示。

模型三:三列。

将x,y,z三列的值投射到3维坐标,按每列的最大值、最小值为边界切分为n个区间,将数据投射到对应的box。每个数据块的边界清晰。图5a是根据本发明实施例一的数据获取模型建立的方法中三列的示意图,具体详见图5a。

当需要查询a列符合某个条件的数据时,只需要搜索坐标系中,a列这个维度符合条件区间的所有数据块。图5b是根据本发明实施例一的数据获取模型建立的方法中三列获取单个列的示意图,具体如图5b所示。

当需要搜索多个列,或者单个列多个条件的数据时,只需要搜索坐标系中对应的数据块。图5c是根据本发明实施例一的数据获取模型建立的方法中三列获取多个列或单个列多个条件时的示意图,具体如图5c所示。

模型四:n列。

将多列的值投射到n维坐标,按每列的最大值、最小值为边界切分为n个区间,将数据投射到对应的cube。每个数据块的边界清晰。

需要说明的是,本申请由图4a至图5c中方块上的条纹指代颜色,本申请提供的单列,双列、三列以及n列中的方块颜色代表颜色越深,记录数越多。而图4a至图5c中方块上的条纹可以依据实际情况指代不同的颜色以及各个颜色的深浅程度,这里不做具体限定,以实现本申请提供的数据获取模型建立的方法为准。

其中,n大于3,且为自然数。

本申请提供的数据获取模型建立的方法,在不需要创建索引的前提下,提高数据的过滤性。同时解决容量和写入性能下降的问题。通过聚类和排序实现多个列达到较高的过滤性,采用本申请提供的数据获取模型建立的方法,对数据进行多维分析、规划后。可以在不创建索引的情况下,搜索任意列都能做到很好的过滤性。例如10亿以上数据,在没有索引的情况下,多列过滤可以做到毫秒级别。

实施例2

本申请提供了如图6所示的数据获取的方法。图6是根据本发明实施例二的数据获取的方法的流程图。本申请提供的数据获取的方法具体如下:

步骤s602,获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;

步骤s604,在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;

步骤s606,在分组中搜索满足检索条件的目标数据。

具体的,对应实施例1中提供的数据获取模型建立的方法,在获取到预先建立的数据获取模型的基础上,当得到搜索请求后,根据搜索请求中的检索条件在预先建立的多个分组中查找该检索条件对应的分组,依据得到的分组获取满足检索条件的目标数据,即,假设有一条数据为“20岁,的用户a,在12点,浏览网页a”,在用户账号列上就可以找到“用户a”,在年龄列上的某一年龄区间可以找到“20岁”所在的年龄区间,在上网时间列上的某一时间区间上可以找到“12点”所在的时间区间,同理,在行为列上的某一行为区间可以找到“浏览网页a”所在的行为区间。通过搜罗上述区间内数据,可以得到每条数据在一个或多个列中所属的区域,即本申请提供的分组,进而依据该分组得到满足检索条件的目标数据。

在本发明实施例中,采用通过聚类和排序实现多个列达到较高的过滤性的方式,通过获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;在分组中搜索满足检索条件的目标数据,达到了不需要创建索引的前提下,提高数据的过滤性,并降低了成本,进而解决了现有技术创建数量众多的索引导致成本升高的技术问题。

可选的,步骤s606中在分组中搜索满足检索条件的目标数据包括:

步骤s6061,在分组为单列的情况下,根据检索条件所处的区间,获取区间在单列中所处的列位置;

步骤s6062,依据列位置提取目标数据。

具体的,在单列包括以时间列为例,上网行为的情况下,划分时间列,以0时为最小时刻,24时为最大时刻,划分为23个时间区间,将不同时段上网的用户依次填入23个时间区间中,假设,24小时中,0点到1点的上网人数为x;9点到10点的上网人数为y;12点到13点的上网人数为z;16点到17点上网人数为m,其中,x小于y,y小于z,z远远小于m,由此可以得到时间列中各个时间区间内上网的用户人数。

在接收到搜索请求后,其中搜索请求中的检索条件为:获取12点30分的上网人数;通过在时间列中时间区间的划分,12点30分位于12点至13点的时间区间,由此,在12点至13点的时间区间中获取该区间的上网人数,即,上网人数z,此时z为本申请通过单列查询得到的目标数据。

进一步地,可选的,步骤s606中在分组中搜索满足检索条件的目标数据包括:

步骤s6063,在分组为双列的情况下,根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;

步骤s6064,依据区间集合获取检索条件对应的目标数据。

具体的,在双列包括:以时间列和年龄列为例,上网行为的情况下,划分时间列,以0时为最小时刻,24时为最大时刻,划分为23个时间区间,将不同时段上网的用户依次填入23个时间区间中;以10岁为最小年龄,100岁为最大年龄,划分9个年龄区间,将不同年龄上网的用户依次填入9个年龄区间中;假设,24小时中,0点到1点,年龄在20至30岁的上网人数为x’;9点到10点,年龄在20至30,30至40以及40至50的上网人数为y’;12点到13点,年龄在10至20,20至30,30至40,40至50以及50至60的上网人数为z’;16点到17点,年龄在10至20,20至30上网人数为m’,其中,x’小于y’,y’小于z’,m’远远小于z’,由此可以得到时间列中各个时间区间内,不同年龄区间上网的用户人数。

在接收到搜索请求后,其中搜索请求中的检索条件为:获取12点30分,年龄为25的上网人数;通过在时间列中时间区间的划分,12点30分位于12点至13点的时间区间,25位于20至30的年龄区间,由此,在12点至13点的时间区间,20岁至30岁的年龄区间中获取该区间的上网人数,即,上网人数z’,此时z’为本申请通过单列查询得到的目标数据。

可选的,步骤s606中在分组中搜索满足检索条件的目标数据包括:

步骤s6065,在分组为三列的情况下,根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;

步骤s6066,依据区间集合获取检索条件对应的目标数据。

可选的,步骤s606中在分组中搜索满足检索条件的目标数据包括:

步骤s6067,在分组为n列的情况下,根据检索条件确定同时满足每列的区间的区间集合;

步骤s6068,依据区间集合获取检索条件对应的目标数据。

同理,对应单列和双列的举例,通过每增加一个维度的数据可获取到更详细的数据分析结果。上述示例仅为实现本申请提供的数据获取的方法,以实现本申请提供的数据获取的方法为准,具体不做限定。

可选的,步骤s606中在分组中搜索满足检索条件的目标数据包括:

步骤s6069,在分组为至少一个聚类集合的情况下,根据检索条件所处的区间确定在至少一个聚类集合中所处的聚类集合;

步骤s60610,在聚类集合中得到检索条件对应的目标数据。

区别于上述示例,结合步骤s6069和步骤s60610,当使用聚类算法,例如k-means算法或knn算法时,通过预先设定的聚类集合,判断该检索条件所处的区间位于哪个聚类集合中,根据所属的聚类结合获取所述检索条件对应的目标数据。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据获取的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例3

根据本发明实施例,还提供了一种用于实施上述数据获取模型建立的方法的装置,如图7所示,该装置包括:

图7是根据本发明实施例三的数据获取模型建立的装置的结构示意图。

如图7所示,该数据获取模型建立的装置包括:划分模块72和模型建立模块74。

其中,划分模块72,用于将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;模型建立模块74,用于每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组。

在本发明实施例中,采用通过聚类和排序实现多个列达到较高的过滤性的方式,通过将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组,达到了不需要创建索引的前提下,提高数据的过滤性,并降低了成本,进而解决了现有技术创建数量众多的索引导致成本升高的技术问题。

此处需要说明的是,上述划分模块72和模型建立模块74对应于实施例一中的步骤s202至步骤s204,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的数据获取模型建立的方法中,可以通过软件实现,也可以通过硬件实现。

实施例4

根据本发明实施例,还提供了一种用于实施上述数据获取的方法的装置,如图8所示,该装置包括:

图8是根据本发明实施例四的数据获取的装置的结构示意图。

如图8所示,该数据获取的装置包括:条件获取模块82、查询模块84和搜索模块86。

其中,条件获取模块82,用于获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;查询模块84,用于在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;搜索模块86,用于在分组中搜索满足检索条件的目标数据。

在本发明实施例中,采用通过聚类和排序实现多个列达到较高的过滤性的方式,通过获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;在分组中搜索满足检索条件的目标数据,达到了不需要创建索引的前提下,提高数据的过滤性,并降低了成本,进而解决了现有技术创建数量众多的索引导致成本升高的技术问题。

此处需要说明的是,上述条件获取模块82、查询模块84和搜索模块86对应于实施例二中的步骤s602至步骤s606,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的数据获取的方法中,可以通过软件实现,也可以通过硬件实现。

实施例5

根据本发明另一实施例的一方面,还提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1中的数据获取模型建立的方法和实施例2中的数据获取的方法。

实施例6

根据本发明另一实施例的另一方面,还提供了一种处理器,包括:处理器用于运行程序,其中,程序运行时执行上述实施例1中的数据获取模型建立的方法和实施例2中的数据获取的方法。

实施例7

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据获取模型建立的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将一个或多个列中的每个列划分为多个区间,其中,数据库中存储的一个或多条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在列为单列的情况下,以单列中的最大值和最小值为边界,均匀切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据接收到的搜索请求得到检索条件;根据检索条件所处的区间,获取区间在单列中所处的列位置;依据列位置提取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在列为双列的情况下,以双列中的第一列的最大值和第一列的最小值,以及第二列的最大值和第二列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在列为三列的情况下,以三列中的第一列的最大值和第一列的最小值、第二列的最大值和第二列的最小值、以及第三列的最大值和第三列的最小值为边界,对每列切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在列为n列的情况下,以n列中的每列的最大值和每列的最小值为边界,切分得到n个区间,并将每条数据所在列的值依据对应的值的大小依次填入各个区间。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据接收到的搜索请求得到检索条件;根据检索条件确定同时满足每列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:各个区间标记对应色区,其中,各个色区对应的颜色深浅对应各个区间所记录的数据个数。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组包括:在每个列为聚类集合的情况下,依据预设聚类规则得到n个区间,并将每条数据所在列的值依据所属的聚类区间,填入对应的聚类集合。

实施例8

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据获取的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取搜索请求中的检索条件,其中,搜索请求用于在数据库中存储的一个或多条数据中查找目标数据,多条数据中的每一条数据中的字段存在至少一个相同,每个相同的字段对应的值为一列;在预先建立的多个分组中查找检索条件对应的分组,其中,将一个或多个列中的列划分为多个区间;每条数据均根据每条数据所在列的值对应到多个区间中的一个,得到每条数据在一个或多个列中所属的分组;在分组中搜索满足检索条件的目标数据

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在分组中搜索满足检索条件的目标数据包括:在分组为单列的情况下,根据检索条件所处的区间,获取区间在单列中所处的列位置;依据列位置提取目标数据。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在分组中搜索满足检索条件的目标数据包括:在分组为双列的情况下,根据检索条件确定同时满足双列中第一列的区间和第二列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在分组中搜索满足检索条件的目标数据包括:在分组为三列的情况下,根据检索条件确定同时满足三列中第一列的区间、第二列的区间和第三列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在分组中搜索满足检索条件的目标数据包括:在分组为n列的情况下,根据检索条件确定同时满足每列的区间的区间集合;依据区间集合获取检索条件对应的目标数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在分组中搜索满足检索条件的目标数据包括:在分组为至少一个聚类集合的情况下,根据检索条件所处的区间确定在至少一个聚类集合中所处的聚类集合;在聚类集合中得到检索条件对应的目标数据。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1