如何使用pig

时间:2017-01-31 17:09:36

标签: apache-pig

我需要通过使用PIG实现类型1和类型维度表来执行小型POC。

类型1 - 覆盖旧值。在此方法中,不会在数据库中保留维度更改的历史记录。旧的维度值只是被新的维度覆盖。这种类型易于维护,并且通常用于由处理校正引起的数据变化(例如,删除特殊字符,纠正拼写错误)。

改变之前:

Customer_ID Customer_Name   Customer_Type
1   Cust_1  Corporate

改变之后:

Customer_ID Customer_Name   Customer_Type
1   Cust_1  Retail

类型2 - 创建新的附加记录。在此方法中,维度更改的所有历史记录都保存在数据库中。通过向维度表添加具有新代理键的新行来捕获属性更改。先行和新行都包含自然键(或其他持久标识符)作为属性。此方法中还使用了“生效日期”和“当前指标”列。可能只有一条记录的当前指标设置为“Y”。对于“生效日期”列,即start_date和end_date,当前记录的end_date通常设置为值9999-12-31。在类型2中引入维度模型的更改可能是非常昂贵的数据库操作,因此不建议在将来可以添加新属性的维度中使用它。

改变之前:

Customer_ID Customer_Name   Customer_Type   Start_Date  End_Date    Current_Flag
1   Cust_1  Corporate   22-07-2010  31-12-9999  Y

改变之后:

Customer_ID Customer_Name   Customer_Type   Start_Date  End_Date    Current_Flag
1   Cust_1  Corporate   22-07-2010  17-05-2012  N
2   Cust_1  Retail  18-05-2012  31-12-9999  Y

我们也可以基于这两个来实现一个小POC。

请帮助!!

1 个答案:

答案 0 :(得分:0)

Pig不支持过度压缩现有数据,因此您无法仅使用Pig实现它。但是如果你在Hive中创建你的表,并使用Hcatalog将数据插入到表中,以便在Pig中处理数据,它应该可以工作。