离线表数据敏感字段自动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化处理


相关文章
|
9月前
|
存储 关系型数据库 索引
10. 在一个非主键字段上创建了索引, 想要根据该字段查询到数据, 需要查询几次 ?
在非主键字段上创建索引,查询数据通常需两次。对于MyISAM,先通过索引找到数据行指针,再获取数据;而InnoDB则先找主键ID,再从主键索引中查找数据。
52 0
|
8月前
|
分布式计算 关系型数据库 数据挖掘
实时数仓 Hologres产品使用合集之当使用动态分区管理功能按日期进行分区后,通过主键和segment_key进行时间范围查询性能变差是什么原因
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
8月前
|
SQL DataWorks 数据处理
DataWorks产品使用合集之假设存在时间戳字段: 假设源表有一个记录数据更新时间的字段,如何设置过滤条件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
36 1
|
8月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用问题之ods层离线同步任务,数据源的一张表新增了字段。如何更改可以不影响当前节点和下游任务的运行
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
SQL
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
153 0
|
9月前
|
SQL 存储 关系型数据库
group by语句查询如何确保保留重复数据
group by语句查询如何确保保留重复数据
129 0
|
9月前
|
SQL 数据库
SQL标识列实现自动编号的步骤和技巧以及优势
SQL标识列实现自动编号的步骤和技巧以及优势
159 0
|
编译器 应用服务中间件 数据库连接
解决C#运行程序修改数据后数据表不做更新的问题
解决C#运行程序修改数据后数据表不做更新的问题
155 0
|
存储 SQL Java
Mysql数据库表字段设计优化(状态列)
初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。
686 0
Mysql数据库表字段设计优化(状态列)
|
SQL 关系型数据库 MySQL
你会不会用mysql查询近7个月的数据?没有记录默认为空
你会不会用mysql查询近7个月的数据?没有记录默认为空
233 0
你会不会用mysql查询近7个月的数据?没有记录默认为空