生成唯一的客户ID /在配置单元中插入唯一的行

sak*_*ake 2 java mysql sql hadoop hive

我需要根据客户名称和地址将唯一行插入到配置单元表中.

无论如何我们可以使用客户名称和地址生成独特的价值吗?我希望生成如下所示的unique_value列,并选择具有不同unique_value的行.

例如,如下所示我想生成unique_value列

{customer_name} {address} {unique_value}

奥马尔街1号111

ryan stree2 222

奥马尔街1号111

或任何其他方法也赞赏!

Ama*_*mar 7

你可以尝试两件事.您可以尝试使用UUID,但会为每行生成唯一ID.这样的事情会做:

select table("java.util.UUID","randomUUID"),customer_name,address,unique_value from table_name

但是,如果您计划根据名称和地址使用唯一键,则可以连接两个字段并获取结果字符串的哈希值(请参阅哈希函数的详细信息:https://cwiki.apache.org/confluence/ display/Hive/LanguageManual + UDF).这将确保相同的名称和地址获得相同的密钥.这个查询应该足够了:

从table_name中选择customer_name,address,hash(concat(customer_name,address))