Hive 填坑指南

🌹 Hive 填坑指南

🍀 数据表备份

  • 方法1:create table 表名_new as select * from 原表

    create table 表名_new as select * from 原表
    -- 只是复制原数据,其实就是把查询的结果建一个表
    -- 备份表的分区字段会变成普通列,且无法复制表字段的comment备注信息。比较重要的是表的储存大小会变得很大,可能是源分区表的十几倍。
    
    • hive建表create table xxx as select 备份数据条数不一致问题

      create table xxx as select的方式创建的表默认存储格式是text,
      -- 要注意:假如as select的是其他格式的比如parquet,
      -- 则可能会导致一行变多行的情况(因为parquet格式的可能字段包含换行符等),
      -- 所以使用这种方式建表注意加上指定的存储格式。
      create table xxx stored as parquet as select...
      
      
  • 方式2:create table 表名_new like 原表(分区表备份首选)

    create table 表名_new like 原表
    -- 产生与源表相同的表结构,包括索引和主键,只是一份表结构
    -- 数据回插
    insert into 表名_new select * from 原表;
    -- 或者 
    insert overwrite table 表名_new partition(load_date) select *,partition_Col from 原表
    --(注意:select 的列信息中要包含partition字段,放在末尾)
    
  • 方式3:create table schemal.表名 rename to schemal.表名_new

    -- 将原表重命名
    create table schemal.原表 rename to schemal.表名_new
    -- 重新建表
    create table schemal.表名(....)... 
    -- 数据回插
    insert overwrite table 原表 partition(load_date) select *,partition_Col from 表名_new
    
posted @ 2020-12-09 17:25  土豆啊你个马铃薯  阅读(468)  评论(0)    收藏  举报