hadoop - 如何混淆 Hive View 中的列?

标签 hadoop md5 hive hue

我已经为表创建了一个 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 进行加入/聚合等,那么您需要一个稳定的哈希函数。

Here is the link to how to create a UDF

关于hadoop - 如何混淆 Hive View 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016606/

相关文章:

java - 错误: java. io.IOException : Type mismatch in value from map: expected org. apache.hadoop.io.IntWritable,收到org.apache.hadoop.io.Text

java - 如何在maven项目中实现hadoop的源码?

hash - 将 UUID 数字流随机分为 10 个桶

algorithm - 目前最安全的单向加密算法是什么?

python - 安装 python 包时 md5 出现问题

hadoop - 如何设置cron作业以运行map reduce?

hadoop - 在 Hive 中使用排序表

hadoop - 使用 JOIN 优化 Hive 查询,拥有百万条记录

java - Hive 2 JDBCPreparedStatement 抛出错误无法识别表达式规范中 '?' '<EOF>' '<EOF>' 附近的输入

scala - 使用spark.sql的任何表的选择查询有时给出零记录,但是在HIVE CLI中给出相同结果的选择查询