zoukankan      html  css  js  c++  java
  • hive drop和恢复partition external table

    在hdfs目录:/user/xx/table/test_external 保存 test_external 表数据

    先建表,使用列式存储格式

    CREATE external TABLE `test_external` (`schedule_no` STRING, `shop_code` STRING, `goods_code` STRING `created` STRING)
    PARTITIONED BY (day_mart string)
    ROW FORMAT SERDE   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    STORED AS INPUTFORMAT   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
    OUTPUTFORMAT   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
    LOCATION  '/user/xx/table/test_external'
    

    插入数据后,drop 表

    drop table test_external

    此时观察hive下的文件,/user/xx/table/test_external存在,且有对应分区文件夹
    因此drop外部表时数据确实还在,单表已经不存在了

    重新create table

    再次执行建表语句
    成功后,使用show partitions test_external 发现没有分区信息返回,从此处可以了解到,重新create 带分区的table后,分区文件不是自动应用到表上的,原因是表的metadata没有更新

    执行修复语句

    msck repair table test_external;

    再次执行show partitions test_external;
    数据正常
    查询数据
    select * from test_external where day="20190527"
    可返回数据

    以上亲证

  • 相关阅读:
    解析Javascript事件冒泡机制
    LeetCode——Flatten Binary Tree to Linked List
    流动python
    HDU2586
    Cannot find ActionMappings or ActionFormBeans collection
    reactor设计模式
    简单的Ajax应用实例
    CString——Left、Right、Find、ReverseFind
    MATLAB新手教程
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/windliu/p/11102257.html
Copyright © 2011-2022 走看看