hive:建表:普通表 外部表 分区表 桶表

本文详细介绍了Hive中的四种表类型:普通表、外部表、分区表和桶表。重点讨论了它们的创建、数据加载与查询方法,以及各类型的特性和应用场景。对于外部表,强调了其在删除时不会删除HDFS上的数据。分区表则允许按指定字段进行数据组织,提高查询效率。桶表通过哈希取值进行数据分布,适合用于抽样查询。最后,通过实例展示了如何创建和使用桶表。
摘要由CSDN通过智能技术生成

内部表:

默认数据格式为text(TEXTFILE):

CREATE TABLE `ds.ds_ree_t_result_tmp` (
      `workno` int COMMENT '员工工号',
      `employeename` string COMMENT '姓名',
      `amount` string COMMENT '业绩',
      `effectivedate` string COMMENT '生效时间',
      `isleave` string COMMENT '是否离职',
      `leavedate` string COMMENT '离职日期',
      `tag` array<string> COMMENT '标签类型',   --这里指定是个数组类型
      `addtime` string COMMENT '订单生成时间'
);

数据格式为parquet:

CREATE TABLE `dws.test`(
  `source` string COMMENT '来源', 
  `client_id` bigint COMMENT '客户id', 
  `client_name` string COMMENT '客户名称') stored as parquet;

 

外部表

如果数据已经存在HDFS的'/user/hadoop/warehouse/page_view'上了,如果想创建表,指向这个路径,就需要创建外部表:

CREATE EXTERNAL TABLE page_view(
     viewTime INT, 
     userid BIGINT,
     page_url STRING, 
     referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User',
     country STRING COMMENT 'country of origination')
 COMMENT 'This is the staging page view table'
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
 STORED AS TEXTFILE
 LOCATION '/user/hadoop/warehouse/page_view';

创建表,有指定EXTERNAL就是外部表,没有指定就是内部表,内部表在drop的时候会从HDFS上删除数据,而外部表不会删除。

外部表和内部表一样,都可以有分区,如果指定了分区,那外部表建了之后,还要修改表添加分区。

外部表如果有分区,还可以加载数据,覆盖分区数据,但是外部表删除分区,对应分区的数据不会从HDFS上删除,而内部表会删除分区数据。

外部表删除时,不会删除数据,这是与内部表的最大区别,一般80%企业都是 外部表。

指定位置 ,必须在hdfs之上:

自己先创建目录 :

文件如果 直接放到目录下面去,然后就可以直接查询出来,这样的方式是最快最省事的!

可以先创建表目录再放文件也可以。

分区表:

 

指定分区字段,以下示例是按月分区(可以多级分区也就是按多个字段分区):

加载数据:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值