离线表数据敏感字段自动id化处理

简介: 离线表数据敏感字段自动id化处理

一、背景

对于一些表数据包含的铭感字段需要id 化处理,比如说:用户搜索了某个关键词,或者用户的购物地址是某个城市,这种都需要进行模糊化处理,但是直接模糊化处理不利于使用,比如说:在三四线城市(村镇收货地址)的用户可能是下沉用户,或者搜索过美妆相关的关键词用户认为大概率是女性用户,但是这种又不太方便对外进行展示,所以需要进行id化

认为地址位置id 为3和4的用户其实有非常相似的特征的。

二、实现思路

核心思路:用字典表和地址信息表进行关联,自动生成新的字典表,然后拿字典表和地址信息表进行匹配实现位置信息id化

三、具体实现

(1)首先构造一个字典表

表:location_dict
字段:location_name,location_id

(2)拿到字典表的最大id

MAX_ID=$(hive -e "select COALESCE(max(location_id), 0) from location_dict;")
echo "Max id : ${MAX_ID}"

(3)继续自动生成id,写入字典表

insert overwrite table location_dict partition (dt='${target_date}')
select a.location, (row_number() over (order by a.location desc) + ${MAX_ID}) as location_id from 
(select * from location_info
where dt='${target_date}') a
left outer join
location_dict b
on a.location = b.location
where b.location is null;

(4)生成id化之后的数据表

insert overwrite table location_result partition (dt='${target_date}')
select a.location,b.location_id from 
(select * from location_info
where dt='${target_date}') a
join location_dict b
on a.location = b.location

四、总结

敏感数据id化在一些数据安全场景中会经常用到,比如说:电商或者物流的收货地址信息、用户安装的app信息列表均可以考虑进行id化处理


相关文章
|
13天前
|
关系型数据库 MySQL
MySQL全局库表查询准确定位字段
information_schema.COLUMNS 详细信息查询
202 4
|
18天前
|
SQL 存储 关系型数据库
group by语句查询如何确保保留重复数据
group by语句查询如何确保保留重复数据
12 0
|
8月前
如何查询当前年最新的数据以及这条数据的上一年的最新数据?
如何查询当前年最新的数据以及这条数据的上一年的最新数据
39 0
|
4月前
公交路线查询系统
公交路线查询系统
67 0
|
4月前
|
编译器 应用服务中间件 数据库连接
解决C#运行程序修改数据后数据表不做更新的问题
解决C#运行程序修改数据后数据表不做更新的问题
44 0
|
11月前
|
PHP
thinkphp获取数据表中的字段信息和数据表的信息
thinkphp获取数据表中的字段信息和数据表的信息
161 0
|
存储 SQL Java
Mysql数据库表字段设计优化(状态列)
初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。
394 0
Mysql数据库表字段设计优化(状态列)
|
存储 数据库
数据库中某一列中使用的是text存储,使用的是逗号分割,查询某一个数据在该列所有数据中的条数【真实场景】
数据库中某一列中使用的是text存储,使用的是逗号分割,查询某一个数据在该列所有数据中的条数【真实场景】
67 0
|
SQL 存储 缓存
10w行级别数据的Excel导入优化记录,优秀
10w行级别数据的Excel导入优化记录,优秀
450 0
10w行级别数据的Excel导入优化记录,优秀

热门文章

最新文章