CN110990434A - Spark平台分组和Fp-Growth关联规则挖掘方法 - Google Patents
Spark平台分组和Fp-Growth关联规则挖掘方法 Download PDFInfo
- Publication number
- CN110990434A CN110990434A CN201911202785.XA CN201911202785A CN110990434A CN 110990434 A CN110990434 A CN 110990434A CN 201911202785 A CN201911202785 A CN 201911202785A CN 110990434 A CN110990434 A CN 110990434A
- Authority
- CN
- China
- Prior art keywords
- list
- weight
- alarm
- item
- host
- 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
Links
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了Spark平台分组和Fp‑Growth关联规则挖掘方法,解决了缺少一种能够适应每个主机性能的资源分配方案和缺少对关联规则重视程度的分析的问题。本发明包括一种针对大规模告警数据的并行改进Fp‑growth关联规则挖掘方法和其中的Fp‑tree求解频繁项优化方法与Spark平台分组策略优化方法。本发明首次将Spark与改进后的Fp‑tree算法结合起来,实现了将Fp‑tree应用于大规模数据的规则关联分析。
Description
技术领域
本发明涉及大数据挖掘领域中的关联规则的挖掘方法,具体涉及基于Spark分组和Fp-growth求解优化的关联挖掘方法。
背景技术
随着信息技术的不断发展和进步,不少电网企业在对公司业务工作支撑力不断提升和主营业务大幅度融合的同时,也使得各信息系统的规模急剧膨胀,系统运行逐渐呈现出基础设施齐备、数据庞杂、应用广泛等特点。与此同时,安全方面也面临着巨大的考验,网络安全防御体系实时产生大量的冗余告警信息,包括无关告警,重复告警以及误报等,真正的告警信息被海量低质量的告警信息所掩盖,告警信息远远超过了人工分析的能力。因此,需要对海量告警信息进行关联分析,再分析和再组织,去除无关告警信息,挖掘出真正的告警信息。
现有技术:
目前,国内外所采用的告警关联方法主要分为:基于告警属性相似度聚类的关联方法,以TACC组件为代表;基于告警因果关系的关联方法,以TIAA为代表;综合两类关联方法提出的WINEPI算法和APC自适应告警模型等。针对当前筛选系统性能的不足,又提出了面向大规模告警数据的快速筛选系统(RSS),该系统能快速有效地筛选出有用信息,其最核心的部分是所使用的关联挖掘算法。
现有技术缺陷:
目前spark分组方案中极少考虑到每个主机性能之间的差异,和分配的数据量多少,常规方案是平均分组,这就导致了不同主机之间数据量差距明显,可能会出现一台主机承担了太多的数据挖掘工作,从而导致延缓整个挖掘流程的进度,基于此,迫切需要一种能够适应每个主机性能的资源分配方案,既要考虑到分配的每个资源树的大小,也要考虑到为每个主机分配适应其性能的资源量。
目前已有的告警信息的挖掘缺少对关联规则重视程度的分析,以区分告警重要性。
目前已有的关联挖掘算法可分为宽度优先搜索算法和深度优先搜索算法两种。宽度优先搜索算法以Apriori等算法为代表,Apriori算法需要遍历整个数据集才能生成每次的候选集;并且当最大项集的维数较高时,算法的效率严重下降。Fp-growth算法在建立Fp-tree时需要多次计算共享前缀路径,递归建树与遍历的时间很长,影响了算法的执行效率。cofi-tree算法不需要递归建立条件模式树,同时在一定时间内只有一棵cofi-tree树在内存中,占用的空间结构小,因此,其综合性能是3种算法中最好的。但是在处理大规模数据的时候,每一次都要构建一个fp-tree和一个cofi-tree,浪费了大量的空间,而且在处理频繁项的时候也异常的繁琐。
发明内容
本发明所要解决的技术问题是:缺少一种能够适应每个主机性能的资源分配方案,既要考虑到分配的每个资源树的大小,也要考虑到为每个主机分配适应其性能的资源量;缺少对关联规则重视程度的分析,以区分告警重要性。本发明提供了解决上述问题的基于Spark分组和Fp-growth求解优化的关联挖掘方法。
为了解决上述存在的问题,本发明在改进Fp-growth算法的基础上结合Spark技术,使其能够并行化处理大规模数据,占用内存少,处理问题更加高效。
一种Fp-growth关联规则挖掘方法,包括以下步骤:
S1.通过聚类算法得出每个主机所处的状态和相关的各指标信息;
S2.将所述S1得到的数据按照时间戳对齐,每一个时间戳所得到的数据都是一个项集;
S3.将所述S2处理过的数据上传到spark平台,得到保存这些数据的spark平台数据库;
S4.对spark数据库中的数据进行统计,扫描一次数据库,生成每个项的计数表F-list,计数表中的项按照数量的多少,从大到小进行排序;
S5.按照S4中得到的F-list计数表,对数据库进行第一步的处理,删除不频繁项,缩减数据库的规模;
S6.对F-list进行分组生成Group-list,其中Group-list的组数目为主机数目,Group-list中的每一个分区中同样按照数量的多少,从大到小进行排序;
S7.根据Group-list对数据进行处理,将数据按照Group-list的分组分派给不同的主机服务器进行处理;数据分派过程为扫描数据库中每一个项,遇到Group-list中的项,将扫描过的项全部作为一个项集加入到Group-list的分组中;
S8.将所述S7处理好的数据,在不同的主机上运行相同的改进数据挖掘算法,得出关联规则挖掘的局部频繁项;
S9.将所述S8所有的局部频繁项整理合并,对其做进一步的处理,得到关联规则。
下面将对该流程中的创新点进行详细讲解,其中包括数据预处理,spark平台分组优化,和相关算法的改进:
一种平台分组方法,综合考虑各个分区中FP-Tree的横向和纵向维度和每一个主机的性能,设置负载平衡的分组策略,所述设置负载平衡的分组策略的方法应用于对频繁项的计数表F-List进行分组,包括以下步骤S:
S1:估计分区挖掘频繁项集计算量:Cal=Log(L(Term,F-List))×(cw/tw),设本机权重值为cw,所有主机的总权重为tw,频繁项集计算量为Cal,Term代表某一项,F-list代表每个项的计数表,L(Term,F-list)表示L(Term,F-list)在F-list的位置;
S2:估计每一个主机中FP-Tree的规模:Size=term_sup×(term_loc+1)/2×(cw/tw),设项的支持度计数为term_sup,项在F-List中的位置为term_loc;
S3:根据所述S2中得到的term_loc和cw权重采取双向考虑的分配算法进行分组频繁项的计数表F-List;
数据预处理:
a.缺省值处理:由于我们采集的数据在一般情况下不可能是完整无缺的,因此针对缺省值我们现做如下处理:
对于单次缺省值:这一缺省值我们将其确定为误差未采集到处理,由常规预测算法来预测出这一缺省值。
对于一连串缺省值:即一段时间没有数值采集情况,我们将其确定为是真正的异常,即将其当做为异常,并标记为-1。
b.告警时间处理:针对告警时间的处理是针对于我们所熟知的一项常识,即显然可以得知告警时间越长,告警处理越加繁琐,相对的该告警就越严重,告警等级就越高,这样对数据进行预处理,我们将告警开始时间与告警结束时间进行处理,将开始时间与结束时间相减得出告警时间(考略到实际情况,统一用分钟计时),此时用24小时作为基准,得到每个告警的相对权重,每个告警的相对权重用rw表示:
rw=[告警结束时间(ET)-告警开始时间(ST)]/24小时
进一步地,在数据中,用相对权重替代告警开始时间和结束时间,即由原来的告警编号(eventld),告警开始时间(alarmTime)、告警结束时间(recoveryTime)、告警类型和磁盘使用率,内存使用率等变为包括告警编号、告警权重、告警类型、磁盘使用率和内存使用率等。
进一步地,已有的优化算法在分组策略上的改进主要是根据不同分区的计算量,比较注重时间复杂度。本发明增加改进Fp-growth算法中需要第一步构建FP-Tree的规模和在现实中每个主机性能可能不一样的参考标准,即综合考虑各个分区中FP-Tree的横向和纵向维度和每一个主机的性能。通过综合考虑时间复杂度和空间复杂度,得出负载均衡的分组策略,从而更好地对频繁项的计数表F-List进行分组。
基于上段的分析,每个主机服务器分配到的数据计算量主要体现在不同项所处路径的长度和主机性能,而这是由该项Term在F-List列表中具体位置和每个主机自身性能权重决定的,据此对分区挖掘频繁项集计算量(简称Cal)可以用下列式子进行估计(设本机权重值为cw,所有主机的总权重为tw):
Cal=Log(L(Term,F-List))×(cw/tw)
其中Term代表某一项,F-list代表进行删减(删除不频繁项)后的对每个项的计数表,L(Term,F-list)就是该项在F-list的位置。
在每一个分区中FP-Tree规模是由每个频繁项在F-List中的位置,该项的支持度计数和主机性能权重进行度量的。假设项的支持度计数为term_sup,项在F-List中的位置为term_loc,本机权重为cw,所有主机总权重为tw。即每一个主机中FP-Tree的规模可用下式进行估计:
Size=term_sup×(term_loc+1)/2×(cw/tw)
上式中:term_sup越大,对应的term_loc也越大,即这两个变量有相同的变化趋势,cw越大,size也越大,所以可以得出树的规模主要由term_loc和cw决定。即根据term_loc和cw权重,可以采取一种双向考虑的分配算法,采用这样的划分可以保证在某一时刻总是将较大计算量和局部FP-Tree规模较大的那个后缀模式项放在计算量和局部FP-Tree较小的那个分区中,保证分区与分区之间的计算量和FP-Tree存储规模较好的适应每个主机性能,避免某一主机提前处理完毕,从而导致效率低下的问题。在考虑每个主机的性能情况下,可以将适量的组多分配给性能较强的主机,这样即考虑到每个主机的性能,也考虑到Fp-Tree的规模,使分组情况更加贴合现实,更加适用于主机间性能不同的情况下对大量数据的处理。
主机权重的计算:
s.1.建立AHP层次结构模型:将主机的不同性能之间相互关系分为最高层,中间层和最低层,绘出层次结构图;
s.2.由专家给出判断矩阵,按两两比较结果填入矩阵中,其中判断矩阵有如下性质:
aij为判断矩阵的i行j列未知量aij,aji为判断矩阵的j行i列未知量aji;
s.3层次单排序及其一致性检验:
对应于判断矩阵最大特征值的特征向量,经过归一化后得到一个向量W,并进行一致性检验。
s.4层次总排序:
也就是对应于分层模式的最高级排序,即计算某一层次所有因素对于最高层相对重要性的权值。由此得出每个主机性能的总排序权值。
分组策略:
综合上述分析,在生成了F-list之后,分组优化主要对该分组进行优化,其分组策略按照如下算法展开:
在确定有多少分区(即有多少主机参与处理任务)之后,按照每一台主机的性能给每一台主机分配不同的任务,很显然我们知道频繁度越高的项在树中的位置越靠近根,其挖掘任务也越轻松。因此为了使每一个主机能够得到符合其性能的数据量,现做以下处理:
设置每个主机的默认权重为W={W0,W1,W2…},当前权重为CW={CW1,CW2,CW3…},设置每个主机的总权重为SW=W0+W1+W2+….,
将第一个项分配给最大权重组别(即权重最大的主机),然后该组当前权重按照下式计算:
Maxserver.CW=Maxserver.CW-SW
计算完成后,重新计算所有分组的权重:CW=CW+W,返回计算最大权重组,依次这样分配。
进一步地,假设有四台主机:分为四个组别,设其分别的主机权重为1、2、3、4(权重1到4依次增大),共有8个频繁项,分别为A,B,C,D,E,F,G,H(支持度从大到小):
经过上述的操作,分配方案如下:
1:E
2:C,H
3:B,F
4:A,D,G
从该分配结果来看,每一个组别综即考虑了主机性能又考虑到了每个主机分配到的Fp-tree的规模,使之能够更好的适应在不同主机性能之间合适的分配任务,显著提高了总体处理性能。
进一步地,所述S7中的处理方法包括Fp-growth的求解,Fp-growth的求解包括Fp-tree预处理和优化查找频繁项路径基,构建Fp-tree,在这里,我们采用常规的构建链表操作,但是采取带尾指针的单链表来记录每个项的位置;
未优化前,当新增加一个项目时,会优先按照循序查找到该项目,然后顺着链表一直顺序查找,直到找到最后一个节点,然后将该节点连接上,需要做大量的遍历操作。
优化后,设置一个尾指针,直接锁定最后一个项的位置,然后将新增的项插入即可,免除了一直遍历的缺点,大大缩短了插入时间,提高了算法的效率。
优化查找频繁项路径基:在构建了Fp-tree之后,对求解频繁项这一步骤采取优化,抛弃常规的处理方式,采用一种以单个频繁项扩展的方法进行求解。并且区别于Cofi-tree算法,抛弃构建单个频繁项的Cofi-tree,采用单循环链表直接存储从Fp-tree搜索到的单个频繁项路径基。
链表中数据结构:{
旧支持度:os;
新支持度:ns;
项名称:item;
}
初始旧支持度为遍历得到的项目支持度,新支持度为0;
进一步地,具体采取两步操作:
第一步,在执行了上述操作后对链表中所有的原始数据进行排序,按照路径长度从小到大的顺序,并在每个长度切换处(排序完成后,每个路径会形成一个长度相等的区域,即此处指区域与区域切换处)设置一个标记指针,这样就可以分成了长度相同的路径基在同一区域,该区域称为段,然后从最小段开始对数据进行两两相交,如果与路径基B存在交集且存在原始的路径,则原始路径的支持度加上路径基B的支持度(此处如果交集长度小于该基础数据段,则不做任何操作),如果存在交集但在原始路径中没有,那么则再次创建一个上述循环单链表结构(此处可称为新元素表),将新得到的路径放入其中,且设置其支持度为0;
第二步,将新得到的一个单链表再次执行上述操作,但不同的是和原始数据进行对比:从最小段开始,将数据进行和原始数据的对比,看在新元素表中的该数据是否是原始数据的子集(此处对比是在大于该数据段的原始数据段中进行,小于或者等于不做考虑),若是,则新元素表中的该数据支持度加上原数据表的旧支持度,若不是,不做操作,指针移至下一个数据,直到新元素表中所有数据做完操作,即该频繁项处理完毕,输出频繁路径,删除与该频繁项所有相关的链表和数据,开始下一个频繁项的处理。
进一步地,关联规则集处理上,分为两种处理方式:
a.算法中告警权重处理:
利用spark平台分组后,每一个分区中,每一条项集中均包含了告警信息的相对权重和告警的其他相关信息,经过算法处理后根据得出来的频繁项,可以确定每一个频繁项的权重信息:
频繁项中每个项加权平均和作为该告警关联的权重:
告警权重=(告警1+告警2+…告警n)/n
由此便可确定出得出的每一个关联规则的权重,即可判定每一个告警信息的告警等级,便于人们在这些告警信息出现时做出相应的及时准备并做好相关记录。
b.冗余规则集处理:由此而产生的许多频繁项目和关联规则集含大量如下相似的例子:
A,B→C
A→C
在上述例子中C产生的原因有两条,一个是A和B共同导致,一个是A导致,由此可判断A,B→C属于冗余关联规则集,可将其删除,减少存储压力,从而输出精简关联规则集。
本发明具有如下的优点和有益效果:
本发明首次将Spark与改进后的Fp-tree算法结合起来,实现了将Fp-tree应用于大规模数据的规则关联分析。
本发明实现了将改进后的Fp-Growth算法与Spark结合起来,实现了对Fp-Growth的性能的大幅度提升,并实现了将Fp-Growth用于大规模告警数据的关联规则挖掘。
本发明在对海量数据进行分组过程中,设计了一种基于树结构和主机性能相结合的方法,更加的贴合实际情况,为在主机性能不同的情况下提供解决方案。
本发明通过改进Fp-Growth算法,大规模提升Fp-Growth算法的性能,实现了在同一时间内只有一个Fp-tree在内存,并提出了两步法算法处理频繁项。
本发明过对数据的预处理和关联规则的处理,可以明确每一个关联规则的重要性和每一个告警信息的告警等级,便于在告警发生时,使人们能够及时对后续结果进行适当的处理。
本发明通过增加一个尾指针,大大减少了遍历次数,增强了算法的效率。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的主要流程图。
图2为常规的插入新增项实现构建链表图。
图3为本发明的优化查找频繁项路径基的构建链表图。
图4为本发明的优化处理频繁路径基方案图。
图5为本发明按照长度将频繁路径基分别放入对应的段方案图。
图6为本发明的将其他元素也将频繁路径基分别放入对应的段方案图。
图7为本发明的更新的新元素表。
具体实施方式
在对本发明的任意实施例进行详细的描述之前,应该理解本发明的应用不局限于下面的说明或附图中所示的结构的细节。本发明可采用其它的实施例,并且可以以各种方式被实施或被执行。基于本发明中的实施例,本领域普通技术人员在没有做出创造性改进前提下所获得的所有其它实施例,均属于本发明保护的范围。
一种Fp-growth关联规则挖掘方法,如图1所示,包括以下步骤:
S1.通过聚类算法得出每个主机所处的状态和相关的各指标信息;
S2.将所述S1得到的数据按照时间戳对齐,每一个时间戳所得到的数据都是一个项集;
S3.将所述S2处理过的数据上传到spark平台,得到保存这些数据的spark平台数据库;
S4.对spark数据库中的数据进行统计,扫描一次数据库,生成每个项的计数表F-list,计数表中的项按照数量的多少,从大到小进行排序;
S5.按照S4中得到的F-list计数表,对数据库进行第一步的处理,删除不频繁项,缩减数据库的规模;
S6.对F-list进行分组生成Group-list,其中Group-list的组数目为主机数目,Group-list中的每一个分区中同样按照数量的多少,从大到小进行排序;
S7.根据Group-list对数据进行处理,将数据按照Group-list的分组分派给不同的主机服务器进行处理;数据分派过程为扫描数据库中每一个项,遇到Group-list中的项,将扫描过的项全部作为一个项集加入到Group-list的分组中;
S8.将所述S7处理好的数据,在不同的主机上运行相同的改进数据挖掘算法,得出关联规则挖掘的局部频繁项;
S9.将所述S8所有的局部频繁项整理合并,对其做进一步的处理,得到关联规则。
下面将对该流程中的创新点进行详细讲解,其中包括数据预处理,spark平台分组优化,和相关算法的改进:
数据预处理:
a.缺省值处理:由于我们采集的数据在一般情况下不可能是完整无缺的,因此针对缺省值的处理我们现做如下处理:
对于单次缺省值:这一缺省值我们将其确定为误差未采集到处理,由常规预测算法来预测出这一缺省值。
对于一连串缺省值:即一段时间没有数值采集情况,我们将其确定为是真正的异常,即将其当做为异常,并标记为-1。
b.告警时间处理:针对告警时间的处理是针对于我们所熟知的一项常识,即显然可以得知告警时间越长,告警处理越加繁琐,相对的该告警就越严重,告警等级就越高,这样对数据进行预处理,我们将告警开始时间与告警结束时间进行处理,将开始时间与结束时间相减得出告警时间(考略到实际情况,统一用分钟计时),此时用24小时作为基准,得到每个告警的相对权重,每个告警的相对权重用rw表示:
rw=[告警开始时间(ST)-告警结束时间(ET)]/24小时
在一个实施例中,在数据中,用相对权重替代告警开始时间和结束时间,即由原来的告警编号(eventld)、告警开始时间(alarmTime)、告警结束时间(recoveryTime)、告警类型和磁盘使用率,内存使用率等变为包括告警编号、告警权重、告警类型、磁盘使用率和内存使用率等。
优选的,已有的优化算法在分组策略上的改进主要是根据不同分区的计算量,比较注重时间复杂度。本发明增加改进Fp-growth算法中需要第一步构建FP-Tree的规模和在现实中每个主机性能可能不一样的参考标准,即综合考虑各个分区中FP-Tree的横向和纵向维度和每一个主机的性能。通过综合考虑时间复杂度和空间复杂度,得出负载均衡的分组策略,从而更好地对频繁项的计数表F-List进行分组。
基于上段的分析,每个主机服务器分配到的数据计算量主要体现在不同项所处路径的长度和主机性能,而这是由该项Term在F-List列表中具体位置和每个主机自身性能权重决定的,据此对分区挖掘频繁项集计算量(简称Cal)可以用下列式子进行估计(设本机权重值为cw,所有主机的总权重为tw):
Cal=Log(L(Term,F-List))×(cw/tw)
其中Term代表某一项,F-list代表进行删减(删除不频繁项)后的对每个项的计数表,L(Term,F-list)就是该项在F-list的位置。
在每一个分区中FP-Tree规模是由每个频繁项在F-List中的位置,该项的支持度计数和主机性能权重进行度量的。假设项的支持度计数为term_sup,项在F-List中的位置为term_loc,本机权重为cw,所有主机总权重为tw。即每一个主机中FP-Tree的规模可用下式进行估计:
Size=term_sup×(term_loc+1)/2×(cw/tw)
上式中:term_sup越大,对应的term_loc也越大,即这两个变量有相同的变化趋势,cw越大,size也越大,所以可以得出树的规模主要由term_loc和cw决定。即根据term_loc和cw权重,可以采取一种双向考虑的分配算法,采用这样的划分可以保证在某一时刻总是将较大计算量和局部FP-Tree规模较大的那个后缀模式项放在计算量和局部FP-Tree较小的那个分区中,保证分区与分区之间的计算量和FP-Tree存储规模较好的适应每个主机性能,避免某一主机提前处理完毕,从而导致效率低下的问题。在考虑每个主机的性能情况下,可以将适量的组多分配给性能较强的主机,这样即考虑到每个主机的性能,也考虑到Fp-Tree的规模,使分组情况更加贴合现实,更加适用于主机间性能不同的情况下对大量数据的处理。
主机权重的计算:
s.1.建立AHP层次结构模型:将主机的不同性能之间相互关系分为最高层,中间层和最低层,绘出层次结构图;
s.2.由专家给出判断矩阵,按两两比较结果填入矩阵中,其中判断矩阵有如下性质:
s.3层次单排序及其一致性检验
对应于判断矩阵最大特征值的特征向量,经过归一化后得到一个向量W,并进行一致性检验。
s.4层次总排序
也就是对应于分层模式的最高级排序,即计算某一层次所有因素对于最高层相对重要性的权值。由此得出每个主机性能的总排序权值。
分组策略:
综合上述分析,在生成了F-list之后,分组优化主要对该分组进行优化,其分组策略按照如下算法展开:
在确定有多少分区(即有多少主机参与处理任务)之后,按照每一台主机的性能给每一台主机分配不同的任务,很显然我们知道频繁度越高的项在树中的位置越靠近根,其挖掘任务也越轻松。因此为了使每一个主机能够得到符合其性能的数据量,现做以下处理:
设置每个主机的默认权重为W={W0,W1,W2…},当前权重为CW={CW1,CW2,CW3…},设置每个主机的总权重为SW=W0+W1+W2+….,
将第一个项分配给最大权重组别(即权重最大的主机),然后该组当前权重按照下式计算:
Maxserver.CW=Maxserver.CW-SW
计算完成后,重新计算所有分组的权重:CW=CW+W,返回计算最大权重组,依次这样分配。
在一个实施例中,假设有四台主机:分为四个组别,设其分别的主机权重为1、2、3、4(权重1到4依次增大),共有8个频繁项,分别为A,B,C,D,E,F,G,H(支持度从大到小):
经过上述的操作,分配方案如下:
1:E
2:C,H
3:B,F
4:A,D,G
从该分配结果来看,每一个组别综即考虑了主机性能又考虑到了每个主机分配到的Fp-tree的规模,使之能够更好的适应在不同主机性能之间合适的分配任务,显著提高了总体处理性能。
优选的,构建Fp-tree,在这里,我们采用常规的构建链表操作,但是采取带尾指针的单链表来记录每个项的位置;
如图2所示,未优化前,当新增加一个项目时,会优先按照循序查找到该项目,然后顺着链表一直顺序查找,直到找到最后一个节点,然后将该节点连接上,需要做大量的遍历操作。
如图3所示,优化后,设置一个尾指针,直接锁定最后一个项的位置,然后将新增的项插入即可,免除了一直遍历的缺点,大大缩短了插入时间,提高了算法的效率。
优化查找频繁项路径基:在构建了Fp-tree之后,对求解频繁项这一步骤采取优化,抛弃常规的处理方式,采用一种以单个频繁项扩展的方法进行求解。并且区别于Cofi-tree算法,抛弃构建单个频繁项的Cofi-tree,采用单循环链表直接存储从Fp-tree搜索到的单个频繁项路径基。
链表中数据结构:{
旧支持度:os;
新支持度:ns;
项名称:item;
}
初始旧支持度为遍历得到的项目支持度,新支持度为0;
进一步地,具体采取两步操作:
第一步,在执行了上述操作后对链表中所有的原始数据进行排序,按照路径长度从小到大的顺序,并在每个长度切换处(排序完成后,每个路径会形成一个长度相等的区域,即此处指区域与区域切换处)设置一个标记指针,这样就可以分成了长度相同的路径基在同一区域,该区域称为段,然后从最小段开始对数据进行两两相交,如果与路径基B存在交集且存在原始的路径,则原始路径的支持度加上路径基B的支持度(此处如果交集长度小于该基础数据段,则不做任何操作),如果存在交集但在原始路径中没有,那么则再次创建一个上述循环单链表结构(此处可称为新元素表),将新得到的路径放入其中,且设置其支持度为0;
第二步,将新得到的一个单链表再次执行上述操作,但不同的是和原始数据进行对比:从最小段开始,将数据进行和原始数据的对比,看在新元素表中的该数据是否是原始数据的子集(此处对比是在大于该数据段的原始数据段中进行,小于或者等于不做考虑),若是,则新元素表中的该数据支持度加上原数据表的旧支持度,若不是,不做操作,指针移至下一个数据,直到新元素表中所有数据做完操作,即该频繁项处理完毕,输出频繁路径,删除与该频繁项所有相关的链表和数据,开始下一个频繁项的处理。
在一个实施例中,讲解该算法的处理过程:
在分区并行改进Fp-tree这一块,根据Fp-tree创建每一个频繁项的频繁路径基后,优化处理频繁路径基方案:为该频繁项创建一个环形单链表,其中初始单链表一般都有N段,N是频繁路径基的最大长度(此处以N段为例),如图4所示;
按照长度对频繁路径基进行分类,相同的频繁路径基连接在一起。由图得4到的下所示的路径基为例:
G-A-H:1
G-E-F-A-H:2
G-E-A-H:1
G-F-A-H:1
G-E-F-H:1
将上面所示的频繁路径基按照长度分别放入对应的段,例如GAH放入对应的长度为3的段中,如图5所示,第一步:从长度为1的启始段开始,每一段中的每个路径基依次按顺时针方向(路径基长度递增)与所有段中的路径基进行比较(包含自身段),直至到达结束段。如果此路径基是其他段中的某个路径基B的子集,则此路径基的支持度等于原来的支持度加上路径基B的支持度,若不是,则创建一个新的单循环链表结构,并设置支持度为0。如长度为3的段中的路径基GAH∶1是长度为4的段中GEAH:1和GFAH:1的子集,也是长度为5的段中GEFAH∶2的子集,则GAH的支持度由1变为1+1+1+2=5。GAH和其他路径基相交后得到GH这一新元素,则创建新的段,与此同时,GAH的支持度变为5,GH支持度变为0。将其他元素也做此操作,得到图6:第二步:将新元素表中每个元素与原始数据表中对比,更新新元素表,如图7所示:此时,支持度大于或等于最小支持度(min_sup)的路径基即为G-Fp-tree的最终频繁项目集,为GH∶6,GEH∶4,GFH∶4,GAH∶5,GEAH∶3,GFAH∶3,GEFH∶3。至此,频繁项G处理完成,删除G的相应链表和数据,然后对其他频繁项进行类似处理。以此类推,得出事务数据库的所有最终频繁项目集。
在一个实施例中,关联规则集处理上,分为两种处理方式:
a.算法中告警权重处理:
利用spark平台分组后,每一个分区中,每一条项集中均包含了告警信息的相对权重和告警的其他相关信息,经过算法处理后根据得出来的频繁项,可以确定每一个频繁项的权重信息:
频繁项中每个项加权平均和作为该告警关联的权重:
告警权重=(告警1+告警2+…告警n)/n
由此便可确定出得出的每一个关联规则的权重,即可判定每一个告警信息的告警等级,便于人们在这些告警信息出现时做出相应的及时准备并做好相关记录。
b.冗余规则集处理:由此而产生的许多频繁项目和关联规则集含大量如下相似的例子:
A,B→C
A→C
在上述例子中C产生的原因有两条,一个是A和B共同导致,一个是A导致,由此可判断A,B→C属于冗余关联规则集,可将其删除,减少存储压力,从而输出精简关联规则集。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种平台分组方法,其特征在于,综合考虑各个分区中FP-Tree的横向和纵向维度和每一个主机的性能,设置负载平衡的分组策略,所述设置负载平衡的分组策略的方法应用于对频繁项的计数表F-List进行分组,包括以下步骤S:
S1:估计分区挖掘频繁项集计算量:Cal=Log(L(Term,F-List))×(cw/tw),设本机权重值为cw,所有主机的总权重为tw,频繁项集计算量为Cal,Term代表某一项,F-list代表每个项的计数表,L(Term,F-list)表示L(Term,F-list)在F-list的位置;
S2:估计每一个主机中FP-Tree的规模:Size=term_sup×(term_loc+1)/2×(cw/tw),设项的支持度计数为term_sup,项在F-List中的位置为term_loc;
S3:根据所述S2中得到的term_loc和cw权重采取双向考虑的分配算法进行分组频繁项的计数表F-List;
每一个主机的性能权重的计算包括以下步骤s:
s1:建立AHP层次结构模型:将主机的不同性能之间相互关系分为最高层,中间层和最低层,绘出层次结构图;
s2:由专家给出判断矩阵,按两两比较结果填入矩阵中,其中判断矩阵有如下性质:
aij为判断矩阵的i行j列未知量aij,aji为判断矩阵的j行i列未知量aji;
s3:层次单排序及其一致性检验:
对应于判断矩阵最大特征值的特征向量,经过归一化后得到一个向量W,并进行一致性检验;
s4:层次总排序:
对应于分层模式的最高级排序计算某一层次所有因素对于最高层相对重要性的权值,得出每个主机性能的总排序权值;
所述步骤S和步骤s的独立进行后,生成了F-list后分组策略为:设置每个主机的默认权重为W={W0,W1,W2…},设置每个主机的当前权重为CW={CW1,CW2,CW3…},设置每个主机的总权重为SW=W0+W1+W2+….,按照F-list,将F-list中第一个项分配给最大权重组别,所述最大权重组别为权重最大的主机,然后所述最大权重组别的当前权重按照下式计算:
Maxserver.CW=Maxserver.CW-SW,Maxserver.CW为最大权重组别的当前权重;
计算完成后,重新计算所有分组的权重:CW=CW+W,返回计算最大权重组,直到F-list依次分配后结束。
2.根据权利要求1所述的一种平台分组方法,其特征在于,还包括数据预处理,所述数据预处理包括缺省值处理:
对于单次缺省值:将单次缺省值确定为误差未采集到处理,由常规预测算法来预测出单次缺省值;对于一连串缺省值:一段时间没有数值采集情况为一连串缺省值,将一连串缺省值确定为是真正的异常,将一连串缺省值当做为异常,并标记为-1。
3.根据权利要求1所述的一种平台分组方法,其特征在于,还包括数据预处理,所述数据预处理包括告警时间处理:
将告警开始时间与告警结束时间进行相减得出告警时间,用24小时作为基准,得到每个告警的相对权重,每个告警的相对权重用rw表示:
rw=[告警结束时间(ET)-告警开始时间(ST)]/24小时,所述告警开始时间和告警结束时间统一用分钟计时,用相对权重替代告警开始时间和结束时间。
4.一种Fp-growth关联规则挖掘方法,其特征在于,包括以下步骤:
S1.通过聚类算法得出每个主机所处的状态和相关的各指标信息;
S2.将所述S1得到的数据按照时间戳对齐,每一个时间戳所得到的数据都是一个项集;
S3.将所述S2处理过的数据上传到spark平台,得到保存这些数据的spark平台数据库;
S4.对spark数据库中的数据进行统计,扫描一次数据库,生成每个项的计数表F-list,计数表中的项按照数量的多少,从大到小进行排序;
S5.按照S4中得到的F-list计数表,对数据库进行第一步的处理,删除不频繁项,缩减数据库的规模;
S6.对F-list进行分组生成Group-list,其中Group-list的组数目为主机数目,Group-list中的每一个分区中同样按照数量的多少,从大到小进行排序;
S7.根据Group-list对数据进行处理,将数据按照Group-list的分组分派给不同的主机服务器进行处理;数据分派过程为扫描数据库中每一个项,遇到Group-list中的项,将扫描过的项全部作为一个项集加入到Group-list的分组中;
S8.将所述S7处理好的数据,在不同的主机上运行相同的改进数据挖掘算法,得出关联规则挖掘的局部频繁项;
S9.将所述S8所有的局部频繁项整理合并,对其做进一步的处理,得到关联规则。
5.根据权利要求4所述的一种Fp-growth关联规则挖掘方法,其特征在于,所述每个主机所处的状态和相关的各指标信息包括告警编号、告警权重、告警类型、磁盘使用率和内存使用率等。
6.根据权利要求4所述的一种Fp-growth关联规则挖掘方法,其特征在于,所述S3中上传到spark平台的过程中,设置负载平衡的分组策略,分组方法步骤如下:综合考虑各个分区中FP-Tree的横向和纵向维度和每一个主机的性能,设置负载平衡的分组策略,所述设置负载平衡的分组策略的方法应用于对频繁项的计数表F-List进行分组,包括以下步骤S:
S1:估计分区挖掘频繁项集计算量:Cal=Log(L(Term,F-List))×(cw/tw),设本机权重值为cw,所有主机的总权重为tw,频繁项集计算量为Cal,Term代表某一项,F-list代表每个项的计数表,L(Term,F-list)表示L(Term,F-list)在F-list的位置;
S2:估计每一个主机中FP-Tree的规模:Size=term_sup×(term_loc+1)/2×(cw/tw),设项的支持度计数为term_sup,项在F-List中的位置为term_loc;
S3:根据所述S2中得到的term_loc和cw权重采取双向考虑的分配算法进行分组频繁项的计数表F-List;
每一个主机的性能权重的计算包括以下步骤s:
s1:建立AHP层次结构模型:将主机的不同性能之间相互关系分为最高层,中间层和最低层,绘出层次结构图;
s2:由专家给出判断矩阵,按两两比较结果填入矩阵中,其中判断矩阵有如下性质:
aij为判断矩阵的i行j列未知量aij,aji为判断矩阵的j行i列未知量aji;
s3:层次单排序及其一致性检验:
对应于判断矩阵最大特征值的特征向量,经过归一化后得到一个向量W,并进行一致性检验;
s4:层次总排序:
对应于分层模式的最高级排序计算某一层次所有因素对于最高层相对重要性的权值,得出每个主机性能的总排序权值;
所述步骤S和步骤s的独立进行后,生成了F-list后分组策略为:设置每个主机的默认权重为W={W0,W1,W2…},设置每个主机的当前权重为CW={CW1,CW2,CW3…},设置每个主机的总权重为SW=W0+W1+W2+….,按照F-list,将F-list中第一个项分配给最大权重组别,所述最大权重组别为权重最大的主机,然后所述最大权重组别的当前权重按照下式计算:
Maxserver.CW=Maxserver.CW-SW,Maxserver.CW为最大权重组别的当前权重;
计算完成后,重新计算所有分组的权重:CW=CW+W,返回计算最大权重组,直到F-list依次分配后结束。
7.根据权利要求4所述的一种Fp-growth关联规则挖掘方法,其特征在于,所述S7中的处理方法包括Fp-growth的求解,Fp-growth的求解包括Fp-tree预处理和优化查找频繁项路径基,具体步骤如下:
构建Fp-tree:采取带尾指针的单链表来记录每个项的位置进行构建链表操作,设置一个尾指针,直接锁定最后一个项的位置,然后将新增的项插入;
优化查找频繁项路径基:构建了Fp-tree之后,对求解频繁项这一步骤采取优化,优化方式为采用以单个频繁项扩展的方法进行求解,操作为单循环链表直接存储从Fp-tree搜索到的单个频繁项路径基。
8.根据权利要求4所述的一种Fp-growth关联规则挖掘方法,其特征在于,还包括所述关联规则的处理过程,所述关联规则的处理过程包括告警权重处理,告警权重处理过程为:利用spark平台分组后,每一个分区中,每一条项集中均包含了告警信息的相对权重和告警的其他相关信息,经过算法处理后根据得出来的频繁项,确定每一个频繁项的权重信息,频繁项中每个项加权平均和作为告警关联的权重:告警权重=(告警1+告警2+…告警n)/n,得出的每一个关联规则的权重,判定每一个告警信息的告警等级,并做好相关记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202785.XA CN110990434B (zh) | 2019-11-29 | 2019-11-29 | Spark平台分组和Fp-Growth关联规则挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202785.XA CN110990434B (zh) | 2019-11-29 | 2019-11-29 | Spark平台分组和Fp-Growth关联规则挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990434A true CN110990434A (zh) | 2020-04-10 |
CN110990434B CN110990434B (zh) | 2023-04-18 |
Family
ID=70088511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911202785.XA Active CN110990434B (zh) | 2019-11-29 | 2019-11-29 | Spark平台分组和Fp-Growth关联规则挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990434B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028531A1 (en) * | 2000-01-03 | 2003-02-06 | Jiawei Han | Methods and system for mining frequent patterns |
CN103258049A (zh) * | 2013-05-27 | 2013-08-21 | 重庆邮电大学 | 一种基于海量数据的关联规则挖掘方法 |
CN104731925A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | 基于MapReduce的FP-Growth的负载均衡并行计算方法 |
CN104834709A (zh) * | 2015-04-29 | 2015-08-12 | 南京理工大学 | 一种基于负载均衡的并行余弦模式挖掘方法 |
US20160179903A1 (en) * | 2014-12-23 | 2016-06-23 | Ran Bittmann | Enhancing frequent itemset mining |
CN105786897A (zh) * | 2014-08-29 | 2016-07-20 | 韩国地质资源研究院 | 用于提供基于情境感知的用户关注信息的情境感知本体构建方法 |
CN105825226A (zh) * | 2016-03-11 | 2016-08-03 | 江苏畅远信息科技有限公司 | 一种基于关联规则的分布式多标签图像识别方法 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN107862070A (zh) * | 2017-11-22 | 2018-03-30 | 华南理工大学 | 基于文本聚类的线上课堂讨论短文本即时分组方法及系统 |
CN110442038A (zh) * | 2019-07-25 | 2019-11-12 | 南京邮电大学 | 基于FP-Growth算法的火电机组运行优化目标值确定方法 |
-
2019
- 2019-11-29 CN CN201911202785.XA patent/CN110990434B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028531A1 (en) * | 2000-01-03 | 2003-02-06 | Jiawei Han | Methods and system for mining frequent patterns |
CN103258049A (zh) * | 2013-05-27 | 2013-08-21 | 重庆邮电大学 | 一种基于海量数据的关联规则挖掘方法 |
CN105786897A (zh) * | 2014-08-29 | 2016-07-20 | 韩国地质资源研究院 | 用于提供基于情境感知的用户关注信息的情境感知本体构建方法 |
US20160179903A1 (en) * | 2014-12-23 | 2016-06-23 | Ran Bittmann | Enhancing frequent itemset mining |
CN104731925A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | 基于MapReduce的FP-Growth的负载均衡并行计算方法 |
CN104834709A (zh) * | 2015-04-29 | 2015-08-12 | 南京理工大学 | 一种基于负载均衡的并行余弦模式挖掘方法 |
CN105825226A (zh) * | 2016-03-11 | 2016-08-03 | 江苏畅远信息科技有限公司 | 一种基于关联规则的分布式多标签图像识别方法 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN107862070A (zh) * | 2017-11-22 | 2018-03-30 | 华南理工大学 | 基于文本聚类的线上课堂讨论短文本即时分组方法及系统 |
CN110442038A (zh) * | 2019-07-25 | 2019-11-12 | 南京邮电大学 | 基于FP-Growth算法的火电机组运行优化目标值确定方法 |
Non-Patent Citations (8)
Title |
---|
HUAIBIN WANG 等: "Research on Association Rule Algorithm Based on Distributed and Weighted FP-Growth", 《ADVANCES IN MULTIMEDIA, SOFTWARE ENGINEERING AND COMPUTING》 * |
张同启: "基于关联规则和用户喜好程度的综合电子商务推荐系统的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
张素琪 等: "基于Spark的并行频繁项集挖掘算法", 《计算机应用与软件》 * |
李翔: "基于Hadoop的分布加权FP-tree算法的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
杨帆: "基于FP-growth算法的告警收敛方案浅析", 《福建电脑》 * |
王文佳: "基于普适环境的FP-growth算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
田菊红: "基于关联规则挖掘的电力通信网故障诊断", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》 * |
谢隽: "关于中医方剂配伍规律的数据挖掘研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110990434B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7941425B2 (en) | Techniques for scoring and comparing query execution plans | |
Wulff-Nilsen | Fully-dynamic minimum spanning forest with improved worst-case update time | |
US7562090B2 (en) | System and method for automating data partitioning in a parallel database | |
US10191932B2 (en) | Dependency-aware transaction batching for data replication | |
Dominguez-Sal et al. | Survey of graph database performance on the hpc scalable graph analysis benchmark | |
US8271523B2 (en) | Coordination server, data allocating method, and computer program product | |
CN111460023A (zh) | 基于Elasticsearch的业务数据处理方法、装置、设备及存储介质 | |
US20090043745A1 (en) | Query Execution and Optimization with Autonomic Error Recovery from Network Failures in a Parallel Computer System with Multiple Networks | |
CN106055563A (zh) | 一种基于网格划分的并行空间查询方法及其系统 | |
CN112015741A (zh) | 一种海量数据的分库分表存储方法与装置 | |
Cheng et al. | Efficient event correlation over distributed systems | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
CN107330083B (zh) | 等宽直方图并行构建方法 | |
CN110990434B (zh) | Spark平台分组和Fp-Growth关联规则挖掘方法 | |
US7225198B2 (en) | Data compiling method | |
US7539608B1 (en) | Techniques for determining effects on system performance of a memory management parameter | |
KR20140064077A (ko) | 유용성 높은 패턴의 마이닝 방법 | |
CN101866355A (zh) | 基于云计算的社会网络划分方法及系统 | |
CN110018830A (zh) | 一种基于分布式集群的大型软件编译装置 | |
CN114723108B (zh) | 城市路网海量公共服务设施可达性计算方法与装置 | |
CN105279241A (zh) | 基于云计算的大数据处理方法 | |
CN111198766B (zh) | 数据库访问操作部署方法、数据库访问方法及装置 | |
CN113986900A (zh) | 数据质量问题分级处理方法、存储介质及系统 | |
CN112528613A (zh) | 一种数据表生成方法及其相关设备 | |
CN116881610B (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 |