脱敏UDF函数
@author lilei
@date 2022-04-28
功能:
对一些敏感信息进行脱敏处理,替换方式可选择自定义替换,如'#','*'等符号,如用户不指定脱敏符号,使用随机字符进行替换
脱敏位置可自定义,不指定位置,会对数据进行全脱敏,指定索引位置方式为 "1-5|10-15|.....",索引位置以“-”拼接,“|”为多位置分割符
例如身份证信息: 411421199508186496 ,脱敏后:411***1995****649*
示例:
临时注册hiveudf:
add jar /opt/module/hive-2.3.6/lib/desensitizationUdf.jar;
CREATE TEMPORARY FUNCTION tuominudf as 'com.udf.shouzixin.datacenter.DesensitizationUdf';
desc function tuominudf;
永久注册hiveudf:
hadoop fs -put /opt/module/hive-2.3.6/lib/desensitizationUdf.jar /udf-jar
CREATE FUNCTION desensitizationUdf AS 'com.udf.shouzixin.datacenter.DesensitizationUdf' USING JAR 'hdfs:///udf-jar/desensitizationUdf.jar';
desc function tuominudf;
结果:
//指定脱敏位置和脱敏符号
>> select desensitizationUdf('411421199508186493','1-5|8-15','#');
>> #####11########493
//只指定脱敏位置
>> select desensitizationUdf('411421199508186493','1-5|8-15','');
>> bdQRI11YAHhVsdm493
//只指定脱敏符号
>> select desensitizationUdf('411421199508186493','','#');
>> ##################
//不指定脱敏位置和脱敏符号
>> select desensitizationUdf('411421199508186493','','');
>> emqVDnRKkDifkoCtbG
评论10