CN108446570A - 一种数据脱敏方法及装置 - Google Patents
一种数据脱敏方法及装置 Download PDFInfo
- Publication number
- CN108446570A CN108446570A CN201810169873.3A CN201810169873A CN108446570A CN 108446570 A CN108446570 A CN 108446570A CN 201810169873 A CN201810169873 A CN 201810169873A CN 108446570 A CN108446570 A CN 108446570A
- Authority
- CN
- China
- Prior art keywords
- desensitization
- spark
- flink
- udf
- 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
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据脱敏方法,方法步骤为:步骤1、创建用于执行脱敏算法的用户自定义函数UDF,并部署到Spark或Flink中的一种集群上;步骤2、创建可以自动生成用于执行脱敏任务的SQL语句的程序;步骤3、执行步骤2创建的程序生成SQL语句,并提交到Spark或Flink中的一种集群上结合步骤1中UDF执行该语句。一种数据脱敏装置,包括:第一创建模块、第二创建模块和执行模块。本发明采用新兴的基于内存的分布式计算框架Spark或Flink,不同于传统的基于磁盘的分布式计算框架,如MapReduce以及基于MapReduce的Hive,减少了脱敏过程中的磁盘读写和网络传输开销,提升了脱敏的性能。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种基于分布式内存计算框架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)、可逆加密(Reversible Encryption);
步骤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,减少了脱敏过程中的磁盘读写和网络传输开销,提升了脱敏的性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种数据脱敏方法,其特征在于:方法步骤为:
步骤1、创建用于执行脱敏算法的用户自定义函数UDF,并部署到Spark或Flink中的一种集群上;
步骤2、创建可以自动生成用于执行脱敏任务的SQL语句的程序;
步骤3、执行步骤2创建的程序生成SQL语句,并提交到Spark或Flink中的一种集群上结合步骤1中UDF执行该语句。
2.根据权利要求1所述的一种数据脱敏方法,其特征在于:所述步骤1具体步骤如下:
步骤1.1、创建用于执行脱敏算法的用户自定义函数UDF;
步骤1.2、将步骤1.1创建的UDF代码编译成jar包;
步骤1.3、将步骤1.2生成的UDF的jar包部署到Spark或Flink中的一种集群上。
3.根据权利要求1或2所述的一种数据脱敏方法,其特征在于:所述步骤2具体步骤如下:
步骤2.1、对存放需脱敏数据的表中的字段进行敏感标记并存储;
步骤2.2、创建可查询步骤2.1敏感字段的标记和类型,并自动生成用于执行脱敏任务的SQL语句的程序。
4.根据权利要求1或3所述的一种数据脱敏方法,其特征在于:所述步骤3具体步骤如下:
步骤3.1、执行可以自动生成用于执行脱敏任务的SQL语句的程序,以生成SQL语句;
步骤3.2、提交步骤3.1生成的SQL语句到Spark或Flink中的一种集群上,并结合步骤1中部署到Spark或Flink中的一种集群上的UDF执行该语句;
步骤3.3、步骤3.2执行完毕得到脱敏后的数据,完成数据脱敏。
5.根据权利要求4任一项所述的一种数据脱敏方法,其特征在于:所述提交SQL语句到Spark或Flink中的一种集群上是通过JAVA数据库连接JDBC方式提交。
6.一种数据脱敏装置,其特征在于,包括:
第一创建模块:用于创建用于执行脱敏算法的用户自定义函数UDF,并部署到Spark或Flink中的一种集群上;
第二创建模块:用于创建可以自动生成用于执行脱敏任务的SQL语句的程序;
执行模块:用于执行第二创建模块的程序生成SQL语句,并提交到Spark或Flink中的一种集群上结合第一创建模块创建的UDF执行该语句。
7.根据权利要求6所述的一种数据脱敏装置,其特征在于:所述第一创建模块包括:
函数创建模块:用于创建用来执行脱敏算法的用户自定义函数UDF;
编译模块:用于将函数创建模块创建的UDF代码编译成jar包;
部署模块:用于将编译模块生成的UDF的jar包部署到Spark或Flink中的一种集群上。
8.根据权利要求6所述的一种数据脱敏装置,其特征在于:所述第二创建模块包括:
标记模块:用于对存放需脱敏的数据表中的字段进行敏感标记并存储;
程序生成模块:用于创建可查询标记模块生成的敏感字段的标记和类型,并自动生成用于执行脱敏任务的SQL语句的程序。
9.根据权利要求6所述的一种数据脱敏装置,其特征在于:所述执行模块包括:
第一执行模块:用于执行第二创建模块的程序,以生成SQL语句;
第二执行模块:用于提交第一执行模块生成的SQL语句到Spark或Flink中的一种集群上,并结合部署到Spark或Flink中的一种集群上的UDF执行该语句;
结束模块:用于表示第二执行模块执行完毕,得到脱敏后数据,完成数据脱敏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810169873.3A CN108446570A (zh) | 2018-02-28 | 2018-02-28 | 一种数据脱敏方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810169873.3A CN108446570A (zh) | 2018-02-28 | 2018-02-28 | 一种数据脱敏方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108446570A true CN108446570A (zh) | 2018-08-24 |
Family
ID=63193211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810169873.3A Pending CN108446570A (zh) | 2018-02-28 | 2018-02-28 | 一种数据脱敏方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446570A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657012A (zh) * | 2018-11-26 | 2019-04-19 | 华中科技大学 | 一种基于mssql的算法研究与测试方法 |
CN109902514A (zh) * | 2019-03-07 | 2019-06-18 | 杭州比智科技有限公司 | 一种数据脱敏控制系统、方法、服务器和存储介质 |
CN110457934A (zh) * | 2019-04-19 | 2019-11-15 | 南京大学 | 一种基于哈希算法的高仿真数据脱敏算法 |
CN110909066A (zh) * | 2019-12-06 | 2020-03-24 | 中科院计算技术研究所大数据研究院 | 一种基于SparkSQL和RestAPI的流数据处理方法 |
CN112765248A (zh) * | 2021-01-11 | 2021-05-07 | 上海上讯信息技术股份有限公司 | 基于sql的数据抽取的方法及设备 |
CN113535754A (zh) * | 2021-07-27 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 一种数据访问方法、装置及系统 |
CN113901513A (zh) * | 2021-09-30 | 2022-01-07 | 四川新网银行股份有限公司 | 一种基于血缘解析的动态数据脱敏方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
WO2017088683A1 (zh) * | 2015-11-24 | 2017-06-01 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN107015989A (zh) * | 2016-01-27 | 2017-08-04 | 博雅网络游戏开发(深圳)有限公司 | 数据处理方法和装置 |
CN107145799A (zh) * | 2017-05-04 | 2017-09-08 | 山东浪潮云服务信息科技有限公司 | 一种数据脱敏方法及装置 |
CN107194270A (zh) * | 2017-04-07 | 2017-09-22 | 广东精点数据科技股份有限公司 | 一种实现数据脱敏的系统及方法 |
CN107403111A (zh) * | 2017-08-10 | 2017-11-28 | 中国民航信息网络股份有限公司 | Hive数据脱敏方法及装置 |
-
2018
- 2018-02-28 CN CN201810169873.3A patent/CN108446570A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088683A1 (zh) * | 2015-11-24 | 2017-06-01 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN107015989A (zh) * | 2016-01-27 | 2017-08-04 | 博雅网络游戏开发(深圳)有限公司 | 数据处理方法和装置 |
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
CN107194270A (zh) * | 2017-04-07 | 2017-09-22 | 广东精点数据科技股份有限公司 | 一种实现数据脱敏的系统及方法 |
CN107145799A (zh) * | 2017-05-04 | 2017-09-08 | 山东浪潮云服务信息科技有限公司 | 一种数据脱敏方法及装置 |
CN107403111A (zh) * | 2017-08-10 | 2017-11-28 | 中国民航信息网络股份有限公司 | Hive数据脱敏方法及装置 |
Non-Patent Citations (1)
Title |
---|
赵娟 等: ""基于Hadoop、Storm、Samza、Spark及Flink大数据处理框架的比较研究"", 《信息系统工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657012A (zh) * | 2018-11-26 | 2019-04-19 | 华中科技大学 | 一种基于mssql的算法研究与测试方法 |
CN109902514A (zh) * | 2019-03-07 | 2019-06-18 | 杭州比智科技有限公司 | 一种数据脱敏控制系统、方法、服务器和存储介质 |
CN110457934A (zh) * | 2019-04-19 | 2019-11-15 | 南京大学 | 一种基于哈希算法的高仿真数据脱敏算法 |
CN110909066A (zh) * | 2019-12-06 | 2020-03-24 | 中科院计算技术研究所大数据研究院 | 一种基于SparkSQL和RestAPI的流数据处理方法 |
CN112765248A (zh) * | 2021-01-11 | 2021-05-07 | 上海上讯信息技术股份有限公司 | 基于sql的数据抽取的方法及设备 |
CN113535754A (zh) * | 2021-07-27 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 一种数据访问方法、装置及系统 |
CN113901513A (zh) * | 2021-09-30 | 2022-01-07 | 四川新网银行股份有限公司 | 一种基于血缘解析的动态数据脱敏方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446570A (zh) | 一种数据脱敏方法及装置 | |
US11386218B2 (en) | Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization | |
AU2021204627B2 (en) | Technologies for file sharing | |
JP6612303B2 (ja) | ユーザコンタクトエントリのデータ設定 | |
US9275024B2 (en) | Identifiers for web font templates | |
CN106778288A (zh) | 一种数据脱敏的方法及系统 | |
CN111414122B (zh) | 一种智能文本处理方法、装置、电子设备及存储介质 | |
CN111666296B (zh) | 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质 | |
CN106897251B (zh) | 富文本展示方法及装置 | |
CN111026858B (zh) | 基于项目推荐模型的项目信息处理方法及装置 | |
JP2010501096A (ja) | ラッパー生成およびテンプレート検出の協同最適化 | |
CN111026320B (zh) | 多模态智能文本处理方法、装置、电子设备及存储介质 | |
CN108984155A (zh) | 数据处理流程设定方法和装置 | |
US20150066977A1 (en) | Method and system for managing digital resources | |
CN104536987B (zh) | 一种查询数据的方法及装置 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
JP7254925B2 (ja) | 改良されたデータマッチングのためのデータレコードの字訳 | |
WO2021093673A1 (zh) | 邮件发送方法、装置、设备及计算机可读存储介质 | |
US11941140B2 (en) | Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization | |
CN102929877B (zh) | 将网页上的表格数据生成表格文件的方法及装置 | |
US20200142990A1 (en) | Recording lineage in query optimization | |
CN111142728B (zh) | 车载环境智能文本处理方法、装置、电子设备及存储介质 | |
WO2016032516A1 (en) | Static program analysis in an object-relational mapping framework | |
WO2020024824A1 (zh) | 一种用户状态标识确定方法及装置 | |
CN111611011A (zh) | 一种支持Blob数据类型的JSON语法扩展方法和解析方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180824 |
|
RJ01 | Rejection of invention patent application after publication |