Hive编程指南-表创建、内部表、外部表

        摘要:本文主要介绍了Hive创建表的一些知识,包含内部表、外部表、分区和分桶等。

一、 表创建基本知识

一般创建sql如下

create table ods_uba.lin_test
(
   operate_no           string,
   dev_no               string,
   user_id              string,
   start_time           string
)
PARTITIONED BY (start_date string) 
 CLUSTERED BY (start_time)
 INTO 16 BUCKETS
 STORED AS ORC tblproperties("parquet.compress"="SNAPPY");

partitioned by 是创建分区,其中start_date是分区字段

CLUSTERED BY是分桶字段,这里将数据分成了16个桶,字段是start_time

STORED AS 是数据存储类型

查看表结构如下:


一些相关命令
SHOW TABLES; #查看所有的表
SHOW TABLES '*TMP*'; #支持模糊查询
SHOWPARTITIONS TMP_TABLE; #查看表有哪些分区
DESCRIBE TMP_TABLE; #查看表结构

当然,也可以不分区,不分桶。

基本信息:

1、表:一般说的hive表都是指内部表,Hive中的表在HDFS中都有相应的目录用来存储表的数据,目录可以通过${HIVE_HOME}/conf/hive-site.xml配置文件中的 hive.metastore.warehouse.dir属性来配置,一般默认的值是/user/hive/warehouse(这个目录在 HDFS上),。如果我有一个表lin_test,那么在HDFS中会创建/user/hive/warehouse/lin_test目录(这里假定hive.metastore.warehouse.dir配置为/user/hive/warehouse);lin_test表所有的数据都存放在这个目录中。,当然,外部表可以配置其它hdfs来映射文件。可以使用如下命令来查看表对应hdfs的文件:

2、外部表:Hive中的外部表和表很类似,只不过是建表进可以指定加载的hdfs目录,也可以不指定后头根据需要再进行加载。如果外部表使用hive命令删除表分区,对应的hdfs文件是不会被删除。外部表比较灵活,不止可以关联到hdfs文件,也可以关联到hbse表。其建表和内部表稍有不同,但是可用的数据类型都是一样的。

3、分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值