面向GDPR合规:Redshift全库定位含邮箱列的更优实现
Redshift集群GDPR合规数据清理场景方案诉求
核心需求
为满足GDPR合规要求,需删除Redshift集群中所有与删除请求人邮箱地址关联的数据行。由于数仓schema变动频繁、多方团队新增的字段常缺乏完善的文档支撑,需要一套可自动拉取全库所有包含邮箱地址的列、快速校验请求人邮箱匹配范围的自动化解决方案。
初始实现思路
当前已落地的基础流程逻辑如下:
- 拉取全库用户基表清单,通过查询系统表获取所有非内置
pg_*schema下的基表目录,对应SQL为:
SELECT t.table_schema, t.table_name FROM information_schema.tables t WHERE t.table_schema NOT LIKE 'pg_%' AND t.table_type = 'BASE TABLE' ORDER BY t.table_schema, t.table_name;
- 逐字段扫描识别含邮箱的列:编写脚本对遍历到的每个表的每一列做校验,统计列值中包含“@”字符的行数量,将这类字段标记为“含邮箱”列并导出为CSV格式清单。
- 执行合规删除:基于导出的邮箱列清单,逐表遍历所有标记字段,定位并删除匹配请求人邮箱的对应数据行。
优化方向诉求
这套朴素实现虽然可以正常跑通全流程,但逻辑零散、缺乏统一沉淀,希望可以借助动态视图、窗口函数等Redshift原生能力,沉淀一份可实时更新的全库含邮箱列统一清单,减少重复开发工作量,寻求更高效的落地方案。
内容的提问来源于stack exchange,提问作者XaxD
相关产品推荐
相关产品推荐

