CN111782885A - 数据集状态的判断方法及装置 - Google Patents
数据集状态的判断方法及装置 Download PDFInfo
- Publication number
- CN111782885A CN111782885A CN202010577785.4A CN202010577785A CN111782885A CN 111782885 A CN111782885 A CN 111782885A CN 202010577785 A CN202010577785 A CN 202010577785A CN 111782885 A CN111782885 A CN 111782885A
- Authority
- CN
- China
- Prior art keywords
- bucket
- chain
- state
- rule
- judgment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 13
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种数据集状态的判断方法及装置,涉及数据处理的技术领域,包括:先获取原始数据集,并将原始数据集分割成多个原始子数据集;然后将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;最后基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。本发明可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种数据集状态的判断方法及装置。
背景技术
在目前大数据的背景下,对数据按设定的规则进行统计计算是一项必然的工作,而数据的多样性和规则的复杂度必然会带来计算工作的难度。现有的一款实时统计服务是基于一种bucket数据存储器对数据做统计计算操作的实时服务,该实时服务在对数据进行统计计算之前需要保证被统计的数据所在的bucket必须为ready状态,并且必须按照bucket窗口时间的先后顺序来统计计算,同时bucket被判定为ready状态的标准是该bucket必须满足若干个判断规则。
目前现有的判断方法是分批对bucket利用if-else的方式进行判断,当bucket满足全部判断规则之后,再将该bucket的状态确定为ready状态。而if-else的判断方式不容易增加新的判断规则,且在新增判断规则时容易影响到其他判断规则,大大增加了变更的风险,扩展性较差。
发明内容
本发明的目的在于提供一种数据集状态的判断方法及装置,以缓解现有技术中存在的if-else的判断方式不容易增加新的判断规则,且在新增判断规则时容易影响到其他判断规则,大大增加了变更的风险,扩展性较差的技术问题。
本发明提供的一种数据集状态的判断方法,其中,包括:获取原始数据集,并将所述原始数据集分割成多个原始子数据集;将所述多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个所述bucket用于存储一个原始子数据集;基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,所述预设规则链中包含至少一个判断规则,且所述预设规则链中一个节点对应一个判断规则。
进一步的,每个所述bucket均内置一个第一next指针,所述第一next指针用于指向所述bucket链中的下一个bucket;基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果包括:判断当前bucket是否满足所述预设规则链中任一判断规则;其中,在初始判断时,所述当前bucket为所述bucket链中的第一个bucket;若所述当前bucket满足所述预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;在确定好所述当前bucket的状态结果之后,对所述下一个bucket的状态进行判断,重复执行上述步骤,直至得到所述bucket链中每个bucket的状态结果。
进一步的,所述节点包含第二next指针,所述第二next指针用于指向下一个节点所对应的判断规则;判断当前bucket是否满足所述预设规则链中任一判断规则包括:按照预设规则链中所有节点中第二next指针的指向,依次判断所述当前bucket是否满足预设规则链中的每一个判断规则,直至满足预设规则链中任一判断规则。
进一步的,在判断当前bucket是否满足所述预设规则链中任一判断规则之后,方法还包括:若所述当前bucket不满足所述预设规则链中所有的判断规则,则将当前bucket的状态结果确定为不可用状态。
进一步的,在将当前bucket的状态结果确定为准备完成状态之后,方法还包括:对当前bucket存储的原始子数据进行统计计算,得到统计计算结果。
进一步的,方法还包括:获取针对预设规则链的修改操作,其中,所述修改操作为添加指令或删除指令,所述添加指令为在预设规则链中添加新的判断规则,所述删除指令为删除预设规则链中原有的判断规则;基于所述修改操作,对所述预设规则链进行修改。
本发明提供的一种数据集状态的判断装置,其中,包括:获取分割单元,用于获取原始数据集,并将所述原始数据集分割成多个原始子数据集;存储单元,用于将所述多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个所述bucket用于存储一个原始子数据集;判断单元,用于基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,所述预设规则链中包含至少一个判断规则,且所述预设规则链中一个节点对应一个判断规则。
进一步的,每个所述bucket均内置一个第一next指针,所述第一next指针用于指向所述bucket链中的下一个bucket;判断单元包括:第一判断模块,用于判断当前bucket是否满足所述预设规则链中任一判断规则;其中,在初始判断时,所述当前bucket为所述bucket链中的第一个bucket;第一确定模块,用于若所述当前bucket满足所述预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;第二判断模块,用于在确定好所述当前bucket的状态结果之后,对所述下一个bucket的状态进行判断,重复执行上述步骤,直至得到所述bucket链中每个bucket的状态结果。
本发明还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现的所述的数据集状态的判定方法的步骤。
本发明还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行所述的数据集状态的判定方法。
本发明提供的一种数据集状态的判断方法及装置,包括:先获取原始数据集,并将原始数据集分割成多个原始子数据集;然后将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;最后基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。本发明中的每个判断规则均位于预设规则链中的一个节点,因此在保证各个判断规则相辅相成的同时,还能够保证各个判断规则职责之间具有较低的耦合度,进而可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据集状态的判断方法的流程图;
图2为图1中步骤S103的流程图;
图3为本发明实施例提供的另一种数据集状态的判断方法的流程图;
图4为链式bucket数据集的结构示意图;
图5为bucket状态规则链的结构示意图;
图6为一种对当前bucket状态进行判断的流程图;
图7为另一种对当前bucket状态进行判断的流程图;
图8为本发明实施例提供的一种数据集状态的判断装置的结构示意图。
图标:
11-获取分割单元;12-存储单元;13-判断单元。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前现有的判断方法是分批对bucket利用if-else的方式进行判断,当bucket满足全部判断规则之后,再将该bucket的状态确定为ready状态。而if-else的判断方式不容易增加新的判断规则,且在新增判断规则时容易影响到其他判断规则,大大增加了变更的风险,扩展性较差。基于此,本发明实施例提供了一种数据集状态的判断方法及装置,可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据集状态的判断方法进行详细描述。
实施例1:
根据本发明实施例,提供了一种数据集状态的判断方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例提供的一种数据集状态的判断方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,获取原始数据集,并将原始数据集分割成多个原始子数据集;
在本发明实施例中,该数据集状态的判断方法可以应用于实时数据服务平台,该实时数据服务平台主要是用于为其他平台提供实时数据的统计计算结果。而实时服务先按既定的采集规则从指定的数据源中采集原始交易数据(即原始数据),并将所有的原始数据构成一个原始数据集,然后对原始数据集按预设条件进行分割,得到多个原始子数据集,为了区分原始子数据集和原始数据集中的原始数据,可以将原始子数据集中的原始数据称之为原始子数据。本发明实施例对预设条件的具体内容不作具体限制。
步骤S102,将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;
在本发明实施例中,bucket是bucket存储器的简称,是一种用于存放数据集的存储器,bucket是一种链式结构,当前bucket可以通过前后指针(如previous、next)分别指向其前一个bucket和后一个bucket,以此来组成一个bucket链。bucket的初始状态为步骤S204中的不可用状态(即not_available),在该bucket中的数据全部准备完成之后,其状态设置为准备完成状态(ready状态),或者该bucket超过状态判断的最大延迟时间时,也可以将该bucket的状态强制置为准备完成状态。每个bucket存储器具有bucket数量,bucket数量特指某一bucket存储器中存储的原始子数据的总数据量,是bucket状态判断的一个重要指标。本发明实施例可以将多个原始子数据集分类到不同的bucket存储器(简称bucket)中,并按时间顺序将各个bucket存储器组合成一个目标bucket链。当按时间段对原始数据进行统计时,需要保证该统计时间段内的所有bucket存储器都处于准备完成状态,再按设定的判断规则进行原始数据的统计计算,从而为其他平台提供数据的统计结果。本发明实施例还可以对原始子数据进行统计,此时需要原始子数据所在的bucket存储器处于准备完成状态。
步骤S103,基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链中包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。
在本发明实施例中,判断规则是bucket状态的判断条件,该判断条件可以预先设置。在bucket满足判断条件时可以被设置为ready状态。预设规则链是由若干个判断规则组成的规则链,预设规则链中的一个节点对应一个判断规则,且每个当前节点又指向后一个节点,以此来形成一个链状的规则集合。
在该数据集状态的判断方法应用于实时数据服务平台时,数据集状态的判断方法在此场景中指的是,通过各个判断规则对bucket的状态进行判断,判断时可以直接往预设规则链中传入bucket数据集(即目标bucket链中的bucket),该bucket数据集会依次被各个判断规则进行处理,如果满足其中一个判断规则,则把该bucket数据集设置为准备完成状态。如果bucket数据集不满足当前判断规则,则会被流转到下一个判断规则,以此类推,分别由各个判断规则进行判断处理,直到该bucket数据集的状态判断完成。
本发明实施例提供的一种数据集状态的判断方法,包括:先获取原始数据集,并将原始数据集分割成多个原始子数据集;然后将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;最后基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。本发明实施例中的每个判断规则均位于预设规则链中的一个节点,因此在保证各个判断规则相辅相成的同时,还能够保证各个判断规则职责之间具有较低的耦合度,进而可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
在一个可选的实施例中,每个bucket均内置一个第一next指针,第一next指针用于指向bucket链中的下一个bucket;如图2所示,步骤S103,基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果包括以下步骤:
步骤S201,判断当前bucket是否满足预设规则链中任一判断规则;其中,在初始判断时,当前bucket为bucket链中的第一个bucket;
步骤S202,若当前bucket满足预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;
步骤S203,在确定好当前bucket的状态结果之后,对下一个bucket的状态进行判断,重复执行上述步骤,直至得到bucket链中每个bucket的状态结果。
在本发明实施例中,通过第一next指针指向下一个bucket的方式,可以对bucket链中的每个bucket进行状态判断,以防漏掉对某个bucket的状态判断。
在一个可选的实施例中,节点包含第二next指针,第二next指针用于指向下一个节点所对应的判断规则;
步骤S201,判断当前bucket是否满足预设规则链中任一判断规则包括以下步骤:按照预设规则链中所有节点中第二next指针的指向,依次判断当前bucket是否满足预设规则链中的每一个判断规则,直至满足预设规则链中任一判断规则。
在本发明实施例中,通过第二next指针指向下一个节点所对应的判断规则的方式,可以利用预设规则链中所有节点位置处的判断规则对当前bucket进行状态判断,以防漏掉利用某个判断规则对当前bucket进行状态判断。
在一个可选的实施例中,如图2所示,在步骤S201,判断当前bucket是否满足预设规则链中任一判断规则之后,方法还包括:
步骤S204,若当前bucket不满足预设规则链中所有的判断规则,则将当前bucket的状态结果确定为不可用状态。
在本发明实施例中,在当前bucket处于不可用状态时,无法对其存储的数据进行统计计算。
在一个可选的实施例中,在步骤S202,将当前bucket的状态结果确定为准备完成状态之后,方法还包括:对当前bucket存储的原始子数据进行统计计算,得到统计计算结果。
进一步的,方法还包括:获取针对预设规则链的修改操作;基于修改操作,对预设规则链进行修改。
在本发明实施例中,修改操作为添加指令或删除指令,添加指令为在预设规则链中添加新的判断规则,删除指令为删除预设规则链中原有的判断规则。基于预设规则链的特性,(每个判断规则均位于预设规则链中的一个节点),本发明实施例在保证各个判断规则相辅相成的同时,还能够保证各个判断规则职责之间具有较低的耦合度,进而可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
图3为本发明实施例提供的另一种数据集状态的判断方法的流程图。如图3所示,另一种数据集状态的判断方法包括如下步骤:准备bucket数据集、定义bucket状态规则(即上述判断规则,也可以简称为规则)、组合bucket状态规则链(即上述预设规则链)及判定bucket状态,具体分析如下:
步骤一:准备bucket数据集,该步骤主要包括创建bucket和分割原始数据集,其中bucket的创建可以按照指定大小的时间窗口来创建,分割原始数据集是指把从指定的数据源采集过来的数据按条件分类存放到不同bucket中。bucket的链式结构示意图如图4所示,每个bucket可以通过其内置的前后指针(如previous、next)分别指向其前一个bucket和后一个bucket,以此来把创建的各个bucket以链状的形式组合成了一个bucket链。在判断bucket状态的过程中,通过这种bucket链式结构能够方便的获取到当前bucket的前一个bucket或后一个bucket的信息。
步骤二:bucket状态规则定义,该步骤是定义bucket是否为ready状态的判定标准,在本发明实施例中使用了如下方法对bucket状态规则进行定义:
规则1:每隔5秒去扫描一下当前bucket中数据的数量,如果扫描到的当前bucket的数量不为0,就用本次扫描到的当前bucket数量和上次扫描到的数量进行比较,连续比较两次,如果连续两次比较的bucket数量没有发生变化,则认为该bucket中的数据已经准备完成,就设置该bucket的状态为ready状态,此时完成对该bucket的状态判断。如果连续三次扫描到的当前bucket数量都为0,则由规则2进行处理。
规则2:如果上述规则1连续三次扫描到的当前bucket数量都为0,此时需要再去判断当前bucket邻接的下个bucket数量是否为0,如果下个bucket数量不为0或下个bucket为ready状态,表示当前bucket中可能没有交易数据进入,如果连续两次一样,则将当前bucket的状态设置为ready状态,此时对该bucket的状态判断完成。如果当前bucket邻接的下个bucket数量为0,则由规则3处理。
规则3:若规则1获取的当前bucket数量为0,且规则2获取的当前bucket邻接的下个bucket数量为0,则说明交易数据可能存在积压,延迟对当前bucket的状态判断,等积压的数据被采集到之后再次判定该bucket的状态,此时继续规则1和规则2的过程。如果超过设置的最大延迟判断时间(可以默认为3分钟)后还没有变更为ready状态,就强制将该bucket置为ready状态。
步骤三:组合bucket状态规则链,该步骤是将步骤二中定义的多个bucket状态规则组合成状态规则链。组合bucket状态规则链的过程如图5所示:首先初始化一个空的规则链,然后在该规则链中按顺序分别创建上述的规则1、规则2、规则3等。由于在创建具体规则时每一个规则都附带了一个next指针,用于指向其后继的规则,所以在创建bucket状态规则链时,每个规则的next指针都会指向其后继的规则,各个规则形成一个链状的结构,以此来完成规则链的组合。此处把各种状态规则组合成规则链,后期如果需要新增规则时,只需要在规则链的尾部增加一个规则即可,这种链状的结构有利于规则的扩充,灵活性更强。
步骤四:bucket状态的判定,是判断bucket状态的过程,首先根据上一个规则的判断决定是否由下一个规则继续进行处理当前bucket,如果上一个规则完成了对bucket状态的判断,则不再继续后继判断规则的判断。对当前bucket状态进行判断的整体流程如图6所示,当前bucket首先由规则1开始处理,如果符合规则1,则规则1将当前bucket的状态设置为ready状态,此时完成对该bucket状态的判定。如果不满足规则1,则将当前bucket按顺序转发至规则2,由规则2继续来判定bucket的状态。在判定bucket的状态过程中,如果超过当前bucket设置的最大延迟判断时间之后,该bucket还没有变更为ready状态,就强制将该bucket设置为ready状态。另一种对当前bucket状态进行判断的流程如图7所示。
本发明实施例可以将数据集状态的判断方法应用在一款实时数据服务平台上,进行有效验证。针对传入的bucket数据集,如果满足其中一个状态规则,则把该bucket数据集置为ready状态,完成当前bucket的状态判定。如果bucket数据集不满足当前规则,则会被流转到下一个判断规则,以此类推,分别由各个规则进行判断处理,直到该bucket数据集的状态判断完成。
现将数据集状态的具体判断过程,通过以下具体示例做进一步的阐述。
例如,(一)初始化前置条件:(1)将已设置好的上述三个状态规则分别确定为bucketReadyRule1、bucketReadyRule2和bucketReadyRule3。(2)而已创建好的四个bucket分别为bucket1、bucket2、bucket3、bucket4,并以链式形式展示,其链式结构是:bucket1的next指向bucket2、bucket2的next指向bucket3、bucket3的next指向bucket4,并且bucket1的previous为null、bucket2的previous指向bucket1、bucket3的previous指向bucket2、bucket4的previous指向bucket3。其中,这四个bucket的初始状态均为不可用状态,并且从数据源采集到的原始数据集会被分割到这四个bucket中。(3)当次扫描到的bucket2的数量为nowSize,上一次扫描到的bucket数量preScanSize=1000,扫描次数scanTimes=2,用上一次扫描到的数量和这次扫描的数量相比较时比较结果相同的次数sameTimes=2。
(二)输入数据的设定:输入数据为当前待判定状态的bucket,此时设定当前的bucket为bucket2。
(三)在3种不同的场景下分别对bucket2的状态进行判定:
场景1:某个时间窗口内的原始数据已经被采集完毕,且bucket2数量nowSize>0。
设定上次扫描到的bucket2的数量preScanSize=1000,且经过两次比较bucket2的数量相同,也就是说,比较结果相同的次数sameTimes=2,由于该时间窗口内的原始数据已经被采集完毕,则没有原始数据会再次被分割到bucket2中,所以再次获取到的该bucket数量不会发生变化,即nowSize=preScanSize。按该状态规则处理的话,首先会由规则bucketReadyRule1处理,由设定的规则bucketReadyRule1得知,因为连续两次比较的次数相同(nowSize=preScanSize),且比较的bucket2数量相同的次数sameTimes=2,并且bucket2的数量大于0,所以符合规则bucketReadyRule1,则经过规则bucketReadyRule1处理后,该bucket2会被设置为ready状态。
场景2:某个时间窗口内的原始数据已经被采集完毕,且bucket2数量nowSize=0,bucket3数量不为0。
首先由规则bucketReadyRule1处理,由于场景2不符合规则bucketReadyRule1,且bucket2数量nowSize=0,所以会被直接转给规则bucketReadyRule2进行处理。由于此场景中的bucket3数量不为0,所以会等待下次的比较结果。因为该时间窗口内的原始数据都已经被采集完毕,所以下次再比较时,仍然和上次的比较结果一致,即bucket2数量nowSize=0,bucket3不为0。所以该场景符合规则bucketReadyRule2的判断逻辑,最后该场景中的bucket2会被设置为ready状态,此时规则bucketReadyRule2成功处理了bucket2的状态值。
场景3:某个时间窗口内的原始数据已经被采集完毕,且bucket2数量nowSize=0,下个bucket3数量为0。
首先经规则bucketReadyRule1、bucketReadyRule2对bucket2进行处理,由场景1和场景2可知,此场景均不符合规则bucketReadyRule1和bucketReadyRule2。由于此场景中bucket3数量为0,所以该场景会被直接转给规则bucketReadyRule3处理。由于此场景中bucket3数量也为0,所以交易数据可能存在积压,延迟判断bucket2的状态,直到bucket2采集到积压的交易数据,然后再重新由规则bucketReadyRule1和规则bucketReadyRule2进行处理。如果最后超过了设定的延迟判断时间,且该bucket2还没有被设置为ready,则强制将该bucket2设置为ready状态。此时规则bucketReadyRule3成功处理了bucket2的状态值。
以上三种示例场景主要是通过监控bucket中交易数据数量的变化,结合扫描次数来完成修改bucket的状态,上述场景在规则链中做到了不同规则的转接,完成了对当前bucket状态的设置。因此本实施例可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
实施例2:
本发明实施例还提供了一种数据集状态的判断装置,该数据集状态的判断装置主要用于执行本发明实施例上述内容所提供的数据集状态的判断方法,以下对本发明实施例提供的数据集状态的判断装置做具体介绍。
图8是根据本发明实施例的一种数据集状态的判断装置的示意图,如图8所示,该数据集状态的判断装置主要包括获取分割单元11,存储单元12和判断单元13,其中,获取分割单元11,用于获取原始数据集,并将原始数据集分割成多个原始子数据集;
存储单元12,用于将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;
判断单元13,用于基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链中包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。
本发明实施例提供的一种数据集状态的判断装置,包括:先利用获取分割单元11获取原始数据集,并将原始数据集分割成多个原始子数据集;然后利用存储单元12将多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个bucket用于存储一个原始子数据集;最后利用判断单元13基于预设规则链对bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,预设规则链包含至少一个判断规则,且预设规则链中一个节点对应一个判断规则。本发明实施例中的每个判断规则均位于预设规则链中的一个节点,因此在保证各个判断规则相辅相成的同时,还能够保证各个判断规则职责之间具有较低的耦合度,进而可以在预设规则链中的节点位置动态增加或减少判断规则,且不影响其他节点上的判断规则,提高了判断规则设置的灵活性,扩展性更强,且安全性更高。
可选地,每个bucket均内置一个第一next指针,第一next指针用于指向bucket链中的下一个bucket;判断单元包括:
第一判断模块,用于判断当前bucket是否满足预设规则链中任一判断规则;其中,在初始判断时,当前bucket为bucket链中的第一个bucket;
第一确定模块,用于若当前bucket满足预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;
第二判断模块,用于在确定好当前bucket的状态结果之后,对下一个bucket的状态进行判断,重复执行上述步骤,直至得到bucket链中每个bucket的状态结果。
可选地,节点包含第二next指针,第二next指针用于指向下一个节点所对应的判断规则;第一判断模块,用于按照预设规则链中所有节点中第二next指针的指向,依次判断当前bucket是否满足预设规则链中的每一个判断规则,直至满足预设规则链中任一判断规则。
可选地,判断单元还包括第二确定模块,其中,所述第二确定模块,用于若当前bucket不满足预设规则链中所有的判断规则,则将当前bucket的状态结果确定为不可用状态。
可选地,装置还包括统计模块,其中,统计模块用于对当前bucket存储的原始子数据进行统计计算,得到统计计算结果。
可选地,装置还包括获取单元和修改单元,其中:
获取单元,用于获取针对预设规则链的修改操作,其中,修改操作为添加指令或删除指令,添加指令为在预设规则链中添加新的判断规则,删除指令为删除预设规则链中原有的判断规则;
修改单元,用于基于修改操作,对预设规则链进行修改。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在一个可选的实施例中,本实施例还提供一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法实施例方法的步骤。
在一个可选的实施例中,本实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行上述方法实施例方法。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种数据集状态的判断方法,其特征在于,包括:
获取原始数据集,并将所述原始数据集分割成多个原始子数据集;
将所述多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个所述bucket用于存储一个原始子数据集;
基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,所述预设规则链中包含至少一个判断规则,且所述预设规则链中一个节点对应一个判断规则。
2.根据权利要求1所述的方法,其特征在于,每个所述bucket均内置一个第一next指针,所述第一next指针用于指向所述bucket链中的下一个bucket;
基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果包括:
判断当前bucket是否满足所述预设规则链中任一判断规则;其中,在初始判断时,所述当前bucket为所述bucket链中的第一个bucket;
若所述当前bucket满足所述预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;
在确定好所述当前bucket的状态结果之后,对所述下一个bucket的状态进行判断,重复执行上述步骤,直至得到所述bucket链中每个bucket的状态结果。
3.根据权利要求2所述的方法,其特征在于,所述节点包含第二next指针,所述第二next指针用于指向下一个节点所对应的判断规则;
判断当前bucket是否满足所述预设规则链中任一判断规则包括:
按照预设规则链中所有节点中第二next指针的指向,依次判断所述当前bucket是否满足预设规则链中的每一个判断规则,直至满足预设规则链中任一判断规则。
4.根据权利要求2所述的方法,其特征在于,在判断当前bucket是否满足所述预设规则链中任一判断规则之后,方法还包括:
若所述当前bucket不满足所述预设规则链中所有的判断规则,则将当前bucket的状态结果确定为不可用状态。
5.根据权利要求2所述的方法,其特征在于,在将当前bucket的状态结果确定为准备完成状态之后,方法还包括:
对当前bucket存储的原始子数据进行统计计算,得到统计计算结果。
6.根据权利要求1所述的方法,其特征在于,方法还包括:
获取针对预设规则链的修改操作,其中,所述修改操作为添加指令或删除指令,所述添加指令为在预设规则链中添加新的判断规则,所述删除指令为删除预设规则链中原有的判断规则;
基于所述修改操作,对所述预设规则链进行修改。
7.一种数据集状态的判断装置,其特征在于,包括:
获取分割单元,用于获取原始数据集,并将所述原始数据集分割成多个原始子数据集;
存储单元,用于将所述多个原始子数据集分别存储到预设bucket链中不同的bucket中,得到目标bucket链;其中,每个所述bucket用于存储一个原始子数据集;
判断单元,用于基于预设规则链对所述bucket链中每个bucket的状态进行判断,得到每个bucket的状态结果;其中,所述预设规则链中包含至少一个判断规则,且所述预设规则链中一个节点对应一个判断规则。
8.根据权利要求7所述的装置,其特征在于,每个所述bucket均内置一个第一next指针,所述第一next指针用于指向所述bucket链中的下一个bucket;
判断单元包括:
第一判断模块,用于判断当前bucket是否满足所述预设规则链中任一判断规则;其中,在初始判断时,所述当前bucket为所述bucket链中的第一个bucket;
第一确定模块,用于若所述当前bucket满足所述预设规则链中任一判断规则,则将当前bucket的状态结果确定为准备完成状态;
第二判断模块,用于在确定好所述当前bucket的状态结果之后,对所述下一个bucket的状态进行判断,重复执行上述步骤,直至得到所述bucket链中每个bucket的状态结果。
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现如权利要求1至6任一项所述的方法。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577785.4A CN111782885B (zh) | 2020-06-22 | 2020-06-22 | 数据集状态的判断方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577785.4A CN111782885B (zh) | 2020-06-22 | 2020-06-22 | 数据集状态的判断方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782885A true CN111782885A (zh) | 2020-10-16 |
CN111782885B CN111782885B (zh) | 2024-05-24 |
Family
ID=72757665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010577785.4A Active CN111782885B (zh) | 2020-06-22 | 2020-06-22 | 数据集状态的判断方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782885B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268159A (zh) * | 2014-09-03 | 2015-01-07 | 河海大学 | 一种基于动态镜像的实时数据仓库数据预存取方法 |
US9305258B1 (en) * | 2012-05-16 | 2016-04-05 | Amazon Technologies, Inc. | Optimization of categorizing data items in a computing system |
CN107347021A (zh) * | 2017-07-07 | 2017-11-14 | 西安交通大学 | 一种基于sdn网络可靠传输方法 |
CN109451029A (zh) * | 2018-11-16 | 2019-03-08 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储的数据缓存方法、装置、设备及介质 |
CN111124737A (zh) * | 2020-01-02 | 2020-05-08 | 无锡华云数据技术服务有限公司 | 一种云平台作业冲突的判断方法及电子设备 |
-
2020
- 2020-06-22 CN CN202010577785.4A patent/CN111782885B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305258B1 (en) * | 2012-05-16 | 2016-04-05 | Amazon Technologies, Inc. | Optimization of categorizing data items in a computing system |
CN104268159A (zh) * | 2014-09-03 | 2015-01-07 | 河海大学 | 一种基于动态镜像的实时数据仓库数据预存取方法 |
CN107347021A (zh) * | 2017-07-07 | 2017-11-14 | 西安交通大学 | 一种基于sdn网络可靠传输方法 |
CN109451029A (zh) * | 2018-11-16 | 2019-03-08 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储的数据缓存方法、装置、设备及介质 |
CN111124737A (zh) * | 2020-01-02 | 2020-05-08 | 无锡华云数据技术服务有限公司 | 一种云平台作业冲突的判断方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111782885B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
CN113608916B (zh) | 故障诊断的方法、装置、电子设备及存储介质 | |
CN111161071A (zh) | 基于区块链的数据处理方法、装置、设备和存储介质 | |
CN115687674A (zh) | 服务于智慧云服务平台的大数据需求分析方法及系统 | |
CN112835682B (zh) | 一种数据处理方法、装置、计算机设备和可读存储介质 | |
CN116360954B (zh) | 基于云边协同技术的工业物联网管控方法和管控系统 | |
CN111782885A (zh) | 数据集状态的判断方法及装置 | |
CN113609178A (zh) | 数据推送方法、装置、设备以及存储介质 | |
CN106504298B (zh) | 曲线绘制方法及装置 | |
CN113965367B (zh) | 策略对象上限控制方法、系统、计算机及存储介质 | |
CN113595797B (zh) | 告警信息的处理方法、装置、电子设备及存储介质 | |
CN115941758A (zh) | 基于动态规划的云服务控制台部署方法、系统及存储介质 | |
CN109670976B (zh) | 特征因子确定方法及设备 | |
CN114253479A (zh) | 一种can总线入侵检测方法及系统 | |
CN112650627A (zh) | 智能合约的数据恢复方法、装置、终端设备及存储介质 | |
CN113873023B (zh) | 领导节点选举方法、装置、设备和存储介质 | |
CN113872954B (zh) | 一种数据流量检测的方法 | |
CN117201193B (zh) | 病毒检测方法、装置、存储介质及电子设备 | |
CN113055339B (zh) | 一种进程数据的处理方法、装置、存储介质和计算机设备 | |
CN117879975B (zh) | 一种基于5g移动通信网络安全的方法 | |
KR101274348B1 (ko) | 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법 | |
CN117349037B (zh) | 在离线应用干扰消除方法、装置、计算机设备及存储介质 | |
CN110349025B (zh) | 一种基于未花费交易输出的合约资产防遗失方法及装置 | |
CN115115750A (zh) | 一种unity3d动画数据压缩方法及系统 | |
CN116650943A (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 |