我想使用hive动态分区来覆盖分区表" page_view":
INSERT OVERWRITE TABLE page_view PARTITION(date)
SELECT pvs.viewTime FROM page_view_stg pvs
我的问题是:如果表" page_view_stg"只有" date = 2017-01-01"的数据,但是dest表" page_view"有一个分区" date = 2017-01-02"。所以在运行此查询后,分区" date = 2017-01-02"是否掉线?如果没有,我应该如何使用动态分区处理这种情况?
由于
答案 0 :(得分:0)
使用动态分区查询将仅覆盖源数据集中存在的分区。在您的情况下,如果源表不包含此类日期,partition "date=2017-01-02"
将保持不变。如果要删除它,最快的方法是执行alter table drop partition
语句,因为这是元数据操作。您从目标表中选择源中不存在的分区,并使用shell生成drop语句。或插入新表,删除旧目标,然后重命名。