数据钻取方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据钻取方法和装置。
背景技术
在数据分析场景中,数据库内可以存储有业务数据,比如交易明细数据等。当业务指标发生波动时,比如交易量发生下跌时,通过在数据库内钻取数据可以确定数据波动的主要原因。
目前在数据库内钻取数据时,通常遍历所有维度的数据,对各个维度的数据均进行下钻。然而,遍历所有维度的数据具有数据钻取速度慢、效率低的问题。
发明内容
本申请实施例的目的是提供一种数据钻取方法和装置,以提高数据钻取效率。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种数据钻取方法,包括:
获取待钻取的多条目标数据;其中,所述多条目标数据具有对应的数据维度,各条所述目标数据中记录有与所述数据维度相对应的维度值;
通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个所述可枚举维度之间的层级关系;
基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取。
本申请实施例提供了一种数据钻取装置,包括:
数据获取模块,用于获取待钻取的多条目标数据;其中,所述多条目标数据具有对应的数据维度,各条所述目标数据中记录有与所述数据维度相对应的维度值;
层级确定模块,用于通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个所述可枚举维度之间的层级关系;
数据钻取模块,用于基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取。
本申请实施例提供了一种数据钻取设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述的数据钻取方法的步骤。
本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现上述的数据钻取方法的步骤。
通过本申请实施例,首先获取待钻取的多条目标数据,然后通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系,最后基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取。由于本申请实施例中基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,不需要对所有维度的数据均进行下钻,因此能够提高数据钻取效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据钻取方法的流程示意图;
图2a为本申请一实施例提供的班级维度对应的维度值取值数量与目标数据的条数之间的关系示意图;
图2b为本申请一实施例提供的姓名维度对应的维度值取值数量与目标数据的条数之间的关系示意图;
图3为本申请一实施例提供的可枚举维度之间的层级关系的示意图;
图4为本申请一实施例提供的数据钻取装置的模块组成示意图;
图5为本申请一实施例提供的数据钻取设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供的数据钻取方法可以由数据钻取设备执行,数据钻取设备可以为后台服务器。图1为本申请一实施例提供的数据钻取方法的流程示意图,如图1所示,该方法包括以下流程:
步骤S102,获取待钻取的多条目标数据;其中,该多条目标数据具有对应的数据维度,各条目标数据中记录有与该数据维度相对应的维度值;
步骤S104,通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系;
步骤S106,基于可枚举维度和各个可枚举维度之间的层级关系,逐层对上述的多条目标数据进行钻取。
可见,通过本申请实施例,首先获取待钻取的多条目标数据,然后通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系,最后基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取。由于本申请实施例中基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,不需要对所有维度的数据均进行下钻,因此能够提高数据钻取效率。
上述步骤S102中,获取待钻取的多条目标数据,该多条目标数据具有对应的数据维度,各条目标数据中记录有与该数据维度相对应的维度值。
比如,目标数据可以为线下交易日志数据,则目标数据对应的数据维度包括但不限于:交易时间、交易金额、付款方、收款品牌、交易门店、交易街道、交易城市、交易国家等,该例中,一条目标数据可以举例为:2019年1月1日12点-500元-张三-肯德基-肯德基新业路店-新业路-武汉市-中国。
又如,目标数据可以为学习成绩数据,则目标数据对应的数据维度包括但不限于:姓名、性别、年龄、班级、年级、科目、成绩等,该例中,一条目标数据可以举例为:小红-女-12岁-3班-5年级-语文-99分。
上述步骤S104中,通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系。
可枚举维度指的是对应的维度值的取值能够枚举的维度,可枚举维度对应的维度值的取值的数量随着目标数据的条数的增多而呈现收敛状态。比如上面的例子中,收款品牌、交易门店、交易街道、交易城市、交易国家属于可枚举维度,班级、年级、科目、成绩属于可枚举维度。
本申请实施例中,通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,具体可以是:
(a1)在多条目标数据中分次提取不同条数的目标数据,在每次提取出来的目标数据中,确定每个数据维度对应的维度值取值数量;
(a2)根据每次提取出的目标数据中每个数据维度对应的维度值取值数量,以及,每次提取出来的目标数据的条数,确定随目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度;
(a3)将该对应的维度值取值数量呈现收敛状态的数据维度确定为可枚举维度。
具体地,上述动作(a1)中,在多条目标数据中分次提取不同条数的目标数据,比如在多条目标数据中分别3次提取不同条数的目标数据,比如第一次提取500条目标数据,第二次提取5000条目标数据,第三次提取50000条目标数据。在每次提取出来的目标数据中,确定每个数据维度对应的维度值取值数量,维度值取值数量为对应的数据维度所取的不同的维度值的数量。比如,假设数据维度包括“城市”和“国家”,则在第一次提取出来的500条目标数据中,确定“城市”对应的维度值取值数量,比如“城市”对应的维度值取值数量为三个,分别为杭州武汉和上海,以及确定“国家”对应的维度值取值数量,比如“国家”对应的维度值取值数量为两个,分别为中国和日本;当然,还需要在第二次提取出来的5000条目标数据和第三次提取出来的50000条目标数据中重复上述过程,这里不再赘述。
上述动作(a2)中,可以针对每个数据维度,通过直线拟合或者曲线拟合的方式,拟合每次提取出的目标数据中该数据维度对应的维度值取值数量,与,每次提取出来的目标数据的条数之间的关系,从而得到每个数据维度对应的维度值取值数量与目标数据的条数之间的关系,从而根据该关系确定随目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度。其中,直线拟合可以采用最小二乘法的拟合方式,曲线拟合可以采用指数拟合或者对数拟合的方式。
本实施例中,根据拟合得到的关系判断随目标数据的条数的增长,对应的维度值取值数量是否呈现收敛状态,可以为:若在拟合出来的关系中,随着目标数据的条数的增长,维度值取值数量的斜率趋近于0,则确定维度值取值数量呈现收敛状态,否则,确定维度值取值数量不呈现收敛状态。
一个具体的例子中,数据维度包括“班级”和“姓名”。第一次提取出来的500条目标数据中,“班级”维度对应的维度值取值数量为5,“姓名”维度对应的维度值取值数量为50,第二次提取出来的5000条目标数据中,“班级”维度对应的维度值取值数量为10,“姓名”维度对应的维度值取值数量为200,第三次提取出来的50000条目标数据中,“班级”维度对应的维度值取值数量为10,“姓名”维度对应的维度值取值数量为500。
则本实施例中,可以通过数据拟合的方式,拟合得到如图2a所示的班级维度对应的维度值取值数量与目标数据的条数之间的关系,以及拟合得到如图2b所示的姓名维度对应的维度值取值数量与目标数据的条数之间的关系,由于图2a中的线条的斜率趋近于0,图2b中的线条的斜率趋近于1,因此根据这两个关系,确定随目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度为“班级”。
上述(a3)中,将该对应的维度值取值数量呈现收敛状态的数据维度确定为可枚举维度。续接上例,将“班级”维度作为可枚举维度,则“姓名”维度为不可枚举维度。
本申请实施例中,通过筛选数据维度中的可枚举维度,可以减少数据下钻时的数据分析和计算的工作量,从而提高数据下钻效率。
上述步骤S104中,通过数据挖掘的方式,确定各个可枚举维度之间的层级关系。比如,可枚举维度包括国家、城市和社区,则通过数据挖掘的方式,确定各个可枚举维度之间的层级关系为:国家——城市——社区。
本实施例中,通过数据挖掘的方式,确定各个可枚举维度之间的层级关系,具体为:
(b1)通过预设的关联规则挖掘算法,在可枚举维度对应的各个维度值中挖掘得到多个目标维度值对;其中,目标维度值对包括第一维度值和第二维度值,记录有第一维度值的目标数据中记录有第二维度值的概率满足第一概率要求,记录有第二维度值的目标数据中记录有第一维度值的概率满足第二概率要求;
(b2)确定第一维度值所在的可枚举维度为第一可枚举维度,确定第二维度值所在的可枚举维度为第二可枚举维度;
(b3)若第一可枚举维度的超过预定数量比例的维度值分别与第二可枚举维度的多个维度值组成目标维度值对,则确定第一可枚举维度为第二可枚举维度的上级维度。
上述动作(b1)的具体过程可以为:对于每条目标数据,确定该条目标数据中存在的可枚举维度的维度值并提取出来,将从该条目标数据中提取出来的可枚举维度的维度值进行两两组合,得到该条目标数据对应的多个维度值对,其中,每个维度值对中包括从该条目标数据中提取出来的两个可枚举维度的维度值。在得到每条目标数据对应的多个维度值对后,将各条目标数据对应的多个维度值对输入至预设的关联规则挖掘算法,通过该关联规则挖掘算法在输入的多个维度值对中挖掘得到目标维度值对。本实施例中,预设的关联规则挖掘算法可以为apriori算法。
目标维度值对包括第一维度值和第二维度值,第一维度值可以表示为A,第二维度值可以表示为B,则记录有第一维度值的目标数据中记录有第二维度值的概率可以表示为第一置信度P(B|A),记录有第二维度值的目标数据中记录有第一维度值的概率可以表示为第二置信度P(A|B)。本实施例中,要求第一置信度P(B|A)满足第一概率要求,第二置信度P(A|B)满足第二概率要求。本实施例中,可以设置第一置信度P(B|A)对应的第一概率要求为概率值大于0小于1,可以设置第二置信度P(A|B)对应的第二概率要求为概率值等于1。
本实施例中,在挖掘目标维度值对的过程中,对于输入的每个维度值对,可以先计算该维度值对中的两个维度值记录在同一条目标数据中的概率,该概率可以通过支持度的形式表示,若该概率小于概率阈值,则在输入的多个维度值对中删除该维度值对,若该概率大于等于概率阈值,则判断该维度值对的第一置信度和第二置信度是否分别满足第一概率要求和第二概率要求。
上述动作(b2)至动作(b3)中,确定第一维度值所在的可枚举维度为第一可枚举维度,确定第二维度值所在的可枚举维度为第二可枚举维度。若第一可枚举维度的超过预定数量比例的维度值(比如超过90%的维度值)中的每个维度值分别与第二可枚举维度的多个维度值组成目标维度值对,则确定第一可枚举维度为第二可枚举维度的上级维度。比如第一可枚举维度对应第一维度值M1和M2,第二可枚举维度对应第二维度值N1、N2、N3、N4,若M1和N1组成目标维度值对、M1和N2组成目标维度值对、M2和N3组成目标维度值对、M2和N4组成目标维度值对,则确定第一可枚举维度为第二可枚举维度的上级维度。
一个具体的例子中,通过上述动作(b1),挖掘得到目标维度值对包括(中国,杭州),则上述动作(b2)中,将“中国”所在的可枚举维度“国家”作为第一可枚举维度,将“杭州”所在的可枚举维度“城市”作为第二可枚举维度,并确定第一可枚举维度对应的维度值为“中国”和“日本”,确定第二可枚举维度对应的维度值为“杭州”、“武汉”、“大阪”和“东京”。上述动作(b3)中,若确定第一可枚举维度的每个维度值分别与第二可枚举维度的多个维度值组成目标维度值对,比如组成目标维度值对(中国,武汉)、(中国,杭州)、(日本,大阪)、(日本,东京),则确定“国家”为“城市”的上级维度。
本申请实施例中,通过数据挖掘的方式确定可枚举维度之间的层级关系,能够减少下钻维度,提高数据钻取与分析的效率。
上述步骤S106中,基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,具体包括:
(c1)按照各个可枚举维度之间的层级关系,确定前次下钻的可枚举维度的各个下一层可枚举维度,在该各个下一层可枚举维度中选取本次下钻的可枚举维度;其中,第一次下钻时在第一层的可枚举维度中选取第一次下钻的可枚举维度;
(c2)根据前次下钻的维度值,在本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值;其中,第一次下钻时在第一次下钻的可枚举维度对应的各个维度值中选取第一次下钻的维度值;
(c3)若按照各个可枚举维度之间的层级关系,确定本次下钻的可枚举维度具有对应的下层可枚举维度,则继续确定下次下钻的可枚举维度和下次下钻的维度值,反之,将包含本次下钻的维度值的目标数据作为数据钻取结果。
上述动作(c1)中,首先在按照各个可枚举维度之间的层级关系,确定前次下钻的可枚举维度的各个下一层可枚举维度。然后,在该各个下一层可枚举维度中选取本次下钻的可枚举维度。其中,第一次下钻时,在第一层的可枚举维度中选取第一次下钻的可枚举维度。
上述动作(c2)中,确定本次下钻的可枚举维度对应的各个维度值,然后,根据前次下钻的维度值,在本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值。其中,第一次下钻时,在第一次下钻的可枚举维度对应的各个维度值中选取第一次下钻的维度值。
上述动作(c3)中,按照各个可枚举维度之间的层级关系,判断本次下钻的可枚举维度是否具有对应的下层维度,若具有,则重复上述动作(c1)和动作(c2),继续确定下次下钻的可枚举维度和下次下钻的维度值。若不具有,则在多条目标数据中获取包含本次下钻的维度值的目标数据,将包含本次下钻的维度值的目标数据作为数据钻取结果。当数据发生波动时,通过分析数据钻取结果可以确定数据波动的主要原因。
一个具体的例子中,可枚举维度包括“国家”、“城市”和“餐饮品牌”,“国家”为“城市”的上层维度,“国家”为“餐饮品牌”的上层维度。“国家”对应的维度值为“中国”和“日本”,“城市”对应的维度值为“杭州”、“武汉”、“大阪”、“东京”,“餐饮品牌”对应的维度值为“肯德基”和“麦当劳”。其中,当线下门店的交易量下跌时,前次下钻的可枚举维度为“国家”,前次下钻的维度值为“中国”。则通过上述动作(c1)至(c3),首先在“城市”和“餐饮品牌”两个可枚举维度中选取本次下钻的可枚举维度,假设为“城市”,然后,根据前次下钻的维度值“中国”,在“城市”对应的各个维度值中选取本次下钻的维度值,假设为“杭州”,由于“城市”不具有对应的下层可枚举维度,因此将包含“杭州”的多条目标数据作为数据钻取结果,通过分析数据钻取结果,可以确定交易量下跌的主要原因。
本实施例中,基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,由于不需要遍历所有数据维度,因此能够达到提高数据钻取和分析效率的效果。
上述动作(c1)中,在上述的各个下一层可枚举维度中选取本次下钻的可枚举维度,具体地:计算上述的各个下一层可枚举维度针对数据波动的交叉熵,在上述的各个下一层可枚举维度中选取交叉熵最大的维度作为本次下钻的可枚举维度。
具体地,当数据波动时,能够计算每个数据维度针对数据波动的交叉熵,则本实施例中,可以采用通用的交叉熵算法,计算上述的各个下一层可枚举维度针对数据波动的交叉熵,并在上述的各个下一层可枚举维度中,选取交叉熵最大的维度作为本次下钻的可枚举维度。本实施例中,选取交叉熵最大的可枚举维度作为下钻的可枚举维度,能够达到提高数据钻取和分析效率的目的。
上述动作(c1)中,在上述的各个下一层可枚举维度中选取本次下钻的可枚举维度,还可以为:分别确定每个下一层可枚举维度对应的各个维度值,在确定的各个维度值中筛选与前次下钻的维度值相关的维度值,计算筛选得到的各个相关的维度值针对数据波动的贡献度,将贡献度最大的相关的维度值所在的下一层可枚举维度作为本次下钻的可枚举维度。
其中,与前次下钻的维度值相关的维度值满足以下要求:记录有前次下钻的维度值的目标数据中记录有该相关的维度值的概率满足第一概率要求,记录有该相关的维度值的目标数据中记录有前次下钻的维度值的概率满足第二概率要求。本实施例中,可以设置第一概率要求为概率值大于0小于1,第二概率要求为等于1,也即,记录有前次下钻的维度值的目标数据中不一定记录有该相关的维度值,但是记录有该相关的维度值的目标数据中一定记录有前次下钻的维度值。
以上例为例,当线下门店的交易量下跌时,前次下钻的可枚举维度为“国家”,前次下钻的维度值为“中国”。下一层可枚举维度包括“城市”和“餐饮品牌”,“城市”对应的维度值为“杭州”、“武汉”、“大阪”、“东京”,“餐饮品牌”对应的维度值为“肯德基”和“麦当劳”。则本实施例中,首先确定“城市”和“餐饮品牌”对应的各个维度值,并在“城市”和“餐饮品牌”对应的各个维度值中筛选与“中国”相关的维度值,其中,“杭州”、“武汉”、“肯德基”和“麦当劳”为与“中国”相关的维度值,然后计算各个相关的维度值针对交易量下跌的贡献度,假设“杭州”的贡献度最大,则将“杭州”所在的可枚举维度“城市”作为本次下钻的可枚举维度。
本实施例中,选取贡献度最大的相关的维度值所在的下一层可枚举维度作为本次下钻的可枚举维度,能够达到提高数据钻取和分析效率的目的。
上述动作(c2)中,根据前次下钻的维度值,在本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值,具体为:在本次下钻的可枚举维度对应的各个维度值中,筛选与前次下钻的维度值相关的维度值,并计算筛选得到的各个相关的维度值针对数据波动的贡献度,在筛选得到的各个相关的维度值中,选取贡献度最大的维度值作为本次下钻的维度值。
与前次下钻的维度值相关的维度值满足以下要求:记录有前次下钻的维度值的目标数据中记录有该相关的维度值的概率满足第一概率要求,记录有该相关的维度值的目标数据中记录有前次下钻的维度值的概率满足第二概率要求。
以上例为例,本次下钻的可枚举维度为“城市”,“城市”对应的维度值为“杭州”、“武汉”、“大阪”、“东京”,当线下门店的交易量下跌时,前次下钻的维度值为“中国”。则本动作中,在“城市”对应的各个维度值中,筛选与“中国”有关的维度值,包括“武汉”和“杭州”,然后计算“武汉”和“杭州”针对交易量下跌的贡献度,假设“杭州”的贡献度最大,则将“杭州”作为本次下钻的维度值。
本实施例中,选取贡献度最大的维度值作为本次下钻的维度值,能够达到提高数据钻取和分析效率的目的。
图3为本申请一实施例提供的可枚举维度之间的层级关系的示意图。如图3所示,当线下门店的交易量下跌时,首先在“国家”维度对应的各个维度值中筛选下钻的维度值,比如下钻的维度值为“中国”,然后在“品牌”和“省份”两个维度中选取下钻维度,比如选取为“品牌”,进而在“品牌”对应的各个维度值中确定与“中国”相关的维度值,在该相关的维度值中选取下钻维度值,比如下钻维度值为“肯德基”,然后在“系统商”和“门店”两个维度中选取下钻维度,比如选取为“门店”,然后在“门店”对应的各个维度值中确定与“肯德基”相关的维度值,在与“肯德基”相关的维度值中选取下钻维度值,比如下钻维度值为“肯德基1号门店”,最后将包含“肯德基1号门店”的交易数据作为数据钻取结果。通过分析数据钻取结果,可以确定交易量下跌的主要原因。如图3所示,若本实施例中具有孤立的可枚举维度,也即不具有上层维度和下层维度的可枚举维度,比如“行业”,则也可以在该孤立的可枚举维度中选取需要钻取的维度值进而进行数据钻取。
综上,通过本实施例,在数据钻取时自动挖掘确定可枚举维度以及可枚举维度之间的层级关系,并基于可枚举维度以及可枚举维度之间的层级关系逐层进行数据钻取,能够达到减少需要钻取的数据维度、减少数据查询的工作量和复杂度,避免遍历全量的数据维度,提高数据钻取和分析效率的效果。并且,自动挖掘可枚举维度以及可枚举维度之间的层级关系,用户无需预先输入数据维度之间的层级关系,降低了对用户对业务的理解门槛,更方便用户进行数据钻取。
对应上述的数据钻取方法,本申请实施例还提供了一种数据钻取装置,图4为本申请一实施例提供的数据钻取装置的模块组成示意图,如图4所示,该装置包括:
数据获取模块41,用于获取待钻取的多条目标数据;其中,所述多条目标数据具有对应的数据维度,各条所述目标数据中记录有与所述数据维度相对应的维度值;
层级确定模块42,用于通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个所述可枚举维度之间的层级关系;
数据钻取模块43,用于基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取。
可选地,所述层级确定模块42具体用于:
在所述多条目标数据中分次提取不同条数的目标数据,在每次提取出来的所述目标数据中,确定每个所述数据维度对应的维度值取值数量;
根据每次提取出的所述目标数据中每个所述数据维度对应的维度值取值数量,以及,每次提取出来的所述目标数据的条数,确定随所述目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度;
将所述对应的维度值取值数量的数据维度确定为可枚举维度。
可选地,所述层级确定模块42具体用于:
通过预设的关联规则挖掘算法,在所述可枚举维度对应的各个维度值中挖掘得到多个目标维度值对;
其中,所述目标维度值对包括第一维度值和第二维度值,记录有所述第一维度值的目标数据中记录有所述第二维度值的概率满足第一概率要求,记录有所述第二维度值的目标数据中记录有第一维度值的概率满足第二概率要求;
确定所述第一维度值所在的可枚举维度为第一可枚举维度,确定所述第二维度值所在的可枚举维度为第二可枚举维度;
若所述第一可枚举维度的超过预定数量比例的维度值分别与所述第二可枚举维度的多个维度值组成所述目标维度值对,则确定所述第一可枚举维度为所述第二可枚举维度的上级维度。
可选地,所述数据钻取模块43具体用于:
按照各个所述可枚举维度之间的层级关系,确定前次下钻的可枚举维度的各个下一层可枚举维度,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度;其中,第一次下钻时在第一层的可枚举维度中选取第一次下钻的可枚举维度;
根据前次下钻的维度值,在所述本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值;其中,第一次下钻时在第一次下钻的可枚举维度对应的各个维度值中选取第一次下钻的维度值;
若按照各个所述可枚举维度之间的层级关系,确定本次下钻的可枚举维度具有对应的下层可枚举维度,则继续确定下次下钻的可枚举维度和下次下钻的维度值,反之,将包含本次下钻的维度值的目标数据作为数据钻取结果。
可选地,所述数据钻取模块43还具体用于:
计算所述各个下一层可枚举维度针对数据波动的交叉熵;
在所述各个下一层可枚举维度中选取所述交叉熵最大的维度作为本次下钻的可枚举维度。
可选地,所述数据钻取模块43还具体用于:
分别确定每个所述下一层可枚举维度对应的各个维度值,在确定的各个维度值中筛选与前次下钻的维度值相关的维度值;
计算筛选得到的各个所述相关的维度值针对数据波动的贡献度,将贡献度最大的所述相关的维度值所在的下一层可枚举维度作为本次下钻的可枚举维度;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可选地,所述数据钻取模块43还具体用于:
在所述本次下钻的可枚举维度对应的各个维度值中,筛选与前次下钻的维度值相关的维度值,并计算筛选得到的各个相关的维度值针对数据波动的贡献度;
在筛选得到的各个相关的维度值中,选取所述贡献度最大的维度值作为本次下钻的维度值;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可见,通过本申请实施例,首先获取待钻取的多条目标数据,然后通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系,最后基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取。由于本申请实施例中基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,不需要对所有维度的数据均进行下钻,因此能够提高数据钻取效率。
需要说明的是,本申请实施例中的数据钻取装置能够实现前述的数据钻取方法的各个过程,并达到相同的效果和功能,这里不再重复。
进一步地,本申请实施例还提供了一种数据钻取设备,图5为本申请一实施例提供的数据钻取设备的结构示意图,如图5所示,数据钻取设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据钻取设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在数据钻取设备上执行存储器902中的一系列计算机可执行指令。数据钻取设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906等。
在一个具体的实施例中,数据钻取设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据钻取设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取待钻取的多条目标数据;其中,所述多条目标数据具有对应的数据维度,各条所述目标数据中记录有与所述数据维度相对应的维度值;
通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个所述可枚举维度之间的层级关系;
基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取。
可选地,计算机可执行指令在被执行时,通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,包括:
在所述多条目标数据中分次提取不同条数的目标数据,在每次提取出来的所述目标数据中,确定每个所述数据维度对应的维度值取值数量;
根据每次提取出的所述目标数据中每个所述数据维度对应的维度值取值数量,以及,每次提取出来的所述目标数据的条数,确定随所述目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度;
将所述对应的维度值取值数量的数据维度确定为可枚举维度。
可选地,计算机可执行指令在被执行时,通过数据挖掘的方式,确定各个所述可枚举维度之间的层级关系,包括:
通过预设的关联规则挖掘算法,在所述可枚举维度对应的各个维度值中挖掘得到多个目标维度值对;
其中,所述目标维度值对包括第一维度值和第二维度值,记录有所述第一维度值的目标数据中记录有所述第二维度值的概率满足第一概率要求,记录有所述第二维度值的目标数据中记录有第一维度值的概率满足第二概率要求;
确定所述第一维度值所在的可枚举维度为第一可枚举维度,确定所述第二维度值所在的可枚举维度为第二可枚举维度;
若所述第一可枚举维度的超过预定数量比例的维度值分别与所述第二可枚举维度的多个维度值组成所述目标维度值对,则确定所述第一可枚举维度为所述第二可枚举维度的上级维度。
可选地,计算机可执行指令在被执行时,基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取,包括:
按照各个所述可枚举维度之间的层级关系,确定前次下钻的可枚举维度的各个下一层可枚举维度,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度;其中,第一次下钻时在第一层的可枚举维度中选取第一次下钻的可枚举维度;
根据前次下钻的维度值,在所述本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值;其中,第一次下钻时在第一次下钻的可枚举维度对应的各个维度值中选取第一次下钻的维度值;
若按照各个所述可枚举维度之间的层级关系,确定本次下钻的可枚举维度具有对应的下层可枚举维度,则继续确定下次下钻的可枚举维度和下次下钻的维度值,反之,将包含本次下钻的维度值的目标数据作为数据钻取结果。
可选地,计算机可执行指令在被执行时,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度,包括:
计算所述各个下一层可枚举维度针对数据波动的交叉熵;
在所述各个下一层可枚举维度中选取所述交叉熵最大的维度作为本次下钻的可枚举维度。
可选地,计算机可执行指令在被执行时,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度,包括:
分别确定每个所述下一层可枚举维度对应的各个维度值,在确定的各个维度值中筛选与前次下钻的维度值相关的维度值;
计算筛选得到的各个所述相关的维度值针对数据波动的贡献度,将贡献度最大的所述相关的维度值所在的下一层可枚举维度作为本次下钻的可枚举维度;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可选地,计算机可执行指令在被执行时,根据前次下钻的维度值,在所述本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值,包括:
在所述本次下钻的可枚举维度对应的各个维度值中,筛选与前次下钻的维度值相关的维度值,并计算筛选得到的各个相关的维度值针对数据波动的贡献度;
在筛选得到的各个相关的维度值中,选取所述贡献度最大的维度值作为本次下钻的维度值;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可见,通过本申请实施例,首先获取待钻取的多条目标数据,然后通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系,最后基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取。由于本申请实施例中基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,不需要对所有维度的数据均进行下钻,因此能够提高数据钻取效率。
需要说明的是,本申请实施例中的数据钻取设备能够实现前述的数据钻取方法的各个过程,并达到相同的效果和功能,这里不再重复。
进一步地,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
获取待钻取的多条目标数据;其中,所述多条目标数据具有对应的数据维度,各条所述目标数据中记录有与所述数据维度相对应的维度值;
通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个所述可枚举维度之间的层级关系;
基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,通过数据挖掘的方式,在所述多条目标数据对应的各个数据维度中确定可枚举维度,包括:
在所述多条目标数据中分次提取不同条数的目标数据,在每次提取出来的所述目标数据中,确定每个所述数据维度对应的维度值取值数量;
根据每次提取出的所述目标数据中每个所述数据维度对应的维度值取值数量,以及,每次提取出来的所述目标数据的条数,确定随所述目标数据的条数的增长,对应的维度值取值数量呈现收敛状态的数据维度;
将所述对应的维度值取值数量的数据维度确定为可枚举维度。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,通过数据挖掘的方式,确定各个所述可枚举维度之间的层级关系,包括:
通过预设的关联规则挖掘算法,在所述可枚举维度对应的各个维度值中挖掘得到多个目标维度值对;
其中,所述目标维度值对包括第一维度值和第二维度值,记录有所述第一维度值的目标数据中记录有所述第二维度值的概率满足第一概率要求,记录有所述第二维度值的目标数据中记录有第一维度值的概率满足第二概率要求;
确定所述第一维度值所在的可枚举维度为第一可枚举维度,确定所述第二维度值所在的可枚举维度为第二可枚举维度;
若所述第一可枚举维度的超过预定数量比例的维度值分别与所述第二可枚举维度的多个维度值组成所述目标维度值对,则确定所述第一可枚举维度为所述第二可枚举维度的上级维度。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,基于所述可枚举维度和各个所述可枚举维度之间的层级关系,逐层对所述多条目标数据进行钻取,包括:
按照各个所述可枚举维度之间的层级关系,确定前次下钻的可枚举维度的各个下一层可枚举维度,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度;其中,第一次下钻时在第一层的可枚举维度中选取第一次下钻的可枚举维度;
根据前次下钻的维度值,在所述本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值;其中,第一次下钻时在第一次下钻的可枚举维度对应的各个维度值中选取第一次下钻的维度值;
若按照各个所述可枚举维度之间的层级关系,确定本次下钻的可枚举维度具有对应的下层可枚举维度,则继续确定下次下钻的可枚举维度和下次下钻的维度值,反之,将包含本次下钻的维度值的目标数据作为数据钻取结果。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度,包括:
计算所述各个下一层可枚举维度针对数据波动的交叉熵;
在所述各个下一层可枚举维度中选取所述交叉熵最大的维度作为本次下钻的可枚举维度。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,在所述各个下一层可枚举维度中选取本次下钻的可枚举维度,包括:
分别确定每个所述下一层可枚举维度对应的各个维度值,在确定的各个维度值中筛选与前次下钻的维度值相关的维度值;
计算筛选得到的各个所述相关的维度值针对数据波动的贡献度,将贡献度最大的所述相关的维度值所在的下一层可枚举维度作为本次下钻的可枚举维度;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,根据前次下钻的维度值,在所述本次下钻的可枚举维度对应的各个维度值中选取本次下钻的维度值,包括:
在所述本次下钻的可枚举维度对应的各个维度值中,筛选与前次下钻的维度值相关的维度值,并计算筛选得到的各个相关的维度值针对数据波动的贡献度;
在筛选得到的各个相关的维度值中,选取所述贡献度最大的维度值作为本次下钻的维度值;
其中,所述相关的维度值满足以下要求:记录有所述前次下钻的维度值的目标数据中记录有所述相关的维度值的概率满足第一概率要求,记录有所述相关的维度值的目标数据中记录有所述前次下钻的维度值的概率满足第二概率要求。
可见,通过本申请实施例,首先获取待钻取的多条目标数据,然后通过数据挖掘的方式,在多条目标数据对应的各个数据维度中确定可枚举维度,并确定各个可枚举维度之间的层级关系,最后基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取。由于本申请实施例中基于可枚举维度和各个可枚举维度之间的层级关系,逐层对多条目标数据进行钻取,不需要对所有维度的数据均进行下钻,因此能够提高数据钻取效率。
需要说明的是,本申请实施例中的存储介质能够实现前述的数据钻取方法的各个过程,并达到相同的效果和功能,这里不再重复。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。