【问题标题】:How do I obfuscate a column in a Hive view?如何混淆 Hive 视图中的列?
【发布时间】:2012-06-13 14:04:09
【问题描述】:

我已经为表格创建了一个视图:

CREATE VIEW anonymous_table
AS SELECT id, value FROM sensitive_table

并希望以某种方式混淆敏感表的id 字段,例如MD5 哈希或类似的东西,以便查询视图的人看不到实际的id。在 Hive 中执行此操作的好方法是什么?

【问题讨论】:

    标签: hadoop md5 hive hue


    【解决方案1】:

    一些选项:

    • 不要在视图中包含 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 进行加入/聚合等,那么您需要一个稳定的散列函数。

    Here is the link to how to create a UDF

    【讨论】:

    • 谢谢。我有 UDF 但很难编译它:stackoverflow.com/questions/11019465/…
    • 马特感谢所有帮助。你知道我可以在哪里添加代码来自动实现ADD JAR mycode.jar; CREATE TEMPORARY FUNCTION hash as 'com.example.MyUDF';,而不必每次打开配置单元会话时都输入它吗?
    • 是的,您可以在 hive/bin 目录或用户的主目录中拥有一个 .hiverc 文件。当你启动 shell 时,它会自动运行 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2014-10-15
    • 1970-01-01
    • 2020-09-05
    • 2023-03-28
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多