Flink SQL 的数据脱敏解决方案
💡
原文中文,约5700字,阅读约需14分钟。
📝
内容提要
本文介绍了 Flink SQL 的数据脱敏解决方案,支持面向用户级别的数据脱敏访问控制。该方案类似于离线数仓 Hive 中 Ranger Column Masking 方案。文章详细介绍了数据脱敏的基础知识和业务流程,并提供了 Flink SQL 数据脱敏解决方案的详细步骤和示例测试。
🎯
关键要点
- Flink SQL 的数据脱敏解决方案支持用户级别的数据脱敏访问控制。
- 数据脱敏是一种保护敏感数据的技术,通过替换敏感数据为虚假数据来防止未经授权的访问。
- 管理员需要配置用户、表、字段和脱敏条件以实现数据脱敏。
- 用户在查询数据时,系统会根据其脱敏条件生成不同的查询结果。
- Hive 中已有 Ranger 支持字段数据的脱敏控制,但 Flink 还未支持,因此需要自研解决方案。
- Flink SQL 数据脱敏解决方案通过解析 SQL 生成抽象语法树(AST)并应用脱敏条件。
- 使用自定义 Calcite SqlBasicVisitor 遍历 AST,替换需要脱敏的字段。
- Flink 支持 Hive Catalog,因此可以调用 Hive 的系统函数实现脱敏策略。
- 测试用例展示了如何根据脱敏条件生成新的 SQL 查询,确保用户只能看到脱敏后的数据。
➡️