目前,我们每天删除该表,并运行将数据加载到表中的脚本。脚本需要3-4个小时,在此期间数据将不可用。因此,现在我们的目标是让分析人员可以使用旧的配置单元数据,直到完成新的数据加载执行。
我在hql脚本中通过将每日数据加载到在load_year、load_month和load_day上分区的hive表中,并通过删除分区来删除昨天的数据来实现这一点。但是,pig脚本有什么方法可以实现同样的效果呢?我们可以通过pig脚本修改这个表吗?我不想执行另一个hql来删除pig之后的分区。谢谢
发布于 2016-06-13 17:07:18
从HDP2.3开始,您可以在Pig脚本中使用HCatalog命令。因此,您可以使用HCatalog命令删除配置单元表分区。以下是删除配置单元分区的示例:
-- Set the correct hcat path
set hcat.bin /usr/bin/hcat;
-- Drop a table partion or execute other any Hcatalog command
sql ALTER TABLE midb1.mitable1 DROP IF EXISTS PARTITION(activity_id = "VENTA_ALIMENTACION",transaction_month = 1);另一种方法是在Pig脚本中使用sh命令执行。但是,我在ALTER命令中转义特殊字符时遇到了一些问题。所以,在我看来,第一个是最好的选择。
致敬,罗伯托·塔迪奥
https://stackoverflow.com/questions/37520187
复制相似问题