一种数据脱敏方法及装置与流程

文档序号:15258034发布日期:2018-08-24 20:58阅读:2423来源:国知局

本发明涉及数据处理领域,具体涉及一种基于分布式内存计算框架spark或flink的数据脱敏方法及装置。



背景技术:

数据脱敏指对数据中的敏感信息通过脱敏规则进行变形,实现敏感隐私数据的可靠保护。这样,就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的接近真实的数据集。

目前脱敏行业对于分布式文件系统的数据的脱敏,主要是使用基于磁盘的分布式计算框架,如mapreduce以及基于mapreduce的hive,如申请号为201710682461.5、201710681806.5、201611260695.2的专利。该类方法包括:创建hive中的用于脱敏的用户自定义函数udf以及基于udf的sql或mapreduce的脱敏任务;将脱敏任务提交到分布式文件系统上执行;任务执行完毕后会生成脱敏后的数据。基于磁盘的分布式计算框架,在脱敏过程中会产生较多的磁盘读写和网络传输开销,无法充分利用内存缓存中间结果数据,因此性能较差。针对现有技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

本发明的目的在于:解决现有数据脱敏技术脱敏过程中产生较多磁盘读写和网络传输开销,无法充分利用内存缓存中间结果数据,性能较差的问题,提供一种基于内存的分布式计算框架spark或flink的数据脱敏方法及装置。

本发明采用的技术方案如下:

一种数据脱敏方法,方法步骤为:

步骤1、创建用于执行脱敏算法的用户自定义函数udf,并部署到spark或flink中的一种集群上;

步骤2、创建可以自动生成用于执行脱敏任务的sql语句的程序;

步骤3、执行步骤2创建的程序生成sql语句,并提交到spark或flink中的一种集群上结合步骤1中udf执行该语句。

进一步,所述步骤1具体步骤如下:

步骤1.1、创建用于执行脱敏算法的用户自定义函数udf:

步骤1.2、将步骤1.1创建的udf代码编译成jar包;

步骤1.3、将步骤1.2生成的udf的jar包部署到spark或flink中的一种集群上。

进一步,所述步骤2具体步骤如下:

步骤2.1、对存放需脱敏数据的表中的字段进行敏感标记并存储;

步骤2.2、创建可查询步骤2.1敏感字段的标记和类型,并自动生成用于执行脱敏任务的sql语句的程序。

进一步,所述步骤3具体步骤如下:

步骤3.1、执行可以自动生成用于执行脱敏任务的sql语句的程序,以生成sql语句;

步骤3.2、提交步骤3.1生成的sql语句到spark或flink中的一种集群上,并结合步骤1中部署到spark或flink中的一种集群上的udf执行该语句;

步骤3.3、步骤3.2执行完毕得到脱敏后的数据,完成数据脱敏。

进一步,所述提交sql语句到spark或flink中的一种集群上是通过java数据库连接jdbc方式提交。

一种数据脱敏装置,其特征在于,包括:

第一创建模块:用于创建用于执行脱敏算法的用户自定义函数udf,并部署到spark或flink中的一种集群上;

第二创建模块:用于创建可以自动生成用于执行脱敏任务的sql语句的程序;

执行模块:用于执行第二创建模块的程序生成sql语句,并提交到spark或flink中的一种集群上结合第一创建模块创建的udf执行该语句。

进一步,所述第一创建模块包括:

函数创建模块:用于创建用来执行脱敏算法的用户自定义函数udf;

编译模块:用于将函数创建模块创建的udf代码编译成iar包;

部署模块:用于将编译模块生成的udf的jar包部署到spark或flink中的一种集群上。

进一步,所述第二创建模块包括:

标记模块:用于对存放需脱敏的数据表中的字段进行敏感标记并存储;

程序生成模块:用于创建可查询标记模块生成的敏感字段的标记和类型,并自动生成用于执行脱敏任务的sql语句的程序。

进一步,所述执行模块包括:

第一执行模块:用于执行第二创建模块的程序,并生成sql语句;

