CN111443899A - 一种元素处理方法、装置、电子设备及存储介质 - Google Patents
一种元素处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111443899A CN111443899A CN202010306578.5A CN202010306578A CN111443899A CN 111443899 A CN111443899 A CN 111443899A CN 202010306578 A CN202010306578 A CN 202010306578A CN 111443899 A CN111443899 A CN 111443899A
- Authority
- CN
- China
- Prior art keywords
- target object
- bucket
- target
- container
- cardinality
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元素处理方法、装置、设备及存储介质。接收元素,作为目标对象;将目标对象写入目标桶中,目标桶为预设的多个桶中、与目标对象适配的桶,每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值;在目标桶中,计算容器中特征值的基数;根据基数识别目标对象的属性。本发明实施例可在亿级数据规模下实现对目标对象的属性识别,能够提高计算效率,减少内存占用。
Description
技术领域
本发明实施例涉及大数据处理技术,尤其涉及一种元素处理方法、装置、电子设备及存储介质。
背景技术
随着移动互联网的发展,全球数据量正在惊人的增长,随之带来的移动设备和IP(Internet Protocol,网际互连协议)等数据和软硬件基础设施规模也非常庞大,最大可达百亿规模之巨。
面对如此巨大的数据规模,移动互联网的各行各业在业务数据的处理中,常常要求在极短的时间内,从海量数据中快速区分新旧数据信息。在广告推广、新闻推送、商品售卖、视频直播等领域,往往需要快速统计当前的浏览量和点击量,还要对新用户的信息进行留存,例如,在移动互联网广告行业,面对数量如此巨大的移动设备规模,常常要求在极短的时间内,判断出一个移动设备或IP是否观看过某个广告,是否点击过某个广告等等,若该设备或IP点击过某个广告,则不再推送相同的广告。此类需求对硬件性能和软件算法要求较高,给计算机的计算能力带来了较大的挑战,甚至在其他领域,类似的计算需求也常常存在。在传统数学上,以上需求都可以转换为一个共同的数学问题:即判断一个元素是否已经存在于某个集合中;而常见的求解此类问题的方法有b树、bitmap(位图)等。
b树是通过维护一个可以比较元素大小的数据结构,通过对元素的高效查找和插入,来实现对一个元素是否存在于某个集合的准确判断,缺点是随着元素数量的增加,b树占用的内存也迅速增加,内存上限不可控,在数据规模持续爆发、单机内存有限的互联网环境下存在内存占用溢出的风险,对线上系统的稳定运行造成影响,而且无法利用b树对多个集合快速求并集。bitmap是通过将每个元素用散列函数映射到一个bit上,来实现对元素的高速查找,因为任何两个bitmap只要进行按位或操作就能合并,所以可以解决b树无法快速求并集的问题,但缺点是需要预先分配内存,而且内存上限决定了可求的基数上限,而且当基数接近这个上限的时候,由于散列值冲突的原因,判断准确率会急剧下降。
发明内容
本发明提供一种元素处理方法、装置、电子设备及存储介质,以实现在极短的时间内,从海量数据中快速识别目标对象的属性。
第一方面,本发明实施例提供了一种元素处理方法,包括:
接收元素,作为目标对象;
将所述目标对象写入目标桶中,所述目标桶为预设的多个桶中、与所述目标对象适配的桶,每个所述桶具有容器,所述桶用于存储具有同一行为的元素,所述容器用于存储元素的特征值;
在所述目标桶中,计算所述容器中所述特征值的基数;
根据所述基数识别所述目标对象的属性。
第二方面,本发明实施例还提供了一种元素处理装置,该装置包括:
接收模块,用于接收元素,将所述元素作为目标对象;
处理模块,用于将所述目标对象写入目标桶中,所述目标桶为预设的多个桶中、与所述目标对象适配的桶,每个所述桶具有容器,所述桶用于存储具有同一行为的元素,所述容器用于存储元素的特征值;
计算模块,用于在所述目标桶中,计算所述容器中所述特征值的基数;
识别模块,用于根据所述基数识别所述目标对象的属性。
第三方面,本发明实施例还提供了一种计算机设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的元素处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的元素处理方法。
本发明实施例通过接收元素,作为目标对象;将目标对象写入目标桶中,该目标桶为预设的多个桶中、与所述目标对象适配的桶;每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值;在目标桶中,计算容器中特征值的基数;根据基数识别目标对象的属性。一方面,采用分桶的思想将元素进行分类归纳,能够缩减查询目标对象的时间,使用元素的特征值进行存储,可以减少内存占用,另一方面,计算容器中特征值的基数,能够提高大数据处理的效率,基于基数的识别方法能够对目标对象实现精准快速的属性识别。
附图说明
图1是本发明实施例一提供的一种元素处理方法的流程图;
图2是本发明实施例一提供的一种预设多个桶的示意图;
图3是本发明实施例二提供的一种元素处理方法的流程图;
图4是本发明实施例三提供的一种元素处理装置的结构框图;
图5是本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种元素处理方法的流程图,本实施例可适用于移动互联网大数据处理的情况,该方法可以由软件和/或硬件来执行,可配置在计算机设备中,例如,服务器、工作站、移动终端等,该方法具体包括如下步骤:
步骤110、接收元素,作为目标对象。
在本实施例中,元素为数据集合中的一个对象,某些指定的对象聚集在一起就成为一个数据集合,元素的接收作为一个在线动态过程,目标对象用于表示当前时刻正在处理的元素。数据集合可以直接读取已有的大数据库获得,也可以是空集合,直接从数据流中读取数据并存储累加,数据集合会在元素接收和处理过程中不断变化。
在一个示例中,数据集合由十亿数据规模的IP地址组成,每一个IP地址都是一个元素,当前正在处理的一个IP地址即为目标对象。
在另一个示例中,数据集合是由手机IMEI码(International Mobile EquipmentIdentity,国际移动设备识别码)组成,每一个手机IMEI码都是一个元素,当前正在处理的一个手机IMEI码即为目标对象。
其中,获得元素的方式有很多,例如,在网页访问的场景中,用户通过浏览器请求访问网页,这个请求其实是一个HTTP的数据包,当网页后台的服务器收到HTTP的数据包(请求)时,即可从中提取IMEI码,作为元素。本发明对此不做限定。
步骤120、将目标对象写入目标桶中。
在本实施例中,可以预先设置多个桶,桶用于存储具有同一行为的元素,此外,每个桶具有容器,容器用于存储元素的特征值。
在接收到目标对象时,从多个桶中选择与目标对象适配的桶,作为目标桶,即目标桶为预设的多个桶中、与目标对象适配的桶。
需要说明的是,预设的多个桶可以根据实际硬件能力和精度需求自行规定。一般而言,桶的数量越多,元素属性识别的精度就越高,但内存占用也越多,桶的数量越少,内存占用也就越少,但元素属性识别的精度就越低;作为一个具体的示例,在十亿级别数据规模下的元素处理过程中,优选地,可以将桶的数量设定为几百万个不等。
容器表示一种存储结构,用于存储对应的桶中的所有元素的特征值,例如,容器可以表示为数组、链表等任一数据结构,具体地,该容器在C++软件实现中可以表示为Vector(向量),Vector是一个封装了动态大小数组的顺序容器,顺序容器中的元素按照严格的线性顺序排序,可以通过元素在序列中的位置访问对应的元素,跟任意其它类型容器一样,它能够存放各种类型的对象,可以简单的认为,Vector是一个能够存放任意类型的动态数组。本发明实施例对容器的选择不做限定。
在本实施例中,同一行为表示一致、相同的行为,具有同一行为的元素可以是在各种业务领域中具备一致行为的对象,例如,在广告推广领域,同一行为可以是不同的用户ID对某个广告的点击行为;在电商领域,同一行为可以是不同的买家账号对商品的购买行为;在短视频领域,同一行为还可以是不同的IP地址对短视频的播放行为,本发明对同一行为不做限定。
具有同一行为的元素存储在桶中,这些元素的特征值存储在桶中的容器内,如在一个具体的实施方式中,元素为设备ID,同一行为表示为设备ID对同一个广告的点击行为,现将具有十亿级别数据规模的移动设备ID进行分桶,在每个桶存储2000~10000个元素的前提下,桶的预设数量可以为1到10亿之间的一个素数,这样可以使得各个桶划分后的数据规模更加均衡,然后对每个桶2000~10000个元素提取特征值,将特征值都存入容器内。
在本发明的一个具体实施例中,步骤120可以包括如下步骤:
步骤1201、查询预设的多个桶,每个桶具有编号;
预设的桶为散列桶,通过散列函数计算出来的、具有相同地址的元素归于同一子集合,每一个子集合称为一个桶,每个散列桶配备有容器,散列桶是使用一个顺序表来存放具有相同散列值的元素的链表的头结点,利用这个头节点可以找到其他的元素。建立散列桶可以减少计算空间的消耗,能够对元素集合进行一定的规范和约束。
编号用于区分不同的桶,桶的编号可以自行设定,每个桶的编号不同。示例性地,若预设10个桶,则将桶的编号用0-9这十个数字进行标记,把所有元素存入这10个桶中。
步骤1202、计算目标对象的散列值;
散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(Hash Values,Hash Codes,Hash Sums,或Hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,具有这种性质的散列函数称为单向散列函数。但另一方面,散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“散列碰撞(collision)”,这通常是两个不同长度的输入值,刻意计算出相同的输出值。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。
典型的散列函数都有非常大的定义域,比如SHA-2最高接受(2-1)/8长度的字节字符串。同时散列函数一定有着有限的值域,比如固定长度的比特串。在某些情况下,散列函数可以设计成具有相同大小的定义域和值域间的单射。散列函数必须具有不可逆性。
一个好的散列函数(包括大多数加密散列函数)具有均匀的真正随机输出,因而平均只需要一两次探测(依赖于装填因子)就能找到目标。同样重要的是,随机散列函数不太会出现非常高的冲突率。
优选地,在本发明的一个实施方式中,选择MD5(Message-Digest Algorithm5,信息摘要算法)算法作为散列函数,计算目标对象的散列值;该算法是一种密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致;采用该算法可以确保数据集合划分到多个桶时,每个桶的数据规模更加均衡。
当然,除了MD5之外,也可以选择MD4(Message-Digest Algorithm4,信息摘要算法)、SHA-1(Secure Hash Algorithm 1,安全散列算法1)等算法进行散列值的计算,本发明实施例对此不做限定。
步骤1203、对散列值取模,得到目标值;
预设一个正整数N,散列值按N取模,得到余数M,M即为目标值。
步骤1204、确定编号与目标值相同的桶为目标桶;
每个桶均可设置编号,遍历每个桶的编号,若某个桶的编号与目标值数值相同,则可以确定该桶为目标桶。
例如,如图2所示,预设10个桶,所有元素的散列值经过取模操作后将数值范围限定在0到9之间,该数值为步骤1203中所述的目标值,当计算出来的目标值为0,则存储到0号桶,目标值为1,则存储到1号桶,目标值为9,则存储到9号桶。
可选地,步骤1203和步骤1204还可以通过如下方法实现:把元素的某个编码作为桶编号,通过构建词典索引,将元素和桶编号对应起来。目标值的获取和设置桶编号的方式有很多,本发明实施例对此不做限定。
步骤1205、将目标对象存储至目标桶中。
步骤130、在目标桶中,计算容器中特征值的基数。
基数用于表示一个集合中不同元素的数量,例如:集合{1,2,3,4,5,2,3,9,7}有9个元素,不重复的元素有7个,所以该集合的基数为7。
基数估计表示计算一个集合的基数,同时将其误差控制在一定的范围内。
需要说明的是,本实施例采用基数估计算法进行基数估计,其优点在于内存占用有上限,比起往上无限增长的b树更加可控,不会导致内存占用的溢出的风险,从而提升线上系统的运行稳定性。
本发明实施例采用基数估计算法也可以很方便地求并集操作,和bitmap相比,在同样的内存占用情况下,判断准确率更高,在同样的判断准确率下,内存占用更少,更适用于对性能和效率有较高要求的互联网环境。
可选地,选择Linear Counting、Loglog Counting、Adaptive Counting、Superloglog counting算法中任一一种作为基数估计算法。
优选地,在本发明的一个具体实施例中,采用Hyperloglog Counting算法(简称HLLC)作为基数估计算法,该算法可以在较小内存条件下(5KB),在万级规模的数据中,获得小于1%的计算误差。HLLC算法的基本思想是在Loglog Counting的基础上进行改进,第一个改进之处是使用调和平均数替代几何平均数,调和平均数可以有效抵抗离群值的扰,第二个改进之处是加入了分段偏差修正,与Loglog Counting算法相比,在同样空间复杂度情况下,HLLC的基数估计误差更小。
在本发明的一个具体实施例中,步骤130可以包括:计算目标对象的特征值,例如,取目标对象中指定比特位的数据,作为特征值;将特征值写入目标桶中的容器;若写入成功,则计算容器中特征值的基数。
步骤140、根据基数识别目标对象的属性。
通过对比加入目标对象前后、基数的变化情况,可以识别出目标对象的属性,该属性用于表示目标对象可以为新的元素或者是旧的元素。在本发明的一个实施例中,步骤140包括:
步骤1401、查询上次接收到元素时、容器的基数;
步骤1402、将当前的基数与上次的基数进行比较;
步骤1403、若当前的基数大于上次的基数,则确定目标对象的属性为新元素;
步骤1404、若当前的基数等于上次的基数,则确定目标对象的属性为旧元素。
如给出一个具体的示例,元素为设备ID,为了计算新设备率,当处理数据流的任何一个设备ID时,为了判断这个设备ID是否是一个全新的设备ID,计算设备ID集合中的基数,判断基数是否发生变化,如果不发生变化,则认为该设备ID是一个旧设备ID,如果发生变化,则认为该设备ID是一个新设备ID,此时,计算新设备率。
当然,上述处理方法只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他元素处理方法,本发明实施例对此不加以限制。另外,除了上述元素处理方法外,本领域技术人员还可以根据实际需要采用其它元素处理方法,本发明实施例对此也不加以限制。
在本实施例中,接收元素,作为目标对象;将目标对象写入目标桶中,该目标桶为预设的多个桶中、与目标对象适配的桶;每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值;在目标桶中,计算容器中特征值的基数;根据基数识别目标对象的属性。一方面,采用分桶的思想将元素进行分类归纳,能够缩减查询目标对象的时间,使用元素的特征值进行存储,可以减少内存占用,另一方面,计算容器中特征值的基数,能够提高大数据处理的效率,基于基数的识别方法能够对目标对象实现精准快速的属性识别。
实施例二
图3为本发明实施例二提供的一种元素处理方法的流程图,本实施例在前述实施例的基础上进行了补充和细化,该方法具体包括如下步骤:
步骤310、接收元素,作为目标对象。
步骤320、若目标对象符合预设的类型数据,则对目标桶中的容器进行备份,获得容器备份数据。
其中,目标桶为预设的多个桶中、与目标对象适配的桶,每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值。
预设的类型数据表示一种数据类型,需要根据实际业务中所采用的数据类别进行设定,不同的领域、不同的业务类型,其使用的数据类型不同。例如,在移动广告领域,预设的类型数据可以是手机设备ID、IP地址、手机IMEI号,网卡地址等。
对目标桶中的容器进行备份是为了将该容器用于步骤360,备份是对容器内的数据进行复制和保留,复制保留后的容器内的数据即为容器备份数据。
步骤330、若目标对象不符合预设的类型数据,则忽略对目标桶中的容器进行备份。
步骤340、将目标对象写入目标桶中。
其中,该步骤具体包括:确定预设的桶的数量和桶编号,计算目标对象的散列值,对散列值进行取模获得目标值,将目标值与桶编号进行对应,确定目标对象的目标桶,将目标对象写入目标桶中。
步骤350、在目标桶中,计算容器中特征值的基数。
步骤360、根据基数识别目标对象的属性。
步骤370、若目标对象符合预设的第一条件,则将容器备份数据恢复至容器中,将目标对象从目标桶中删除。
预设的第一条件是用于对第一类型数据和目标对象的属性进行限定的条件,第一类型数据是一种数据类型,其具体可以是机房IP、移动终端IP,等等。作为示例,目标对象的属性具体可以是新或旧、移动或固定,等等。
从步骤320接收容器备份数据,将该数据对当前容器中的数据进行覆盖,再将目标对象从目标桶中删除。
为使本领域技术人员更好地理解本发明实施例,步骤310至步骤370,可以通过如下方式实现:
如在一个具体的实施方式中,以移动广告业务为例,元素为IP地址,为了统计移动广告的用户点击量,需要对IP地址进行类型判断,如果IP地址是机房IP,则说明该广告的点击量存在作假行为。由于机房IP规模较大(千万级别的规模),同时判断IP是否是机房IP允许一定的计算误差(1%精度以内),因此采用Hyperloglog Counting基数估计算法进行基数计算,具体的实施步骤如下:
步骤1:使用MD5算法作为散列函数,预先对机房IP集合(约1200万个IP)内的每个IP,按照MD5值,划分成1201个桶,每个桶保存机房IP集合内的一部分IP;
步骤2:当处理数据流的任何一个IP时,为了判断这个IP是否是一个机房IP时,先根据该IP的MD5值,定位到目标桶;
步骤3:假如该IP不是机房IP,判断完后不需要将该IP加入机房IP集合,所以需要先备份目标桶内的容器;
步骤4:将该IP添加到目标桶的容器内;
步骤5:观察基数是否发生变化,如果发生变化,则认为该IP不是机房IP,如果发生变化,则认为该IP是一个机房IP;
步骤6:由于不需要将该IP添加到机房IP集合中,则用之前的容器备份数据覆盖当前目标桶的容器内的数据。
当然,上述处理方法只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他元素处理方法,本发明实施例对此不加以限制。另外,除了上述元素处理方法外,本领域技术人员还可以根据实际需要采用其它元素处理方法,本发明实施例对此也不加以限制。
步骤380、若目标对象符合预设的第二条件,则维持目标对象存储在目标桶中,维持容器记录目标对象的特征值。
预设的第二条件是用于对第二类型数据和目标对象的属性进行限定的条件,第二类型数据是区别于第一数据类型的另一种数据类型,其具体可以是移动设备ID,等等。作为示例,目标对象的属性具体可以是新或旧、移动或固定,等等。
为使本领域技术人员更好地理解本发明实施例二,以下通过具体的示例来说明本发明实施例中的元素处理方法。
在移动广告领域中,以新设备率的计算为例;新设备率是衡量一个广告位是否存在人为作弊故意骗取广告费的重要指标,如果点击的新设备率过高,说明大量点击为人为刻意点击,而不是用户自然点击,如果安装的新设备率过高,说明大量安装为人为刻意安装,而不是用户自然安装;其中,计算新设备率的业务中所处理的元素为设备ID,同时,该业务数据处理采用基数估计算法Hyperloglog算法,该算法可以在较小内存条件下(5KB),在万级规模的数据中,获得小于1%的计算误差。需要说明的是,在新设备率计算的过程中,选择Hyperloglog算法和bitmap算法进行实验测试,两者的对比测试结果如下表所示:
在计算新设备率的实施方式中,比起采用b树算法,选择Hyperloglog算法能够控制内存上限,保证线上系统的稳定性,更加适用于对数据规模难以预测的互联网环境。
而对于采用bitmap算法,假设处理万级规模的数据,在不考虑散列冲突的情况下,采用bitmap算法占用内存约为10KB,而在处理同样的数据规模下,Hyperloglog算法占用的内存仅为bitmap算法的约一半,在大数据环境下,选择Hyperloglog算法对元素进行处理,能够大量节省机器硬件资源,节约成本,带来大量收益。
下面具体说明,采用Hyperloglog算法作为新设备率计算的基数估计算法,对设备ID进行处理的具体实施步骤如下:
步骤1:使用MD5算法作为散列函数,预先对设备ID集合(约36亿设备)内每个设备ID,按照MD5值,划分成4500007个桶,每个桶保存设备ID集合内的一部分ID;
步骤2:当处理数据流的任何一个设备ID时,为了判断这个设备ID是否是一个全新的设备ID,先根据该设备ID的MD5值,定位到目标桶;
步骤3:由于无论该设备ID是新是旧,判断完后都需要将该设备ID加入设备ID全集,所以不备份目标桶的容器;
步骤4:将该设备ID添加到目标桶的容器内;
步骤5:观察基数是否发生变化,如果发生变化,则认为该设备ID是一个新设备ID;
步骤6:根据实时数据流中,被判断为新设备ID的比例,计算新设备率。
当然,上述元素处理方法只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他元素处理方法,本发明实施例对此不加以限制。另外,除了上述元素处理方法外,本领域技术人员还可以根据实际需要采用其它元素处理方法,本发明实施例对此也不加以限制。
本发明实施例通过接收元素,作为目标对象;若目标对象符合预设的类型数据,对目标桶中的容器进行备份,获得容器备份数据;将目标对象写入目标桶中,该目标桶为预设的多个桶中、与目标对象适配的桶;每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值;在目标桶中,计算容器中特征值的基数;根据基数识别目标对象的属性;若目标对象符合预设的第一条件,则将容器备份数据恢复至容器中,将目标对象从目标桶中删除;若目标对象符合预设的第二条件,则维持目标对象存储在目标桶中,维持容器记录目标对象的特征值。其中,对目标桶进行备份,可以简化数据集合,删除不需要被保留的数据,同时保留需要留存的数据;添加预设的条件对目标对象进行判断,可以减少一些不必要的操作,能够提高大数据处理的效率,在经过上述判断条件筛选后的数据集合中,计算其基数,可以减轻计算量并缩减计算时间;最后,基于基数的变化对目标对象进行属性的识别能够满足大数据处理中精准快速的需求。
实施例三
图4为本发明实施例三提供的一种元素处理装置的结构框图。该装置适用于移动互联网大数据处理的情况,该装置可由软件和\或硬件来实现。该装置包括:接收模块401、处理模块402、计算模块403和识别模块404,其中,
接收模块401,用于接收元素,将元素作为目标对象。
处理模块402,用于将目标对象写入目标桶中,该目标桶为预设的多个桶中、与目标对象适配的桶,每个桶具有容器,桶用于存储具有同一行为的元素,容器用于存储元素的特征值。
计算模块403,用于在目标桶中,计算容器中特征值的基数。
识别模块404,用于根据基数识别目标对象的属性。
在本发明的一个实施例中,处理模块402包括:
桶查询子模块,用于查询预设的多个桶,每个桶具有编号;
散列值计算子模块,用于计算目标对象的散列值;
目标值计算子模块,用于对散列值取模,得到目标值;
目标桶确定子模块,用于确定编号与目标值相同的桶为目标桶;
目标对象存储子模块,用于将目标对象存储至目标桶中。
可选的是,计算模块403,包括:
特征值计算子模块,用于计算目标对象的特征值。其中,可选的是,特征值计算子模块,包括:特征值计算单元,用于取目标对象中指定比特位的数据,作为特征值。
特征值存储子模块,用于将特征值写入目标桶中的容器。
基数计算子模块,用于接收存储子模块的写入指令,计算容器中特征值的基数。
可选的是,识别模块404,包括:
基数查询子模块,用于查询上次接收到元素时、容器的基数;
基数比较子模块,用于将当前的基数与上次的基数进行比较;
第一属性确定子模块,用于接收基数比较子模块的输出指令,确定目标对象的属性为新元素;
第二属性确定子模块,用于接收基数比较子模块的输出指令,确定目标对象的属性为旧元素。
上述方案中,可选地,处理模块402,还包括如下子模块:
类型数据判断子模块,用于判断目标对象是否符合预设的类型数据。
备份子模块,用于接收上述类型数据判断子模块的输出指令,对目标桶中的容器进行备份,获得容器备份数据。
上述方案中,可选地,识别模块404,还包括如下子模块:
第一预设条件判断子模块,用于判断目标对象是否符合预设的第一条件;
目标对象删除子模块,用于将容器备份数据恢复至容器中,将目标对象从目标桶中删除。
第二预设条件判断子模块,用于判断目标对象是否符合预设的第二条件;
目标对象确定子模块,用于维持所述目标对象存储在目标桶中,维持容器记录目标对象的特征值。
本发明实施例所提供的元素处理装置可执行本发明任一实施例所提供的元素处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种计算机设备的结构示意图。如图5所示,该计算机设备包括处理器501、存储器502、输入装置503和输出装置504;计算机设备中处理器501的数量可以是一个或多个,图5中以一个处理器501为例;计算机设备中的处理器501、存储器502、输入装置503和输出装置504可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器502作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的元素处理方法对应的程序指令/模块(例如,元素处理装置中的接收模块401、处理模块402、计算模块403和识别模块404)。处理器501通过运行存储在存储器502中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的用于计算机设备的操作。
存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器502可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置503可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置504可包括显示屏等显示设备。
本实施例提供的计算机设备,可执行本发明任一实施例提供的元素处理方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的目标边界框的调整方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例的方法。
值得注意的是,上述目标边界框的调整装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
上述装置可执行本发明任意实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种元素处理方法,其特征在于,包括:
接收元素,作为目标对象;
将所述目标对象写入目标桶中,所述目标桶为预设的多个桶中、与所述目标对象适配的桶,每个所述桶具有容器,所述桶用于存储具有同一行为的元素,所述容器用于存储元素的特征值;
在所述目标桶中,计算所述容器中所述特征值的基数;
根据所述基数识别所述目标对象的属性。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标对象写入目标桶中,包括:
查询预设的多个桶,每个所述桶具有编号;
计算所述目标对象的散列值;
对所述散列值取模,得到目标值;
确定所述编号与所述目标值相同的桶为目标桶;
将所述目标对象存储至所述目标桶中。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标桶中,计算所述容器中所述特征值的基数,包括:
计算所述目标对象的特征值;
将所述特征值写入所述目标桶中的所述容器;
若写入成功,则计算所述容器中特征值的基数。
4.根据权利要求3所述的方法,其特征在于,所述计算所述目标对象的特征值,包括:
取所述目标对象中指定比特位的数据,作为特征值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述基数识别所述目标对象的属性,包括:
查询上次接收到元素时、所述容器的基数;
将当前的基数与上次的基数进行比较;
若当前的基数大于上次的基数,则确定所述目标对象的属性为新元素;
若当前的基数等于上次的基数,则确定所述目标对象的属性为旧元素。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述将所述目标对象写入目标桶中之前,所述方法还包括:
若所述目标对象符合预设的类型数据,则对所述目标桶中的所述容器进行备份,获得容器备份数据;
在所述根据所述基数识别所述目标对象的属性之后,所述方法还包括:
若所述目标对象符合预设的第一条件,则将所述容器备份数据恢复至所述容器中,将所述目标对象从所述目标桶中删除。
7.根据权利要求1-5任一项所述的方法,其特征在于,在所述根据所述基数识别所述目标对象的属性之后,所述方法还包括:
若所述目标对象符合预设的第二条件,则维持所述目标对象存储在所述目标桶中,维持所述容器记录所述目标对象的特征值。
8.一种元素处理装置,其特征在于,包括:
接收模块,用于接收元素,将所述元素作为目标对象;
处理模块,用于将所述目标对象写入目标桶中,所述目标桶为预设的多个桶中、与所述目标对象适配的桶,每个所述桶具有容器,所述桶用于存储具有同一行为的元素,所述容器用于存储元素的特征值;
计算模块,用于在所述目标桶中,计算所述容器中所述特征值的基数;
识别模块,用于根据所述基数识别所述目标对象的属性。
9.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306578.5A CN111443899B (zh) | 2020-04-17 | 2020-04-17 | 一种元素处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306578.5A CN111443899B (zh) | 2020-04-17 | 2020-04-17 | 一种元素处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111443899A true CN111443899A (zh) | 2020-07-24 |
CN111443899B CN111443899B (zh) | 2023-03-03 |
Family
ID=71653356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010306578.5A Active CN111443899B (zh) | 2020-04-17 | 2020-04-17 | 一种元素处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111443899B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
CN112835907A (zh) * | 2021-02-08 | 2021-05-25 | 兴业数字金融服务(上海)股份有限公司 | 多次散列存储方法及系统 |
CN112925993A (zh) * | 2021-04-08 | 2021-06-08 | 国网电子商务有限公司 | 一种协同过滤推荐方法、装置、存储介质和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201351A (zh) * | 2016-07-07 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种基于对象存储的存储方法和服务器 |
CN108243175A (zh) * | 2016-12-27 | 2018-07-03 | 北京金山云网络技术有限公司 | 一种基于桶策略的访问控制方法及装置 |
US20190026491A1 (en) * | 2017-07-24 | 2019-01-24 | Mediasift Limited | Event processing system |
US20190332303A1 (en) * | 2018-04-27 | 2019-10-31 | Hewlett Packard Enterprise Development Lp | Expandable index with pages to store object records |
-
2020
- 2020-04-17 CN CN202010306578.5A patent/CN111443899B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201351A (zh) * | 2016-07-07 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种基于对象存储的存储方法和服务器 |
CN108243175A (zh) * | 2016-12-27 | 2018-07-03 | 北京金山云网络技术有限公司 | 一种基于桶策略的访问控制方法及装置 |
US20190026491A1 (en) * | 2017-07-24 | 2019-01-24 | Mediasift Limited | Event processing system |
US20190332303A1 (en) * | 2018-04-27 | 2019-10-31 | Hewlett Packard Enterprise Development Lp | Expandable index with pages to store object records |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
CN112015775B (zh) * | 2020-09-27 | 2023-11-21 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
CN112835907A (zh) * | 2021-02-08 | 2021-05-25 | 兴业数字金融服务(上海)股份有限公司 | 多次散列存储方法及系统 |
CN112925993A (zh) * | 2021-04-08 | 2021-06-08 | 国网电子商务有限公司 | 一种协同过滤推荐方法、装置、存储介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111443899B (zh) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111443899B (zh) | 一种元素处理方法、装置、电子设备及存储介质 | |
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
CN110225104B (zh) | 数据获取方法、装置及终端设备 | |
CN111198976B (zh) | 云上资产关联分析系统、方法、电子设备及介质 | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN112330398B (zh) | 一种对象处理方法、装置、电子设备及存储介质 | |
US10169461B2 (en) | Analysis of data utilization | |
CN112073444B (zh) | 数据集的处理方法、装置和服务器 | |
CN115795000A (zh) | 基于联合相似度算法对比的围标识别方法和装置 | |
CN111563199A (zh) | 一种数据处理方法及装置 | |
CN114528231A (zh) | 一种数据动态存储方法、装置、电子设备及存储介质 | |
CN112437148A (zh) | 业务请求的处理方法、装置、业务服务器及系统 | |
CN114491184B (zh) | 一种数据处理方法及装置、存储介质及电子设备 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN113411364B (zh) | 资源获取方法、装置及服务器 | |
CN113986921A (zh) | 一种黑名单查询方法、系统、电子设备及存储介质 | |
CN113157671A (zh) | 一种数据监控方法及装置 | |
CN112947844A (zh) | 一种数据存储方法、装置、电子设备及介质 | |
CN116600031B (zh) | 报文处理方法、装置、设备及存储介质 | |
CN110209679B (zh) | 一种用于提升访问效率的数据存储方法、终端设备 | |
CN110209666B (zh) | 一种数据存储方法及终端设备 | |
CN113342859A (zh) | 一种信息处理方法、装置及电子设备 | |
CN113535570A (zh) | 一种测试用例的处理方法、装置及电子设备 | |
CN117118727A (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 |