ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HIVE:直接建表,like建表,as 建表小结

2019-06-22 19:52:06  阅读:256  来源: 互联网

标签:comment 建表 like 方式 创建 分区 HIVE


       工作中,根据场景不同,可能建表方式不同,有时候用like、as方式建表会达到事半功倍的效果,下面是小白总结的三种创建表的方式。

1、使用create命令创建一个新表

create命令建表,参数不同,也有些许的区别,下面来看一下,创建一个带有分区的表,分区按天,取名为d

可以看到分区是用partitioned by方式,指定分区的参数,另外下面的stored as是用来指定存储的方式,这里不止有orc方式,也可以用txtfile方式,但是orc方式是对数据进行压缩的,占很少内存,现在大多数选择这种方式存储,不过也有一些情景下使用txtfile,并且该方式的数据是行式存储,而orc是列式存储。

当然,也可以不创建分区表,那么去掉partitioned的指定就可以。

USE database;
CREATE TABLE tablename(
     orderid bigint	comment '订单号',
     uid string	comment '用户id',
     orderdate date comment '预订日期'
	 )
 COMMENT 'table comment'
 PARTITIONED BY(d STRING COMMENT 'date')
 STORED AS ORC;

2、使用like创建表

这种方式实质就是复制表结构。在工作中,如果你有一个已经存在的表,现在想创建一个一模一样的表,这个时候这个方法就很省时省力了。复制时,只会复制表结构,不会复制表中属性值(包扣表的分区以及存储格式之类的)

use database;
create table tablename1 like  tablename;

3、使用as创建表

这种方式是把一张表的某些字段抽取出来,创建成一张新表。

这种方式需要注意以下几点:

1.as只会复制属性以及属性值到新的表中

2.使用as创建的表,并不会带原表的分区(分区丢失),并且分区的字段变成一个正常的字段,没有分区的效用,还有一些字段的约束等(可以通过describe formatted查看)

use database;
create table tablename1 as   
select *  from tablename
 where d = '2019-01-01'
;

      以上就是三种建表方式啦,各有各的好处吧,可以视情况而定,而不是一直用第一种建表方式~

标签:comment,建表,like,方式,创建,分区,HIVE
来源: https://blog.csdn.net/Jarry_cm/article/details/92619107

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有