公开/公告号CN114896295A
专利类型发明专利
公开/公告日2022-08-12
原文格式PDF
申请/专利权人 云启智慧科技有限公司;
申请/专利号CN202210814682.4
申请日2022-07-12
分类号G06F16/2457(2019.01);G06F16/245(2019.01);G06F16/25(2019.01);G06F9/48(2006.01);G06F9/50(2006.01);
代理机构北京集智东方知识产权代理有限公司 11578;
代理人吴倩
地址 430024 湖北省武汉市江汉经济开发区江兴路11号创智中心C栋
入库时间 2023-06-19 16:23:50
法律状态公告日
法律状态信息
法律状态
2022-10-04
授权
发明专利权授予
2022-08-30
实质审查的生效 IPC(主分类):G06F16/2457 专利申请号:2022108146824 申请日:20220712
实质审查的生效
技术领域
本发明涉及数据脱敏技术领域,尤其涉及一种大数据场景下的数据脱敏方法及装置。
背景技术
数据脱敏是对敏感数据(例如:手机号码、姓名、身份证号码、通信地址)通过一定的脱敏规则进行数据转换,实现隐私数据的可靠保护。常规的数据脱敏主要包括如下步骤:(1)从明文来源数据源读取数据;(2)根据脱敏规则进行脱敏转换;(3)写入脱敏后目标数据源。
进一步的,目前在诸多领域已有TB级大数据的脱敏需求,但现有的数据脱敏方法脱敏效能低下,且执行脱敏算法需要消耗大量CPU资源,一旦服务器CPU受限,则无法满足TB级大数据的快速脱敏需求。
发明内容
本发明的目的在于提供一种大数据场景下的数据脱敏方法、脱敏装置及脱敏系统,其采用自适应脱敏任务队列调度、脱敏任务线程数调度方法进行任务分配以及脱敏线程数调整,以提高脱敏效率,以满足TB级大数据的脱敏需求。
为实现上述目的,本申请提供如下技术方案:
一方面,提供了一种大数据场景下的数据脱敏方法,其包括如下步骤:
S1、将作业队列中的作业进行切分,以形成若干脱敏任务队列;
S2、对所述脱敏任务队列进行调度,以将脱敏任务分配至对应的数据脱敏单元;
S3、数据脱敏单元按照脱敏规则对分配的脱敏任务进行数据脱敏。
优选的,所述步骤S2包括如下步骤:
S21、获取当前数据脱敏单元服务器的负载L,且若该负载L<
S22、获取当前数据脱敏单元正在执行的脱敏任务数T,且若该脱敏任务数T<
S23、获取当前数据脱敏单元服务器的CPU使用率C,且若该CPU使用率C满足
则执行下一步骤S24,否则执行步骤S25;
其中,
S24、将至少一个脱敏任务分配至当前数据脱敏单元;
S25、重复步骤S21-S24,直至将每一脱敏任务分配至对应的数据脱敏单元。
优选的,所述步骤S2中,在将脱敏任务分配至对应的数据脱敏单元后,还包括如下步骤:
S21’、获取当前数据脱敏单元服务器的负载L,且若该负载L<
S22’、获取当前数据脱敏单元执行当前脱敏任务时的线程数H,且若该线程数H<
S23’、获取当前数据脱敏单元服务器的CPU使用率C,且若该CPU使用率C满足
则执行下一步骤S24’,否则执行步骤S25’;
S24’、增加当前数据脱敏单元执行当前脱敏任务时的线程数;
S25’、重复步骤S21’-S24’。
优选的,
其中,
CPU使用率。
一方面,还提供一种用于实现上述数据脱敏方法的数据脱敏装置,其包括:
Master节点,其用于将作业队列中的作业进行切分,以形成若干脱敏任务队列,以及完
成脱敏任务队列调度和/或脱敏任务线程数调度;
以及若干Worker节点,其用于按照脱敏规则对分配的脱敏任务进行数据脱敏。
优选的,所述Master节点包括:
作业切分单元,其用于将作业队列中的作业进行切分,以形成若干脱敏任务队列;
脱敏任务调度单元,其用于对所述脱敏任务队列进行调度,以将脱敏任务分配至对应的数据脱敏单元;
脱敏任务线程数调度单元,其用于对数据脱敏单元执行脱敏任务时的线程数进行调度。
优选的,所述Master节点还包括:
监测分析器,其用于获取Worker节点的工作运行数据,以及获取N个数据脱敏单元在预
定时间段内一共执行n个脱敏规则时,各数据脱敏单元服务器的CPU平均使用率Avg(r)。
优选的,每一Worker节点包括:
数据抽取器,其用于按照抽取规则从明文数据源中抽取待脱敏数据;
数据脱敏器,其用于获取待脱敏数据,且按照脱敏规则对分配的脱敏任务进行数据脱敏;
以及数据装载器,其用于根据装载规则将脱敏后的数据装载存储至目标数据源。
优选的,所述Master节点与Worker节点为分布式集群架构。
另一方面,还提供一种数据脱敏系统,其包括:明文数据源、上述数据脱敏装置以及目标数据源。
综上所述,本发明与现有技术相比具有以下有益效果:
本发明针对TB级大数据场景下的数据特征和脱敏作业特点,对脱敏作业进行作业切分,进一步采用独特的自适应脱敏任务队列调度、脱敏任务线程数调度方法进行任务分配以及脱敏线程数调整,同时结合分布式集群架构设计以及多线程处理方式进行数据脱敏,其有助于提高单节点CPU使用率,提高脱敏效率,以满足TB级大数据的脱敏需求。
附图说明
图1为本发明中大数据场景下的数据脱敏方法的步骤流程图;
图2为本发明中将作业队列中的作业进行切分的示意图;
图3为本发明中对脱敏任务队列进行调度的步骤流程图;
图4为本发明中对脱敏线程数进行调度的步骤流程图;
图5为本发明中数据脱敏装置的结构示意图;
图6为本发明中Master节点、Worker节点的结构示意图;
图7为本发明中数据脱敏系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提供了一种大数据场景下的数据脱敏方法,其包括如下步骤:
S1、将作业队列中的作业进行切分,以形成若干脱敏任务队列;
例如,如图2所示,作业队列中可包含若干个待处理的作业Job1、Job2...Job9,然后对其中某一个作业进行切分,以形成若干脱敏任务队列,如将作业Job1切分为6个脱敏任务队列Task1-Task6,将作业Job2切分为3个脱敏任务队列Task7-Task9等;
进行切分的规则可根据实际脱敏需求设置,如本实施例中,是按照数据键值[startRowkey,endRowkey]对作业进行切分;
S2、对所述脱敏任务队列进行调度,以将脱敏任务分配至对应的数据脱敏单元(即图2在的Worker节点);
S3、数据脱敏单元按照脱敏规则对分配的脱敏任务进行数据脱敏,并且脱敏后的数据装载存储至目标数据源,本实施例中,每一数据脱敏单元可同时执行多种脱敏规则、同时执行多个脱敏任务,且每一数据脱敏单元配备至少一台服务器,以支持该数据脱敏单元完成脱敏任务。
具体的,如图3所示,所述步骤S2包括如下步骤:
S21、获取当前数据脱敏单元服务器的负载L,且若该负载L<
S22、获取当前数据脱敏单元正在执行的脱敏任务数T,且若该脱敏任务数T<
S23、获取当前数据脱敏单元服务器的CPU使用率C,且若该CPU使用率C满足
则执行下一步骤S24,否则执行步骤S25;
其中,
进一步的,
其中,
S24、将至少一个脱敏任务分配至当前数据脱敏单元;
S25、重复步骤S21-S24,直至将每一脱敏任务分配至对应的数据脱敏单元。
对于数据脱敏单元而言,其对应的服务器最大CPU使用率、服务器CPU核心数越大,数据脱敏单元执行脱敏任务数、服务器负载和服务器CPU平均使用率越小,该数据脱敏单元更容易被分配脱敏任务。由此,上述步骤S2可通过对服务器负载、服务器CPU核心数、执行脱敏任务数、CPU平均使用率以及最大CPU使用率进行综合考虑,以制定合理的脱敏任务分配策略,如仅在服务器负载不高、执行脱敏任务数较少、CPU平均使用率较低、服务器CPU核心数较多的情形下,才对相应的数据脱敏单元分配脱敏任务,以实现脱敏任务的合理分配,使各数据脱敏单元可并行处理脱敏任务,以充分利用CPU资源,最大限度提高脱敏效率,以满足TB级大数据的脱敏需求。
实施例2:
本实施例与实施例1的不同之处仅在于,如图3所示,所述步骤S2中,在将脱敏任务分配至对应的数据脱敏单元后,还包括如下步骤:
S21’、获取当前数据脱敏单元服务器的负载L,且若该负载L<
S22’、获取当前数据脱敏单元执行当前脱敏任务时的线程数H,且若该线程数H<
S23’、获取当前数据脱敏单元服务器的CPU使用率C,且若该CPU使用率C满足
则执行下一步骤S24’,否则执行步骤S25’;
其中,各参数的含义与步骤S23相同,不再赘述;
S24’、增加当前数据脱敏单元执行当前脱敏任务时的线程数;
S25’、重复步骤S21’-S24’。
对于数据脱敏单元而言,其对应的服务器最大CPU使用率、服务器CPU核心数、最大线程数越大,数据脱敏单元当前脱敏任务线程数、服务器负载和服务器CPU平均使用率越小,该数据脱敏单元更容易增加脱敏线程数。由此,上述步骤可通过对服务器负载、服务器CPU核心数、数据脱敏单元当前脱敏任务线程数、CPU平均使用率以及最大CPU使用率进行综合考虑,以制定合理的脱敏线程增加策略,如仅在服务器负载不高、数据脱敏单元当前脱敏任务线程数较少、CPU平均使用率较低、服务器CPU核心数较多的情形下,才对相应的数据脱敏单元增加脱敏线程,以此提高该数据脱敏单元服务器CPU的使用率,缩短单个脱敏任务的处理时间,进一步提高脱敏效率。
实施例3:
本实施例提供了一种用于实现实施例1或2所述数据脱敏方法的数据脱敏装置,如图5所示,其包括:
Master节点,其用于将作业队列中的作业进行切分,以形成若干脱敏任务队列,以及完成脱敏任务队列调度和/或脱敏任务线程数调度;其中,作业切分方法与步骤S1相同,脱敏任务队列调度方法与实施例1中的步骤S2相同,脱敏任务线程数调度方法与实施例2中的步骤相同,不再赘述;
以及若干Worker节点(每一Worker节点即为一数据脱敏单元),其用于按照脱敏规则对分配的脱敏任务进行数据脱敏。
所述Master节点与Worker节点为分布式集群架构,由此,每个Worker节点之间通过广播通信同步信息,保证集群中各Worker节点节点的协同,且最先加入集群的节点作为Master节点,其它节点作为Worker节点,Master节点退出后,可根据加入时间重新选举Master节点。
具体的,如图6所示,所述Master节点包括:
作业切分单元,其用于将作业队列中的作业进行切分,以形成若干脱敏任务队列,具体方法与步骤S1相同,不再赘述;
脱敏任务调度单元,其用于对所述脱敏任务队列进行调度,以将脱敏任务分配至对应的数据脱敏单元;其中,脱敏任务队列调度方法与实施例1中的步骤S2相同,不再赘述;
脱敏任务线程数调度单元,其用于对数据脱敏单元执行脱敏任务时的线程数进行调度;其中,脱敏任务线程数调度方法与实施例2中的步骤相同,不再赘述;
监测分析器,其用于获取Worker节点的工作运行数据,以及获取N个数据脱敏单元在预定时间段内(如1分钟内)一共执行n个脱敏规则时,各数据脱敏单元服务器的CPU平均使用率Avg(r),且所述工作运行数据包括:当前数据脱敏单元服务器的负载L;当前数据脱敏单元服务器的CPU核心数量CoreNum;当前数据脱敏单元服务器的CPU使用率C。
每一Worker节点包括:
数据抽取器,其用于按照抽取规则从明文数据源中抽取待脱敏数据;具体的,所述明文数据源包括HBase数据库,所述抽取规则包括按照表Tabel、列族ColFamily、列Column、开始行键startRowkey、结束行键endRowkey和并发任务数CurNum中的一项或几项进行待脱敏数据抽取;
数据脱敏器,其用于获取待脱敏数据,且按照脱敏规则对分配的脱敏任务进行数据脱敏;优选的,所述数据脱敏器以多线程方式运行,且使用线程池管理多线程,由此可使得每一数据脱敏单元可同时执行多种脱敏规则、同时执行多个脱敏任务;
以及数据装载器,其用于根据装载规则将脱敏后的数据装载存储至目标数据源;具体的,所述装载规则包括按照表Tabel、分区Partition、列Column、一次性批量提交的记录数Batchcommitsize中的一项或几项进行装载,所述目标数据源包括MySQL数据库。
优选的,数据抽取器和/或数据装载器以单线程方式运行。
由此,每一Worker节点均由数据抽取器、数据脱敏器和数据装载器三个独立模块构成,其中,数据脱敏器作为数据抽取器、数据装载器的数据传输通道,根据脱敏规则在内存中即可完成脱敏转换,整个脱敏过程不再读写磁盘,以大幅提高脱敏效率。
实施例4:
本实施例提供了一种数据脱敏系统,如图7所示,其包括:明文数据源(如HBase数据库)、实施例3所述的数据脱敏装置以及目标数据源(如MySQL数据库)。
具体的,所述明文数据源中存储有待脱敏作业队列;所述数据脱敏装置中的Master节点将作业队列中的作业进行切分,以形成若干脱敏任务队列,并将其将脱敏任务分配至对应的Worker节点,Worker节点中的数据抽取器按照抽取规则从脱敏任务中抽取待脱敏数据,并将其写入第一数据队列(如DataQueueA),数据脱敏器以多线程方式、按照脱敏规则对第一数据队列中的待脱敏数据进行数据脱敏,并将脱敏结果写入第二数据队列(如DataQueueB)中,数据装载器根据装载规则从第二数据队列中读取脱敏后的数据,并装载写入到目标数据源中。
综上所述,本发明针对TB级大数据场景下的数据特征和脱敏作业特点,对脱敏作业进行作业切分,进一步采用独特的自适应脱敏任务队列调度、脱敏任务线程数调度方法进行任务分配以及脱敏线程数调整,同时结合分布式集群架构设计以及多线程处理方式进行数据脱敏,其可以满足适配异构数据源的需求,且达到满足集群整体任务分配均衡和充分利用CPU计算资源的目的,有助于提高单节点CPU使用率,充分利用CPU资源,提高脱敏效率,以满足TB级大数据的脱敏需求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 自动数据授权脱敏方法,系统,设备和存储介质
机译: 数据脱敏的系统和方法
机译: 用于数据脱敏的系统和方法