我为表创建了一个视图:
CREATE VIEW anonymous_table
AS SELECT id, value FROM sensitive_table
并希望id
以某种方式混淆敏感表的字段,例如 MD5 哈希或类似的东西,以便查询视图的人看不到实际的id
. 在 Hive 中执行此操作的好方法是什么?
一些选项:
根本不要在视图中包含 ID:
CREATE VIEW something AS SELECT "HIDDEN ID", value from sensitive_table;
如果您仍然需要为每条记录提供一个不同的键,您可以编写一个 UDF 来执行您喜欢的任何转换:
添加 JAR mycode.jar; CREATE TEMPORARY FUNCTION hash as 'com.example.MyUDF'; CREATE VIEW SELECT hash(id),来自sensitive_table的值;
奖励:看到您的用户无论如何都可以查看敏感表,您可以在 ID 到达配置单元之前对其进行哈希处理?老实说,这可能是最好的选择。
无论哪种方式,如果您正在处理 ID,如果人们仍然需要依赖 ID 来加入/聚合等,那么您需要一个稳定的散列函数。