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 查询,确保用户只能看到脱敏后的数据。
➡️

继续阅读