Hive 配置单元动态分区会更新所有分区吗?

Hive 配置单元动态分区会更新所有分区吗?,hive,Hive,我想使用配置单元动态分区覆盖分区表“页面视图”: 我的问题是:如果表“page_view_stg”只有“date=2017-01-01”的数据,而dest表“page_view”有一个分区“date=2017-01-02”。那么在运行这个查询之后,分区“date=2017-01-02”是否会被删除?如果不是,我应该如何使用动态分区处理这种情况 谢谢使用动态分区的查询将只覆盖源数据集中存在的分区。在您的情况下,partition“date=2017-01-02”将保持不变,如果源表中不包含此类日期

我想使用配置单元动态分区覆盖分区表“页面视图”:

我的问题是:如果表“page_view_stg”只有“date=2017-01-01”的数据,而dest表“page_view”有一个分区“date=2017-01-02”。那么在运行这个查询之后,分区“date=2017-01-02”是否会被删除?如果不是,我应该如何使用动态分区处理这种情况


谢谢

使用动态分区的查询将只覆盖源数据集中存在的分区。在您的情况下,
partition“date=2017-01-02”
将保持不变,如果源表中不包含此类日期。如果要删除它,最快的方法是执行
altertabledroppartition
语句,因为这是元数据操作。您可以从源表中不存在的目标表中选择分区,并使用shell生成drop语句。或者插入到新表中,删除旧目标,然后重命名。

使用动态分区的查询将只覆盖源数据集中现有的分区。在您的情况下,
partition“date=2017-01-02”
将保持不变,如果源表中不包含此类日期。如果要删除它,最快的方法是执行
altertabledroppartition
语句,因为这是元数据操作。您可以从源表中不存在的目标表中选择分区,并使用shell生成drop语句。或者插入到新表中,删除旧目标,然后重命名

INSERT OVERWRITE TABLE page_view PARTITION(date)
   SELECT pvs.viewTime FROM page_view_stg pvs