2023.11.16 hivesql 函数之类型转换,脱敏,与加密函数

1.类型转换函数

cast:主要用于类型转换,如果转换失败则返回null

select cast(3.14 as int); -- 3
select cast(3.14 as string) ; -- '3.14'
select cast('3.14' as float); -- 3.14
select cast('3.14' as int); -- 3
select cast('binzi' as int); -- null

很多时候,底层也默认做了自动转换

select '3'+3;  --6

实际应用场景:concat_ws用指定分隔符拼接到一起生成新的字符串,但拼接的内容必须是字符串类型,所以可以用cast来先进行类型转换

select concat_ws('-','bbdwj',cast(666 as string)); --  'bwj666'

2.脱敏函数

数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。

-- 演示数据脱敏函数[了解]
-- mask_hash:  返回指定字符串的hash编码
select mask_hash('binzi');

 大小写转换

--将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。
select mask("abc123DEF"); -- xxxnnnXXX

--自定义替换的字母: 依次为大写小写数字
select mask("abc123DEF",'大','小','数');
select mask("A,b,1",'大','小','数');  -- 大,小,数
select mask("abc123DEF",'/','.','%'); -- ...%%%///

自定义脱敏位置

--mask_first_n(string str[, int n]
--对前n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_first_n("abc123DEF",6);  --xxxnnnDEF

--mask_last_n(string str[, int n])
--对后n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_last_n("abc123DEF",6);  -- abcnnnXXX

--mask_show_first_n(string str[, int n])
--除了前n个字符,其余进行掩码处理
select mask_show_first_n("abc123DEF",6);  --abc123XXX

--mask_show_last_n(string str[, int n])
--除了后n个字符,其余进行掩码处理
select mask_show_last_n("abc123DEF",6);  --xxx123DEF

3.加密函数

--------------------------------------其他函数-----------------------------------------------
-- 演示其他函数
--取哈希值函数:hash
select hash("bbdwj"); -- 93524471

--MD5加密: md5(string/binary)
select md5("binzi"); -- 32位   072853027b387fcf891a610137f8dc1b
select length('072853027b387fcf891a610137f8dc1b');


--SHA-1加密: sha1(string/binary)
select sha1("binzi"); -- 40位 66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9
select length('66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9');

--SHA-2家族算法加密:sha2(string/binary, int)  (SHA-224, SHA-256, SHA-384, SHA-512)
select sha2("binzi",224);
select sha2("binzi",512);

--crc32加密:
select crc32("binzi"); -- 3221865747


-- 当前环境相关的
select current_user(),logged_in_user(),current_database(),version();

你可能感兴趣的:(数据库,数据仓库,hive,hadoop,sql,大数据,database)