CN105354336A - 一种处理交易事务数据库数据的方法和装置 - Google Patents
一种处理交易事务数据库数据的方法和装置 Download PDFInfo
- Publication number
- CN105354336A CN105354336A CN201510894914.1A CN201510894914A CN105354336A CN 105354336 A CN105354336 A CN 105354336A CN 201510894914 A CN201510894914 A CN 201510894914A CN 105354336 A CN105354336 A CN 105354336A
- Authority
- CN
- China
- Prior art keywords
- computing node
- item
- frequent item
- piecemeal
- master computing
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供处理交易事务数据库数据的方法和装置,以提高关联规则数据挖掘的运算效率。所述方法包括:将交易事务数据库的数据分成N份以获得N个分块事务数据库,按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点;每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;N个并行处理的计算节点通过对压缩的事务布尔矩阵的行向量或列向量进行相“与”计算得到所有k-频繁项集。本发明提供的技术方案一方面减少了扫描交易数据库的次数,从而提高了读取交易事务数据库的效率;另一方面,省去现有Apriori算法的连接和裁剪,通过对压缩的事务布尔矩阵的行和列向量的裁剪,提高了k-频繁项集的计算效率。
Description
技术领域
本发明属于数据挖掘领域,尤其涉及一种处理交易事务数据库数据的方法和装置。
背景技术
关联规则的数据挖掘是从巨大的数据集中找出感兴趣规则和相关关系,这些项集常存储在交易事务数据库中。决策制定者将这些关系应用到决策支持中,例如“Beer和Diaper”这个数据挖掘的经典案例就是一个对关联规则的挖掘。关联规则是数据挖掘的核心技术之一,得到了广泛的商业和学术研究,尤其是在今天这种大数据时代,已显示出较大的发展前途。
现有的关联规则算法大致可以分为广度优先算法和深度优先算法两类,其中,广度优先算法是从下到上的搜索数据集,先是找出候选集,然后从中找出频繁集,和广度优先算法比,深度优先算法不需要生成候选集,而是基于频繁模式增长的异类算法。
在关联规则算法中,最著名的算法是由Agrawal和Srikantt于1994年提出的Apriori算法,其是一个广度优先算法。Apriori算法采取了自底向上、分层搜索策略,这意味着要找到k-(即k阶,下文同,例如,“1-”表示1阶,“2-”表示2阶,等等)项集,就需要做k次迭代。Apriori算法可以简单分为两步,其中,第一步为连接即类矩阵运算,第二步为剪枝即去掉那些没必要的中间结果。首先找出所有1-频繁项集的集合Ll,由集合Ll找出2-频繁项集的集合L2,而集合L2找出集合L3,……,如此下去,直到不能找到k-频繁项集,并利用事先设定好的最小支持度阈值进行筛选,将小于最小支持度的候选项集删除,再进行下一次的合并生成该层的频繁项集。
然而,上述现有的Apriori算法在实际应用时存在以下缺陷:
1)每计算一个k-项集都要扫描一次交易事务数据库,计算所有k-频繁项集则会重复扫描交易事务数据库,从而增加读取交易事务数据库的I/O次数;
2)因计算项过多而造成执行缓慢,运算效率低下。
发明内容
本发明的目的在于提供一种处理交易事务数据库数据的方法和装置,以提高关联规则数据挖掘的运算效率。
本发明第一方面提供一种处理交易事务数据库数据的方法,所述方法包括:
将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;
所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;
所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。
本发明第二方面提供一种处理交易事务数据库数据的装置,其特征在于,所述装置包括:
分割模块,用于将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;
矩阵压缩模块,用于所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;
频繁项集获取模块,用于所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。
从上述本发明技术方案可知,一方面,由于每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵只需要扫描一次交易数据库,此后在计算k-频繁项集时只需要扫描一次事务布尔矩阵即可,从而减少了读取交易事务数据库的I/O次数,提高了读取交易事务数据库的效率;另一方面,在计算k-频繁项集时,是N个并行处理的计算节点通过对压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,直接省去现有Apriori算法的连接和裁剪两步,通过对压缩的事务布尔矩阵的行和列向量的裁剪,提高了k-频繁项集的计算效率。
附图说明
图1是本发明实施例一提供的处理交易事务数据库数据的方法的实现流程示意图;
图2是本发明实施例二提供的处理交易事务数据库数据的装置的结构示意图;
图3是本发明实施例三提供的处理交易事务数据库数据的装置的结构示意图;
图4是本发明实施例四提供的处理交易事务数据库数据的装置的结构示意图;
图5是本发明实施例五提供的处理交易事务数据库数据的装置的结构示意图;
图6是本发明实施例六提供的处理交易事务数据库数据的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种处理交易事务数据库数据的方法,所述方法包括:将交易事务数据库的数据分成N份得到N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。本发明实施例还提供相应的处理交易事务数据库数据的装置。以下分别进行详细说明。
请参阅附图1,是本发明实施例一提供的处理交易事务数据库数据的方法的实现流程示意图。附图1示例的方法可用于Spark平台,主要包括以下步骤S101至步骤S103:
S101,将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,其中,N为大于1的自然数。
以Spark平台为例,由于Spark平台是运行在Mesos集群上的平台,而Mesos集群能支持HDFS和S3这样的文件系统,本发明是以HDFS作为其原始数据存放的文件系统,从而实现了对交易事务数据库的事务数据集的自动划分,即,将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,例如,Spark平台上N个并行处理的计算节点。
S102,每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵。
在本发明实施例中,每个计算节点可以将经过步骤S101分得的分块事务数据库中所有相同的交易事务记录为一条交易事务Ti,然后,使用数组TS[s]中的元素TS[i]记录交易事务Ti在分块事务数据库中的实际条数,从而实现每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵。具体地,扫描分块事务数据库的交易事务,将每一条交易事务记录转化为一条代表事务的列向量,然后,核对该列向量是否存在事务布尔矩阵中,如果存在则将对应的交易事务计数加1;如果不存在,将该列向量加入事务布尔矩阵,并将对应的交易事务计数设置为1。以以下的一个分块事务数据库
为例,其转化为压缩的事务布尔矩阵如下:
T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | IC | |
TS[s] | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | |
A | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
B | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 7 |
C | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 6 |
D | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 2 |
E | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 2 |
F | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
TC | 2 | 2 | 2 | 3 | 2 | 4 | 3 | 2 | 1 |
需要说明的是,对于上述示例的分块事务数据库,经过转化为事务布尔矩阵后,相同的交易事务在事务布尔矩阵中只有一条记录以及相应的事务计数来表示该交易事务的真实的记录数,行向量表示项(Item),列向量表示交易事务Ti,数组TS[s]中的元素TS[i]用于对交易事务Ti计数。例如,分块事务数据库中的交易事务{B,C}有两条记录,则在事务布尔矩阵中只有交易事务T3这一条来记录交易事务{B,C},但使用数组TS[s]中的元素TS[3]来对交易事务T3在分块事务数据库中的实际条数计数,因此,元素TS[3]的值为2;又如,分块事务数据库中的交易事务{A,C}有两条记录,则在事务布尔矩阵中只有交易事务T5这一条来记录交易事务{A,C},但使用数组TS[5]中的元素TS[5]来对交易事务T5在分块事务数据库中的实际条数计数,因此,元素TS[5]的值为2。
另需说明的是,由于只有一个项的交易事务在数据挖掘时并不具有统计意义,因此,在本发明实施例中,对于只有一个项的交易事务,在将分块事务数据库转化为事务布尔矩阵时可以删除这样的交易事务。
对上述示例的分块事务数据库以及由此转化而来的事务布尔矩阵进一步分析可知,对于事务布尔矩阵的元素为dij,并且 其中,Ii为分块事务数据库中的项,Tj为分块事务数据库中的交易事务。
对于Spark平台,由于经过步骤S101,已将获得的N个分块事务数据库按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,即,将原始的交易数据存放在分布式文件系统HDFS上,因此,每个计算节点可以通过读取HDFS上的交易事务数据,按照上述实施例提供的方法将分块事务数据库转化为压缩的事务布尔矩阵。
S103,N个并行处理的计算节点通过对步骤S102获得的压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,其中,k为自然数。
在本发明实施例中,N个并行处理的计算节点通过对步骤S102获得的压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集可通过如下步骤S1031至步骤S1034实现:
S1031,主计算节点计算k-频繁项集,并根据计算所得k-频繁项集生成(k+1)-候选集。
需要说明的是,在本发明实施例中,对于k-频繁项集和(k+1)-候选集,其“(k+1)-”和“k”的含义与背景技术提及的“(k-1)-”和“k-”的含义类似,均表示频繁项集和候选集的阶数,即,k-频繁项集表示k阶频繁项集,(k+1)-候选集表示k+1阶候选集。例如,2-频繁项集表示2阶频繁项集,3-候选集表示3阶候选集,等等。
在本发明实施例中,主计算节点计算k-频繁项集,并根据计算所得k-频繁项集生成(k+1)-候选集,即,主计算节点先计算出某阶频繁项集,再根据该某阶频繁项集生成阶数比该某阶频繁项集的阶数大1的某阶候选集。例如,主计算节点先计算出1阶频繁项集即1-频繁项集,再根据1阶频繁项集生成2阶候选集即2-候选集。
在本发明一个实施例中,主计算节点计算k-频繁项集,并根据计算所得k-频繁项集生成(k+1)-候选集是通过集群系统中的主计算节点和非主计算节点联合完成,具体地,由如下步骤S1至步骤S3实现:
S1,N-1个非主计算节点计算本节点上由k个项构成的项集{Ip,Iq,…,Ii}的各个项的本地支持度计数并转发至主计算节点。
由k个项构成的项集{Ip,Iq,…,Ii}的各个项的本地支持度计数Support_countr(IP,Iq,...,Ii)可按照如下公式(1)得到:
S2,主计算节点根据项集{Ip,Iq,…,Ii}各个项的本地支持度计数计算k-频繁项集。
主计算节点根据项集{Ip,Iq,…,Ii}各个项的本地支持度计数Support_countr(IP,Iq,...,Ii),计算项集{Ip,Iq,…,Ii}的全局支持度计数Support_count(IP,Iq,...,Ii)。在本发明实施例中,项集{Ip,Iq,…,Ii}的全局支持度计数Support_count(IP,Iq,...,Ii)可由主计算节点将N-1个非主计算节点中各个非主计算节点计算得到的Support_countr(IP,Iq,...,Ii)进行累加得到。
在计算得到项集{Ip,Iq,…,Ii}的全局支持度计数Support_count(IP,Iq,...,Ii)后,若Support_count(IP,Iq,...,Ii)大于或等于阈值Min_Sup_count(IP,Iq,...,Ii),则判断项集{Ip,Iq,…,Ii}为k-频繁项集,否则为项集{Ip,Iq,…,Ii}为k-非频繁项集。
S3,主计算节点根据k-频繁项集生成(k+1)-候选集。
需要说明的是,由于一个项集被确定为k-非频繁项集后,其在后续过程中不可能被判断为更高阶的频繁项集,因此,为了减小运算的冗余,在本发明实施例中主计算节点根据k-频繁项集生成(k+1)-候选集的同时,可以将k-非频繁项集删除,使得最终的候选集中并不包含k-非频繁项集。
S1032,主计算节点将(k+1)-候选集广播至N-1个非主计算节点。
按照前述实施例的说明,由于主计算节点根据k-频繁项集生成(k+1)-候选集的同时,将k-非频繁项集删除,因此,此处广播至N-1个非主计算节点的(k+1)-候选集并不包含k-非频繁项集。
S1033,N-1个非主计算节点根据接收到的(k+1)-候选集,通过对k+1个项构成的项集{Ip,Iq,…,Ii,Ij}的各个项在各自节点上的事务布尔矩阵对应的行向量和事务计数向量进行相“与”计算,得到项集{Ip,Iq,…,Ii,Ij}的本地支持度计数并转发至主计算节点。
在本发明实施例中,N-1个非主计算节点根据接收到的(k+1)-候选集,通过对k+1个项构成的项集{Ip,Iq,…,Ii,Ij}的各个项在各自节点上的事务布尔矩阵对应的行向量和事务计数向量进行相“与”计算,得到项集{Ip,Iq,…,Ii,Ij}的本地支持度计数,可按照类似于上述公式(1)的计算方式来实现
S1034,主计算节点根据项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算得到(k+1)-频繁项集。
具体地,主计算节点可根据项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算项集{Ip,Iq,…,Ii,Ij}的全局支持度计数,即,将项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数累加,得到项集{Ip,Iq,…,Ii,Ij}的各个项的全局支持度计数,然后,若所述项集{Ip,Iq,…,Ii,Ij}的全局支持度计数大于或等于阈值Min_Sup_count(IP,Iq,...,Ii,Ij),则确定所述项集{Ip,Iq,…,Ii,Ij}为(k+1)-频繁项集。
需要说明的是,上述步骤S1031至步骤S1034只是说明了任意一个k-频繁项集的实现过程,若要得到所有k-频繁项集,则需要循环上述步骤S1031至步骤S1034。至于循环的结束条件,可以是被筛选后的项集为空集或者只有一个项集时。
从上述附图1示例的处理交易事务数据库数据的方法可知,一方面,由于每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵只需要扫描一次交易数据库,此后在计算k-频繁项集时只需要扫描一次事务布尔矩阵即可,从而减少了读取交易事务数据库的I/O次数,提高了读取交易事务数据库的效率;另一方面,在计算k-频繁项集时,是N个并行处理的计算节点通过对压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,直接省去现有Apriori算法的连接和裁剪两步,通过对压缩的事务布尔矩阵的行和列向量的裁剪,提高了k-频繁项集的计算效率。
请参阅附图2,是本发明实施例二提供的处理交易事务数据库数据的装置的结构示意图。为了便于说明,附图2仅示出了与本发明实施例相关的部分。附图2示例的处理交易事务数据库数据的装置可以是附图1示例的处理交易事务数据库数据的方法的执行主体。附图2示例的处理交易事务数据库数据的装置主要包括分割模块201、矩阵压缩模块202和频繁项集获取模块203,其中:
分割模块201,用于将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;
矩阵压缩模块202,用于每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵,需要说明的是,由于只有一个项的交易事务在数据挖掘时并不具有统计意义,因此,在本发明实施例中,对于只有一个项的交易事务,矩阵压缩模块202在将分块事务数据库转化为事务布尔矩阵时可以删除这样的交易事务;
频繁项集获取模块203,用于N个并行处理的计算节点通过对压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。
需要说明的是,以上附图2示例的处理交易事务数据库数据的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述处理交易事务数据库数据的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的分割模块,可以是具有执行前述将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点的硬件,例如分割器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的矩阵压缩模块,可以是执行每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵的硬件,例如矩阵压缩器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图2示例的矩阵压缩模块202可以包括第一记录单元301和第二记录单元302,如附图3所示本发明实施例三提供的处理交易事务数据库数据的装置,其中:
第一记录单元301,用于将分块事务数据库中所有相同的交易事务记录为一条交易事务Ti;
第二记录单元302,用于使用数组TS[s]中的元素TS[i]记录交易事务Ti在分块事务数据库中的实际条数。
附图2示例的处理交易事务数据库数据的装置中,N个并行处理的计算节点包括一个主计算节点和N-1个非主计算节点,事务布尔矩阵的元素为dij,并且 其中,Ii为分块事务数据库中的项,Tj为分块事务数据库中的交易事务,频繁项集获取模块203可以包括候选集生成单元401、广播单元402、第一本地支持度计数单元403和第一频繁项集计算单元404,如附图4所示本发明实施例四提供的处理交易事务数据库数据的装置,其中:
候选集生成单元401,用于主计算节点计算k-频繁项集,并根据所述k-频繁项集生成(k+1)-候选集;
广播单元402,用于主计算节点将(k+1)-候选集广播至N-1个非主计算节点;
第一本地支持度计数单元403,用于N-1个非主计算节点根据接收到的(k+1)-候选集,通过对k+1个项构成的项集{Ip,Iq,…,Ii,Ij}的各个项在各自节点上的事务布尔矩阵对应的行向量和事务计数向量进行相“与”计算,得到项集{Ip,Iq,…,Ii,Ij}的本地支持度计数并转发至主计算节点;
第一频繁项集计算单元404,用于主计算节点根据项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算得到(k+1)-频繁项集;
候选集生成单元401、广播单元402、本地支持度计数单元403和第一频繁项集计算单元404依次重复执行各自功能,直至被筛选后的项集为空集或者只有一个项集时得到所有k-频繁项集。
附图4示例的候选集生成单元401可以包括第二本地支持度计数单元501、第二频繁项集计算单元502和k-候选集生成单元503,如附图5所示本发明实施例五提供的处理交易事务数据库数据的装置,其中:
第二本地支持度计数单元501,用于N-1个非主计算节点计算本节点上由k个项构成的项集{Ip,Iq,…,Ii}的各个项的本地支持度计数并转发至主计算节点;
第二频繁项集计算单元502,用于主计算节点根据项集{Ip,Iq,…,Ii}的各个项的本地支持度计数计算k-频繁项集;
k-候选集生成单元503,用于主计算节点根据k-频繁项集生成(k+1)-候选集。
需要说明的是,由于一个项集被确定为k-非频繁项集后,其在后续过程中不可能被判断为更高阶的频繁项集,因此,为了减小运算的冗余,在本发明实施例中主计算节点的k-候选集生成单元503根据k-频繁项集生成(k+1)-候选集的同时,可以将k-非频繁项集删除,使得最终的候选集中并不包含k-非频繁项集。
附图4示例的第一频繁项集计算单元404可以包括全局支持度计数计算单元601和判断单元602,如附图6所示本发明实施例六提供的处理交易事务数据库数据的装置,其中:
全局支持度计数计算单元601,用于主计算节点根据项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算项集{Ip,Iq,…,Ii,Ij}的全局支持度计数;
判断单元602,用于若项集{Ip,Iq,…,Ii,Ij}的全局支持度计数大于或等于阈值,则确定项集{Ip,Iq,…,Ii,Ij}为(k+1)-频繁项集。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例所提供的处理交易事务数据库数据的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种处理交易事务数据库数据的方法,其特征在于,所述方法包括:
将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;
所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;
所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。
2.如权利要求1所述的方法,其特征在于,所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵,包括:
将所述分块事务数据库中所有相同的交易事务记录为一条交易事务Ti;
使用数组TS[s]中的元素TS[i]记录所述交易事务Ti在所述分块事务数据库中的实际条数。
3.如权利要求1所述的方法,其特征在于,所述N个并行处理的计算节点包括一个主计算节点和N-1个非主计算节点,所述事务布尔矩阵的元素为dij,并且 其中,所述Ii为所述分块事务数据库中的项,所述Tj为所述分块事务数据库中的交易事务;
所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,包括:
所述主计算节点计算k-频繁项集,并根据所述k-频繁项集生成(k+1)-候选集;
所述主计算节点将所述(k+1)-候选集广播至所述N-1个非主计算节点;
所述N-1个非主计算节点根据接收到的所述(k+1)-候选集,通过对k+1个项构成的项集{Ip,Iq,…,Ii,Ij}的各个项在各自节点上的事务布尔矩阵对应的行向量和事务计数向量进行相“与”计算,得到项集{Ip,Iq,…,Ii,Ij}的本地支持度计数并转发至所述主计算节点;
所述主计算节点根据所述项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算得到(k+1)-频繁项集;
循环上述步骤,直至被筛选后的项集为空集或者只有一个项集时得到所有k-频繁项集。
4.如权利要求3所述的方法,其特征在于,所述主计算节点计算k-频繁项集,并根据所述k-频繁项集生成(k+1)-候选集,包括:
所述N-1个非主计算节点计算本节点上由k个项构成的项集{Ip,Iq,…,Ii}的各个项的本地支持度计数并转发至所述主计算节点;
所述主计算节点根据所述项集{Ip,Iq,…,Ii}各个项的本地支持度计数计算k-频繁项集;
所述主计算节点根据所述k-频繁项集生成(k+1)-候选集。
5.如权利要求3所述的方法,其特征在于,所述主计算节点根据所述项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算(k+1)-频繁项集,包括:
所述主计算节点根据所述项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算所述项集{Ip,Iq,…,Ii,Ij}的全局支持度计数;
若所述项集{Ip,Iq,…,Ii,Ij}的全局支持度计数大于或等于阈值,则确定所述项集{Ip,Iq,…,Ii,Ij}为(k+1)-频繁项集。
6.一种处理交易事务数据库数据的装置,其特征在于,所述装置包括:
分割模块,用于将交易事务数据库的数据分成N份以获得N个分块事务数据库,并按照每个计算节点一个分块事务数据库的方式分发至N个并行处理的计算节点,所述N为大于1的自然数;
矩阵压缩模块,用于所述每个计算节点将各自分得的分块事务数据库转化为压缩的事务布尔矩阵;
频繁项集获取模块,用于所述N个并行处理的计算节点通过对所述压缩的事务布尔矩阵的行向量或列向量进行相“与”计算,得到所有k-频繁项集,所述k为自然数。
7.如权利要求6所述的装置,其特征在于,所述矩阵压缩模块包括:
第一记录单元,用于将所述分块事务数据库中所有相同的交易事务记录为一条交易事务Ti;
第二记录单元,用于使用数组TS[s]中的元素TS[i]记录所述交易事务Ti在所述分块事务数据库中的实际条数。
8.如权利要求6所述的装置,其特征在于,所述N个并行处理的计算节点包括一个主计算节点和N-1个非主计算节点,所述事务布尔矩阵的元素为dij,并且 所述Ii为所述分块事务数据库中的项,所述Tj为所述分块事务数据库中的交易事务,所述频繁项集获取模块包括:
候选集生成单元,用于所述主计算节点计算k-频繁项集,并根据所述k-频繁项集生成(k+1)-候选集;
广播单元,用于所述主计算节点将所述(k+1)-候选集广播至所述N-1个非主计算节点;
第一本地支持度计数单元,用于所述N-1个非主计算节点根据接收到的所述(k+1)-候选集,通过对k+1个项构成的项集{Ip,Iq,…,Ii,Ij}的各个项在各自节点上的事务布尔矩阵对应的行向量和事务计数向量进行相“与”计算,得到项集{Ip,Iq,…,Ii,Ij}的本地支持度计数并转发至所述主计算节点;
第一频繁项集计算单元,用于主计算节点根据所述项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算得到(k+1)-频繁项集;
所述候选集生成单元、广播单元、本地支持度计数单元和第一频繁项集计算单元依次重复执行各自功能,直至被筛选后的项集为空集或者只有一个项集时得到所有k-频繁项集。
9.如权利要求8所述的装置,其特征在于,所述候选集生成单元包括:
第二本地支持度计数单元,用于所述N-1个非主计算节点计算本节点上由k个项构成的项集{Ip,Iq,…,Ii}的各个项的本地支持度计数并转发至所述主计算节点;
第二频繁项集计算单元,用于所述主计算节点根据所述项集{Ip,Iq,…,Ii}的各个项的本地支持度计数计算k-频繁项集;
k-候选集生成单元,用于所述主计算节点根据所述k-频繁项集生成(k+1)-候选集。
10.如权利要求8所述的装置,其特征在于,所述第一频繁项集计算单元包括:
全局支持度计数计算单元,用于所述主计算节点根据所述项集{Ip,Iq,…,Ii,Ij}的各个项的本地支持度计数计算所述项集{Ip,Iq,…,Ii,Ij}的全局支持度计数;
判断单元,用于若所述项集{Ip,Iq,…,Ii,Ij}的全局支持度计数大于或等于阈值,则确定所述项集{Ip,Iq,…,Ii,Ij}为(k+1)-频繁项集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894914.1A CN105354336A (zh) | 2015-12-07 | 2015-12-07 | 一种处理交易事务数据库数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894914.1A CN105354336A (zh) | 2015-12-07 | 2015-12-07 | 一种处理交易事务数据库数据的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105354336A true CN105354336A (zh) | 2016-02-24 |
Family
ID=55330308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510894914.1A Pending CN105354336A (zh) | 2015-12-07 | 2015-12-07 | 一种处理交易事务数据库数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354336A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021412A (zh) * | 2016-05-13 | 2016-10-12 | 上海市计算技术研究所 | 一种面向大规模过车数据的伴随车辆识别方法 |
CN107291848A (zh) * | 2017-06-05 | 2017-10-24 | 南京邮电大学 | 基于Spark的并行化关联挖掘优化方法 |
CN107368501A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 数据的处理方法及装置 |
CN107807952A (zh) * | 2017-09-27 | 2018-03-16 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN111198872A (zh) * | 2020-01-06 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 数据库处理事务的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605749A (zh) * | 2013-11-20 | 2014-02-26 | 同济大学 | 一种基于多参数干扰的隐私保护关联规则数据挖掘方法 |
CN103871003A (zh) * | 2014-03-31 | 2014-06-18 | 国家电网公司 | 一种应用历史故障数据的配电网故障诊断方法 |
-
2015
- 2015-12-07 CN CN201510894914.1A patent/CN105354336A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605749A (zh) * | 2013-11-20 | 2014-02-26 | 同济大学 | 一种基于多参数干扰的隐私保护关联规则数据挖掘方法 |
CN103871003A (zh) * | 2014-03-31 | 2014-06-18 | 国家电网公司 | 一种应用历史故障数据的配电网故障诊断方法 |
Non-Patent Citations (1)
Title |
---|
陈方健: ""图书借阅行为模式挖掘方法在学生借书管理系统中的应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021412A (zh) * | 2016-05-13 | 2016-10-12 | 上海市计算技术研究所 | 一种面向大规模过车数据的伴随车辆识别方法 |
CN107368501A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 数据的处理方法及装置 |
CN107368501B (zh) * | 2016-05-13 | 2020-06-30 | 北京京东尚科信息技术有限公司 | 数据的处理方法及装置 |
CN107291848A (zh) * | 2017-06-05 | 2017-10-24 | 南京邮电大学 | 基于Spark的并行化关联挖掘优化方法 |
CN107807952A (zh) * | 2017-09-27 | 2018-03-16 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN107807952B (zh) * | 2017-09-27 | 2021-06-01 | 华南师范大学 | 一种基于Spark的Apriori并行化方法、系统及装置 |
CN111198872A (zh) * | 2020-01-06 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 数据库处理事务的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354336A (zh) | 一种处理交易事务数据库数据的方法和装置 | |
CN103020256B (zh) | 一种大规模数据的关联规则挖掘方法 | |
US9043348B2 (en) | System and method for performing set operations with defined sketch accuracy distribution | |
CN112818226B (zh) | 数据处理方法、推荐方法、装置、电子设备及存储介质 | |
CN105512336A (zh) | 一种基于Hadoop的海量数据处理方法和装置 | |
US9785657B2 (en) | Method for synthetic data generation for query workloads | |
CN105740424A (zh) | 一种基于 Spark 平台的高效率文本分类方法 | |
CN103268336A (zh) | 一种快数据和大数据结合的数据处理方法及其系统 | |
CN106600067A (zh) | 多维立方体模型的优化方法和装置 | |
CN107220310A (zh) | 一种数据库数据管理系统、方法及装置 | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
CN101324937A (zh) | 用于粗化图的系统和方法 | |
CN104615638A (zh) | 一种面向大数据的分布式密度聚类方法 | |
CN103324765A (zh) | 一种基于列存储的多核并行数据查询优化方法 | |
CN109066687A (zh) | 一种电力系统潮流计算方法、系统及电子设备 | |
CN103455560A (zh) | 一种数据查询方法及系统 | |
CN103136244A (zh) | 基于云计算平台的并行数据挖掘方法及系统 | |
CN106294805A (zh) | 数据处理方法及装置 | |
CN105808581A (zh) | 一种数据聚类的方法、装置及Spark大数据平台 | |
CN103995828A (zh) | 一种云存储日志数据分析方法 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
Gaurav et al. | An outline on big data and big data analytics | |
Barkhordari et al. | ScadiBino: an effective MapReduce-based association rule mining method | |
CN111782645B (zh) | 数据处理方法和装置 | |
CN116723090A (zh) | 告警根因的定位方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160224 |