使用自定义排名在PIG中生成代理键

时间:2014-04-02 19:43:53

标签: apache-pig surrogate-key

我将每天进行PIG转换(每天都有新数据)。我需要为每天提取的数据生成唯一键。什么是最好的方法?如果我表演,那么tomarow的等级会覆盖今天的等级吗?

1 个答案:

答案 0 :(得分:0)

每次开球时,您的排名都会从1开始。如果您想每天生成唯一数据,我建议在concat(rank + date)上使用datafu哈希方法。您最终会得到一个可用作代理键的唯一哈希。

REGISTER datafu-1.2.0.jar
DEFINE SHA datafu.pig.hash.SHA();

S1 = LOAD 'surrogate_hash' USING PigStorage('|') AS (c1:chararray,date:chararray,c3:chararray);
S2 = RANK S1;
S3 = FOREACH S2 GENERATE SHA((chararray)CONCAT((chararray)rank_S1,date)),c1,date,c3;

dump S3;