Hive编程指南--管理表和外部表

管理表: 

管理表也被称为内部表。因为这种表,hive会或多或少的控制着数据的生命周期,正如我们所看见的,Hive默认情况下会将这些数据存储在配置项hive.metastore.warehouse.dir

(例如,/user/hive/warehouse)所定义的目录下。

当我们删除一个管理表时,hive也会删除这个目录中的数据,但是,管理表不方便和其他工作共享数据。例如,假设我们有一份由pig或者其他工具创建并且主要由这一工具使用的数据,同时我们还想使用hive在这份数据上执行查询,可是没有给予hive对数据的所有权,我们可以创建一个外部表指向这份数据而不需要对其具有所有权。

外部表:

create external table hive_part_sale_detail(            
             Z0PLANT    string             
            ,MATERIAL   string             
            ,ZOF_TYPE   string             
            ,RPA_CST    decimal(17,2)      
            ,RPA_SAT    decimal(17,2)      
            ,RPA_ETS2   string             
            ,SALES_UNIT string             
            ,RPA_RLQ    decimal(17,3)      
            ,BASE_QTY   decimal(17,3)      
            ,RPA_TNR    string )          
    partitioned by (RPA_ETS1 string)       
   ROW FORMAT DELIMITED                    
   FIELDS TERMINATED BY ',' 
   STORED AS orc

   location '/data/stocks';

关键字external告诉hive这个表是外部的,而后面的location....字句则用于hive数据位于那个数据下,因为表是外部的,所以hive并非认为其完全拥有这份数据

因此,删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。

好的软件设计的一般原则是表达意图。如果数据会被多个工具共享,那么可以创建一个外部表,来明确对数据的所有权。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值