【发布时间】:2012-06-13 14:04:09
【问题描述】:
我已经为表格创建了一个视图:
CREATE VIEW anonymous_table
AS SELECT id, value FROM sensitive_table
并希望以某种方式混淆敏感表的id 字段,例如MD5 哈希或类似的东西,以便查询视图的人看不到实际的id。在 Hive 中执行此操作的好方法是什么?
【问题讨论】:
我已经为表格创建了一个视图:
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), value from sensitive_table;
奖励:既然您的用户无论如何都可以查看敏感表,那么您可以在 ID 到达配置单元之前对其进行散列吗?老实说,这可能是最好的选择。
无论哪种方式,如果您正在处理 ID,如果人们仍然需要依赖 ID 进行加入/聚合等,那么您需要一个稳定的散列函数。
【讨论】:
ADD JAR mycode.jar; CREATE TEMPORARY FUNCTION hash as 'com.example.MyUDF';,而不必每次打开配置单元会话时都输入它吗?