我已经为表创建了一个 View :
CREATE VIEW anonymous_table
AS SELECT id, value FROM sensitive_table
并希望以某种方式混淆敏感表的 id
字段,例如 MD5 哈希或类似的东西,以便查询 View 的人看不到实际的 id
。在 Hive 中执行此操作的好方法是什么?
最佳答案
一些选项:
根本不要在您的 View 中包含 ID:
CREATE VIEW something AS SELECT "HIDDEN ID", value from sensitive_table;
如果您仍然需要为每条记录提供一个不同的键,您可以编写一个 UDF 来执行您喜欢的任何转换:
添加 JAR mycode.jar; 创建临时函数哈希为“com.example.MyUDF”; 创建 VIEW something as SELECT hash(id), value from sensitive_table;
奖励:鉴于您的用户无论如何都只能查看敏感表,您可以在 ID 到达 hive 之前对其进行哈希处理吗?老实说,这可能是最好的选择。
无论哪种方式,如果您正在处理 ID,如果人们仍然需要依赖 ID 进行加入/聚合等,那么您需要一个稳定的哈希函数。
关于hadoop - 如何混淆 Hive View 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016606/