第二执行模块:用于提交第一执行模块生成的sql语句到spark或flink中的一种集群上,并结合部署到spark或flink中的一种集群上的udf执行该语句;

结束模块:用于表示第二执行模块执行完毕,得到脱敏后数据,完成数据脱敏。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

本发明中,采用新兴的基于内存的分布式计算框架spark或flink,不同于传统的基于磁盘的分布式计算框架,如mapreduce以及基于mapreduce的hive,减少了脱敏过程中的磁盘读写和网络传输开销,提升了脱敏的性能。

附图说明

图1为本发明方法流程示意图;

图2为本发明装置结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

对文中计算框架名词解释如下:

spark:由美国加州伯克利大学开源的分布式内存计算框架,支持sql语言接口,目前是apache社区的顶级开源项目。

flink:由德国柏林理工大学开源的分布式内存计算框架,支持sql语言接口,目前是apache社区的顶级开源项目,很多方面和spark类似。

mapreduce:最早是由google公司提出的一个处理大规模数据的分布式计算模型,后来由美国雅虎公司基于这一模型提供了一个叫hadoop的开源实现,并贡献给apache社区。

hive:美国facebook公司开源的一个基于hadoop的sql引擎,可以把sql转化成mapreduce任务执行,目前是apache社区的顶级开源项目。

实施例1

一种数据脱敏方法,方法步骤为:

步骤1、创建用于执行脱敏算法的用户自定义函数udf,udf的作用是对参数进行脱敏变形,变形方式包含散列(hash)、移位(shift)、替换(replace)、截断(truncate)、枚举(enumerate)、掩码(mask)、求模(modulo)、可逆加密(reversibleencryption);

步骤2、将步骤1创建的udf代码编译成jar包;

步骤3、将步骤2生成的udf的jar包部署到spark或flink中的一种集群上。

步骤4、对存放要脱敏的数据的表中每个字段是否是敏感字段以及哪种类型的敏感字段如姓名类、地址类、日期类、电话号码类、证件号类,进行标记,并存储在数据库中;

步骤5、创建可以查询表中敏感字段的标记和类型,并自动生成用于执行脱敏任务的sql语句的程序;

步骤6、执行前述步骤5的程序,并生成sql语句;

步骤7、通过java数据库连接jdbc方式提交步骤6生成的sql语句到spark或flink中的一种集群上,并结合步骤3中udf执行该语句;

步骤8、步骤7sql执行完毕得到脱敏后的数据,源表中的敏感字段内容已经被脱敏。

一种数据脱敏装置,包括:

第一创建模块:用于创建用于执行脱敏算法的用户自定义函数udf,并部署到spark或flink中的一种集群上,所述第一创建模块包括:

函数创建模块:用于创建用来执行脱敏算法的用户自定义函数udf;

编译模块:用于将函数创建模块创建的udf代码编译成jar包;

部署模块:用于将编译模块生成的udf的jar包部署到spark或flink中的一种集群上。

第二创建模块:用于创建可以自动生成用于执行脱敏任务的sql语句的程序,所述第二创建模块包括:

标记模块:用于对存放需脱敏的数据表中的字段进行敏感标记并存储;

程序生成模块:用于创建可查询标记模块生成的敏感字段的标记和类型,并自动生成用于执行脱敏任务的sql语句的程序。

执行模块:用于执行第二创建模块生成的程序生成sql语句,并提交到spark或flink中的一种集群上结合第一创建模块创建的udf执行该语句,所述执行模块包括:

第一执行模块:用于执行脱敏任务程序,并生成sql语句;

第二执行模块:用于提交第一执行模块生成的sql语句到spark或flink中的一种集群上,并结合部署到spark或flink中的一种集群上的udf执行该语句;

结束模块:用于表示第二执行模块执行完毕,得到脱敏后数据,完成数据脱敏。

与基于磁盘的分布式计算框架,如mapreduce以及基于mapreduce的hive相比,本发明实施例采用基于内存的分布式计算框架spark或flink,减少了脱敏过程中的磁盘读写和网络传输开销,提升了脱敏的性能。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1