CN114048201A - 一种基于分布式流计算引擎Flink的关键字段实时去重方法 - Google Patents
一种基于分布式流计算引擎Flink的关键字段实时去重方法 Download PDFInfo
- Publication number
- CN114048201A CN114048201A CN202111352389.2A CN202111352389A CN114048201A CN 114048201 A CN114048201 A CN 114048201A CN 202111352389 A CN202111352389 A CN 202111352389A CN 114048201 A CN114048201 A CN 114048201A
- Authority
- CN
- China
- Prior art keywords
- data
- deduplication
- deduplicated
- bloom filter
- encrypted data
- 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
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本发明实施例公开了一种基于分布式流计算引擎Flink的关键字段实时去重方法。该方法包括:接收目标数据,并基于配置文件确定目标数据中的至少一个待去重关键字段;其中,目标数据为结构化数据;配置文件中包括与目标数据匹配的待去重关键字段;基于加密算法对各待去重关键字段进行加密确定加密数据;基于Flink设置计时器,以计时器中的起始时间为起始时间点,在计时器中的去重持续时间内,采用布隆过滤器对加密数据进行去重。通过执行本方案,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
Description
技术领域
本发明实施例涉及大数据处理技术领域,尤其涉及一种基于分布式流计算引擎Flink的关键字段实时去重方法。
背景技术
消除重复数据是实际业务中经常遇到的一类问题。在大数据领域,重复数据的删除有助于减少存储空间,并提高服务器的处理效率。在实时计算中,关键字段去重是一个增量和长期的过程。
相关技术中的实时字段去重方案如下:使用Redis将实时数据流中的每条数据都去Redis中进行判断或者使用无序不重复的HashSet。但是,如果使用Redis,每次都需要通过网络连接Redis服务,网络速度明显比缓存速度慢以及网络有可能存在不稳定性;如果使用HashSet,虽然不用考虑网络因素,但是将千万、亿级别的数据存入到HashSet时,数据越来越多,处理效率也就会大打折扣,同时也会占用大量的内存空间。
发明内容
本发明实施例提供一种基于分布式流计算引擎Flink的关键字段实时去重方法,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
第一方面,本发明实施例提供了一种基于分布式流计算引擎Flink的关键字段实时去重方法,该方法包括:
接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
基于加密算法对各所述待去重关键字段进行加密确定加密数据;
基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
第二方面,本发明实施例还提供了一种基于分布式流计算引擎Flink的关键字段实时去重装置,该装置包括:
关键字段确定模块,用于接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
加密数据确定模块,用于基于加密算法对各所述待去重关键字段进行加密确定加密数据;
去重模块,用于基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
第三方面,本发明实施例还提供了一种电子设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一项所述的基于分布式流计算引擎Flink的关键字段实时去重方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一项所述的基于分布式流计算引擎Flink的关键字段实时去重方法。
本发明实施例提供的技术方案,接收目标数据,并基于配置文件确定目标数据中的至少一个待去重关键字段;其中,目标数据为结构化数据;配置文件中包括与目标数据匹配的待去重关键字段;基于加密算法对各待去重关键字段进行加密确定加密数据;基于Flink设置计时器,以计时器中的起始时间为起始时间点,在计时器中的去重持续时间内,采用布隆过滤器对加密数据进行去重。通过执行本发明实施例提供的技术方案,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
附图说明
图1是本发明实施例提供的一种基于分布式流计算引擎Flink的关键字段实时去重方法的流程图;
图2是本发明实施例提供的另一种基于分布式流计算引擎Flink的关键字段实时去重方法的流程图;
图3是本发明实施例提供的一种基于分布式流计算引擎Flink的关键字段实时去重装置结构示意图;
图4是本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1是本发明实施例提供的基于分布式流计算引擎Flink的关键字段实时去重方法的流程图,所述方法可以由基于分布式流计算引擎Flink的关键字段实时去重装置来执行,所述装置可以由软件和/或硬件的方式实现,所述装置可以配置在用于基于分布式流计算引擎Flink的关键字段实时去重的电子设备中。所述方法应用于对海量结构化数据的关键字段进行实时去重的场景中。如图1所示,本发明实施例提供的技术方案具体包括:
S110:接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段。
其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段。
具体的,目标数据可以是海量数据中一条待去重的结构化数据。目标数据中包括多个关键字段,并且目标数据有自己的业务特征,即目标数据属于某一种业务数据类型。配置文件中预先配置了需要进行关键字段去重的各种业务数据的待去重关键字段。其中,业务数据不同,需要去重的关键字段也不相同。例如,业务数据为用户上网信息的待去重关键字段与业务数据为火车票信息的待去重关键字段不相同。本方案可以根据实际去重需要基于配置文件确定目标数据中的至少一个待去重关键字段。本方案可以通过Kafka消息系统接入目标数据,并通过Flink消费Kafka消息系统中的目标数据。其中,Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。ApacheFlink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
其中,结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
S120:基于加密算法对各所述待去重关键字段进行加密确定加密数据。
其中,加密算法可以是MD5加密算法。本方案可以将基于配置文件确定的待去重关键字段根据关键字段配置策略将各待去重关键字段使用逻辑与或者逻辑或进行拼接,得到待去重关键字段字符串,基于MD5加密算法对待去重关键字段字符串进行加密确定待去重关键字段字符串的MD5值,即加密数据。其中,MD5值可以是32位的十六进制数据。
S130:基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
其中,由于本方案是对海量结构化数据的实时去重,因此,目标数据源源不断地接入到Kafka消息系统中。本方案在确定加密数据后,通过Flink的KeyBy算子根据确定的加密数据,即关键字段字符串的MD5值进行分组,相同MD5值的数据被分到一个组内,Flink的一个插槽会处理一个或多个组的数据,即同一个组内的数据肯定在Flink的一个插槽中。可以实现MD5值相同的数据在一台服务器上。
在完成加密数据的分组后,本方案可以基于计时器和布隆过滤器实现关键字段在内存中的实时去重。具体的,本方案可以调用Flink的相关方法设置计时器。其中,计时器可以包括计时起始时间,例如当前时间。计时器也可以包括去重持续时间。去重持续时间表示对由Kafka消息系统接入的结构化数据执行去重操作的持续时间。去重持续时间可以根据实际需要进行确定,去重持续时间例如可以是5min,去重持续时间例如也可以是10min。
对查准度要求没有那么苛刻,而对时间、空间要求比较高的数据处理场景,可以使用布隆过滤器进行全局去重。布隆过滤器包括哈希算法与bitmap,对于字符串结构的数据通过多次哈希算法,基于bitmap作为存储,由于只用0或1存储,所以与存储MD5值的Hashset相比较,可以大量节省存储空间,也就特别适合在上百亿数据里面去做去重。
本方案在使用布隆过滤器之前,可以先对布隆过滤器的相关参数进行设置,例如,相关参数可以是布隆过滤器的容忍误判率,相关参数也可以是布隆过滤器在去重持续时间内可以处理的最大数据处理量。在设置完相关参数后,本方案采用布隆过滤器对加密数据进行去重,每当一条加密数据进入时,判断该加密数据是否出现过,如果确定布隆过滤器中已经存在该加密数据,则将加密数据在数据处理实时流中将加密数据进行去重丢弃。如果确定布隆过滤器中不存在加密数据,则将该加密数据插入到布隆过滤器中,并且基于该加密数据向存储目标数据的数据库中插入一条目标数据。当时间到达计时器中的去重持续时间时,本方案可以将布隆过滤器进行重置,执行下一轮的实时关键字段去重。
本发明实施例提供的技术方案,接收目标数据,并基于配置文件确定目标数据中的至少一个待去重关键字段;其中,目标数据为结构化数据;配置文件中包括与目标数据匹配的待去重关键字段;基于加密算法对各待去重关键字段进行加密确定加密数据;基于Flink设置计时器,以计时器中的起始时间为起始时间点,在计时器中的去重持续时间内,采用布隆过滤器对加密数据进行去重。通过执行本发明实施例提供的技术方案,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
图2是本发明实施例提供的基于分布式流计算引擎Flink的关键字段实时去重方法的流程图,本实施例在上述实施例的基础上进行优化。如图2所示,本发明实施例中的基于分布式流计算引擎Flink的关键字段实时去重方法可以包括:
S210:接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段。
S220:采用所述目标数据中包含的逻辑关系将各所述待去重关键字段进行拼接,得到待去重关键字段字符串。
示例性的,不同特征的业务数据,需要去重的关键字段不同,以及数据来源不同。同一特征的业务数据,属性字段不同,如有些来源数据的用户名有值,有些来源数据的用户登录账户有值,有些来源数据的用户名和登录账户都有值,对于这些数据配置关键字段时支持或的关系。关键字段配置策略如下:条件为and的所有待去重关键字段拼接为字段名称+字段值。条件为or的所有待去重关键字段拼接为第一个不为空的字段名称+字段值,若or中的待去重关键字段都无值,则拼接最后的待去重关键字段名称+空值,最后得到对待去重关键字段拼接的字符串。例如,根据目标数据确定的待去重关键字段包括三部分:第一部分:银行卡号、支付卡号、接收方卡号、设备号、客户端MAC地址;第二部分:支付账号、付款ID;第三部分:用户登录账号以及用户ID。其中,第一部分的各关键字段之间用条件and进行连接,第二部分的各待去重关键字段之间用条件or进行连接,第三部分的各待去重关键字段之间也用条件or进行连接,第一部分、第二部分与第三部分之间用条件and进行拼接得到待去重关键字段字符串。其中,各待去重关键字段为字段名称和字段值的拼接。需要说明的是,上述例子仅为一个示例,在实际应用中可以根据实际需要使用逻辑与或逻辑或的关系配置待去重关键字段的拼接策略,例如为一条数据中的所有关键字段配置关键字段拼接策略,或者也可以为一条数据中的部分关键字段配置关键字段拼接策略。
S230:基于所述加密算法对所述待去重关键字段字符串进行加密,确定加密数据。
本方案可以采用加密算法对根据关键字段配置策略将待去重关键字段进行拼接得到的待去重关键字段字符串进行加密,得到加密数据。
在本实施例中,可选的,所述加密算法包括MD5加密算法。
其中,MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果加密特定的数据,得到的密文一定是相同的。MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个32位十六进制的消息摘要。
由此,通过使用MD5加密算法对待去重关键字段字符串进行加密,确定加密数据,可以实现缩减待去重关键字段字符串的长度,避免去重关键字段比较多时产生过长字符串的问题,可以提高去重效率。
S240:基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
在本实施例中,可选的,布隆过滤器的设置过程,包括:对布隆过滤器的容忍误判率进行设置;根据所述去重持续时间,确定布隆过滤器的最大数据处理量。
其中,容忍误判率可以是允许布隆过滤器去重出错的概率,容忍误判率设置的越高,处理器所需处理时间越少;反之,容忍误判率设置的越低,处理器所需处理时间越多。最大数据处理量影响内存占用率,最大数据处理量可以根据去重持续时间以及布隆过滤器每天的数据处理量进行确定。示例性的,如果去重持续时间设置为5分钟,布隆过滤器每天处理的数据量为20亿,则配置布隆过滤器最大数据处理量=(20亿÷(24×60))×5=6944445。并且设置容忍误判率为0.0001,则基于容忍误判率可以确定需要执行的哈希函数次数,每进行一个哈希运算,则对应的生成0或者1存入布隆过滤器中。进而根据开源的布隆过滤器源码,可以计算出布隆过滤器的内存占用率。
由此,通过对布隆过滤器的容忍误判率进行设置;根据去重持续时间,确定布隆过滤器的最大数据处理量。可以实现根据实际需要对布隆过滤器进行配置,可以实现基于布隆过滤器实现关键字段的实时去重,可以实现节约内存空间,提高数据处理效率。
在本实施例中,可选的,采用布隆过滤器对所述加密数据进行去重,包括:若基于所述布隆过滤器确定所述加密数据已经存在,则将所述加密数据进行丢弃。
具体的,本方案可以调用布隆过滤器的mightContain()方法确定布隆过滤器中是否已经存在加密数据,如果该加密数据已经存在,则表明加密数据重复,就将该加密数据在实时处理流中进行去重丢弃,也无需向数据库中增加该加密数据。
由此,通过若基于布隆过滤器确定加密数据已经存在,则将加密数据进行丢弃。可以实现通过布隆过滤器对待去重关键字段进行实时去重,避免数据库中重复记录的添加,可以降低内存占用率,提高去重效率。
在一个可行的实施方式中,可选的,采用布隆过滤器对所述加密数据进行去重,包括:若基于所述布隆过滤器确定所述加密数据不存在,则将所述加密数据增加至所述布隆过滤器,并根据所述加密数据向所述目标数据库中增加所述目标数据。
具体的,调用布隆过滤器的mightContain()方法确定布隆过滤器中是否已经存在加密数据,如果该加密数据若没有出现过,则调用put()方法将其插入布隆过滤器。并且根据该加密数据以及与该加密数据对应的目标数据将目标数据更新到目标数据库中即可。其中,目标数据库可以是存储海量数据的数据库。数据实时流处理过程中会将根据待去重关键字段生成的加密数据的MD5值赋值到指定字段,如果因为任务重启等操作,导致布隆过滤器未到达重置时间就进行重置,这样会导致实时处理流上的去重不彻底,此时入库环节可以根据MD5值判断是将数据进行新增还是更新,可以保证实现双重去重。
由此,通过若基于布隆过滤器确定加密数据不存在,则将加密数据增加至布隆过滤器,并根据加密数据向目标数据库中增加目标数据。可以实现通过布隆过滤器对关键字段进行实时去重,可以降低内存占用率,可以提高去重效率。
在另一个可行的实施方式中,可选的,在采用布隆过滤器对所述加密数据进行去重之后,还包括:若检测到所述计时器的计数值与所述去重持续时间满足预设约束条件,则将所述布隆过滤器中进行重置;控制计时器根据去重持续时间再次计时,并控制布隆过滤器执行去重操作。
具体的,预设约束条件可以是计数值与去重持续时间一致,预设约束条件也可以是计数值与计时起始时间之间的差值等于去重持续时间,预设约束条件可以根据实际需要进行设置。如果本方案检测到计时器的计数值与去重持续时间满足预设约束条件,则将布隆过滤器中的所有加密数据进行清空,控制Flink的计时器重新下一轮的计时,同时控制布隆过滤器根据去重持续时间继续新一轮的去重操作。
由此,通过若检测到计时器的计数值与去重持续时间满足预设约束条件,则将布隆过滤器进行重置;控制计时器根据去重持续时间再次计时,并控制布隆过滤器执行去重操作。可以实现避免布隆过滤器中的数据持续增长而影响内存占用率,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
本发明实施例提供的技术方案,接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;采用目标数据中包含的逻辑关系将各待去重关键字段进行拼接,得到待去重关键字段字符串;基于加密算法对待去重关键字段字符串进行加密,确定加密数据;基于Flink设置计时器,以计时器中的起始时间为起始时间点,在计时器中的去重持续时间内,采用布隆过滤器对加密数据进行去重。通过执行本方案,可以实现对海量数据的关键字段进行高效地实时去重,可以节约存储空间,提高数据处理效率。
图3是本发明实施例提供的基于分布式流计算引擎Flink的关键字段实时去重装置结构示意图,所述装置可以由软件和/或硬件的方式实现,所述装置可以配置在用于基于分布式流计算引擎Flink的关键字段实时去重的电子设备中。如图3所示,所述装置包括:
关键字段确定模块310,用于接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
加密数据确定模块320,用于基于加密算法对各所述待去重关键字段进行加密确定加密数据;
去重模块330,用于基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
可选的,加密数据确定模块320,包括关键字段字符串确定单元,用于采用所述目标数据中包含的逻辑关系将各所述待去重关键字段进行拼接,得到待去重关键字段字符串;加密数据确定单元,用于基于所述加密算法对所述待去重关键字段字符串进行加密,确定加密数据。
可选的,所述加密算法包括MD5加密算法。
可选的,所述装置还包括重置模块,用于在采用布隆过滤器对所述加密数据进行去重之后,若检测到所述计时器的计数值与所述去重持续时间满足预设约束条件,则将所述布隆过滤器进行重置;控制计时器根据去重持续时间再次计时,并控制布隆过滤器执行去重操作。
可选的,去重模块330,具体用于:若基于所述布隆过滤器确定所述加密数据已经存在,则将所述加密数据进行丢弃。
可选的,去重模块330,具体用于:若基于所述布隆过滤器确定所述加密数据不存在,则将所述加密数据增加至所述布隆过滤器,并根据所述加密数据向所述目标数据库中增加所述目标数据。
可选的,布隆过滤器的设置过程,包括:对布隆过滤器的容忍误判率进行设置;根据所述去重持续时间,确定布隆过滤器的最大数据处理量。
上述实施例所提供的装置可以执行本发明任意实施例所提供的基于分布式流计算引擎Flink的关键字段实时去重方法,具备执行方法相应的功能模块和有益效果。
图4是本发明实施例提供的一种电子设备结构示意图,如图4所示,该设备包括:
一个或多个处理器410,图4中以一个处理器410为例;
存储器420;
所述设备还可以包括:输入装置430和输出装置440。
所述设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种基于分布式流计算引擎Flink的关键字段实时去重方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种基于分布式流计算引擎Flink的关键字段实时去重方法,即:
接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
基于加密算法对各所述待去重关键字段进行加密确定加密数据;
基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种基于分布式流计算引擎Flink的关键字段实时去重方法,也即:
接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
基于加密算法对各所述待去重关键字段进行加密确定加密数据;
基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于分布式流计算引擎Flink的关键字段实时去重方法,其特征在于,包括:
接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
基于加密算法对各所述待去重关键字段进行加密确定加密数据;
基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
2.根据权利要求1所述的方法,其特征在于,基于加密算法对各所述待去重关键字段进行加密确定加密数据,包括:
采用所述目标数据中包含的逻辑关系将各所述待去重关键字段进行拼接,得到待去重关键字段字符串;
基于所述加密算法对所述待去重关键字段字符串进行加密,确定加密数据。
3.根据权利要求1所述的方法,其特征在于,所述加密算法包括MD5加密算法。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到所述计时器的计数值与所述去重持续时间满足预设约束条件,则将所述布隆过滤器进行重置;
控制计时器根据去重持续时间再次计时,并控制布隆过滤器执行去重操作。
5.根据权利要求1所述的方法,其特征在于,采用布隆过滤器对所述加密数据进行去重,包括:
若基于所述布隆过滤器确定所述加密数据已经存在,则将所述加密数据进行丢弃。
6.根据权利要求1所述的方法,其特征在于,采用布隆过滤器对所述加密数据进行去重,包括:
若基于所述布隆过滤器确定所述加密数据不存在,则将所述加密数据增加至所述布隆过滤器,并根据所述加密数据向所述目标数据库中增加所述目标数据。
7.根据权利要求1所述的方法,其特征在于,布隆过滤器的设置过程,包括:
对布隆过滤器的容忍误判率进行设置;
根据所述去重持续时间,确定布隆过滤器的最大数据处理量。
8.一种基于分布式流计算引擎Flink的关键字段实时去重装置,其特征在于,包括:
关键字段确定模块,用于接收目标数据,并基于配置文件确定所述目标数据中的至少一个待去重关键字段;其中,所述目标数据为结构化数据;所述配置文件中包括与所述目标数据匹配的待去重关键字段;
加密数据确定模块,用于基于加密算法对各所述待去重关键字段进行加密确定加密数据;
去重模块,用于基于Flink设置计时器,以所述计时器中的起始时间为起始时间点,在所述计时器中的去重持续时间内,采用布隆过滤器对所述加密数据进行去重。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的基于分布式流计算引擎Flink的关键字段实时去重方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的基于分布式流计算引擎Flink的关键字段实时去重方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111352389.2A CN114048201A (zh) | 2021-11-16 | 2021-11-16 | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 |
PCT/CN2022/107574 WO2023087769A1 (zh) | 2021-11-16 | 2022-07-25 | 基于分布式流计算引擎Flink的关键字段实时去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111352389.2A CN114048201A (zh) | 2021-11-16 | 2021-11-16 | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048201A true CN114048201A (zh) | 2022-02-15 |
Family
ID=80209065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111352389.2A Pending CN114048201A (zh) | 2021-11-16 | 2021-11-16 | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114048201A (zh) |
WO (1) | WO2023087769A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086195A (zh) * | 2022-06-09 | 2022-09-20 | 北京锐安科技有限公司 | 分流设备的报文去重时间确定方法、装置、设备及介质 |
WO2023087769A1 (zh) * | 2021-11-16 | 2023-05-25 | 北京锐安科技有限公司 | 基于分布式流计算引擎Flink的关键字段实时去重方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121810A (zh) * | 2017-12-26 | 2018-06-05 | 北京锐安科技有限公司 | 一种数据去重方法、系统、中心服务器及分布式服务器 |
US11119996B2 (en) * | 2019-01-16 | 2021-09-14 | Sqream Technologies Ltd. | System and method of bloom filter for big data |
CN109828721B (zh) * | 2019-01-23 | 2022-06-28 | 平安科技(深圳)有限公司 | 数据删除方法、装置、计算机设备及存储介质 |
CN111258966A (zh) * | 2020-01-14 | 2020-06-09 | 软通动力信息技术有限公司 | 一种数据去重方法、装置、设备及存储介质 |
CN112491650B (zh) * | 2020-11-17 | 2023-07-07 | 中国平安财产保险股份有限公司 | 动态分析服务之间调用环路情况的方法及相关设备 |
CN113377812A (zh) * | 2021-01-08 | 2021-09-10 | 北京数衍科技有限公司 | 大数据的订单去重方法和装置 |
CN113392082A (zh) * | 2021-04-06 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种日志去重方法、装置、电子设备及存储介质 |
CN114048201A (zh) * | 2021-11-16 | 2022-02-15 | 北京锐安科技有限公司 | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 |
-
2021
- 2021-11-16 CN CN202111352389.2A patent/CN114048201A/zh active Pending
-
2022
- 2022-07-25 WO PCT/CN2022/107574 patent/WO2023087769A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087769A1 (zh) * | 2021-11-16 | 2023-05-25 | 北京锐安科技有限公司 | 基于分布式流计算引擎Flink的关键字段实时去重方法 |
CN115086195A (zh) * | 2022-06-09 | 2022-09-20 | 北京锐安科技有限公司 | 分流设备的报文去重时间确定方法、装置、设备及介质 |
CN115086195B (zh) * | 2022-06-09 | 2024-02-02 | 北京锐安科技有限公司 | 分流设备的报文去重时间确定方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023087769A1 (zh) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741016B (zh) | 用于管理应用接口的方法、计算设备和计算机存储介质 | |
US10409980B2 (en) | Real-time representation of security-relevant system state | |
WO2023087769A1 (zh) | 基于分布式流计算引擎Flink的关键字段实时去重方法 | |
US11539663B2 (en) | System and method for midserver facilitation of long-haul transport of telemetry for cloud-based services | |
US20230074102A1 (en) | Method and apparatus for processing data based on block chain, device and readable storage medium | |
CN108390933B (zh) | 消息分发方法、装置、服务器及存储介质 | |
CN109918191B (zh) | 一种业务请求防频的方法和装置 | |
CN107391770B (zh) | 一种处理数据的方法、装置、设备以及存储介质 | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
US11836137B2 (en) | Real-time streaming graph queries | |
CN104866339A (zh) | Fota数据的分布式持久化管理方法、系统和装置 | |
CN107391622B (zh) | 一种数据访问方法及设备 | |
CN112087475A (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN113556359A (zh) | 一种通讯协议转换方法、设备、系统及网关设备 | |
US11514026B2 (en) | Optimization of database write operations by combining and parallelizing operations based on hashed | |
CN112767151A (zh) | 应用于区块链中验证节点的交易处理方法和装置 | |
CN113986942B (zh) | 一种基于人机对话的消息队列管理方法及装置 | |
CN114205424B (zh) | 账单文件解压方法、装置、计算机设备和存储介质 | |
CN114510708A (zh) | 实时数据仓库构建、异常检测方法、装置、设备及产品 | |
CN108471422B (zh) | 一种异地登录判断方法、装置、服务器及介质 | |
CN110019671B (zh) | 一种处理实时消息的方法和系统 | |
CN115988574B (zh) | 基于流表的数据处理方法、系统、设备和存储介质 | |
CN115412359B (zh) | Web应用安全防护方法和装置、电子设备、存储介质 | |
CN111274203A (zh) | 一种话单存储系统及方法 | |
US10936431B2 (en) | Method, device and computer readable medium for restoring files |
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 |