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


相关文章
|
6月前
|
分布式计算 关系型数据库 数据挖掘
实时数仓 Hologres产品使用合集之当使用动态分区管理功能按日期进行分区后,通过主键和segment_key进行时间范围查询性能变差是什么原因
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
6月前
|
SQL DataWorks 数据处理
DataWorks产品使用合集之假设存在时间戳字段: 假设源表有一个记录数据更新时间的字段,如何设置过滤条件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 1
|
6月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用问题之ods层离线同步任务,数据源的一张表新增了字段。如何更改可以不影响当前节点和下游任务的运行
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 BI MaxCompute
SQL 能力问题之输出聚合的维度列的名称,如何解决
SQL 能力问题之输出聚合的维度列的名称,如何解决
|
编译器 应用服务中间件 数据库连接
解决C#运行程序修改数据后数据表不做更新的问题
解决C#运行程序修改数据后数据表不做更新的问题
147 0
|
SQL 分布式计算 MaxCompute
一次性查询一张表所有字段的空值率
一次性查询一张表所有字段的空值率
1823 2
|
PHP
thinkphp获取数据表中的字段信息和数据表的信息
thinkphp获取数据表中的字段信息和数据表的信息
274 0
|
存储 SQL Java
Mysql数据库表字段设计优化(状态列)
初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。
647 0
Mysql数据库表字段设计优化(状态列)
|
SQL 关系型数据库 MySQL
字段数据实例
字段数据实例
104 0
|
SQL 算法 测试技术
Guid算法与标识列(自动增长字段)在表中的应用
Guid算法与标识列(自动增长字段)在表中的应用
186 0
Guid算法与标识列(自动增长字段)在表中的应用

热门文章

最新文章