赞
踩
create [external] table [if not exists] 表名( 列名1 类型1 [comment '列描述信息'], 列名2 类型2 [comment '列描述信息'], ... )[comment '表描述信息'] [partitioned by (分区字段1 分区字段类型 [comment 分区字段描述信息],分区字段2...] [clustered by (分桶字段1,分桶字段2...)] [sorted by (排序字段1 asc|desc,排序字段2 asc|desc...) into 桶的个数 buckets] [row format delimited fields terminated by '切割符'] -- 进行简单切割 [row format SerDe 'org.apache.hive.hcatalog.data.JsonSerDe'] -- 用于处理json字符串 [row format delimited fields terminated by '切割符' map keys terminated by ':'] -- 用于处理map [stored as 存储格式] -- 行存储默认使用TextFile ,列存储推荐ORC [location hdfs的文件路径] [tblproperties('属性名'= '属性值')];
[external] 加上该关键字则创建的表为外部表.
[if not exists] 判断该表是否已存在,如果存在则不创建.
[partitioned by] 分区字段必须为表中不存在的字段.
避免全表扫描,降低扫描次数,提高查询效率,便于维护数据.
分区相当于分文件夹.
[clustered by] 分桶字段必须为表中已存在的字段.
减少join次数,提高查询效率,方便数据采样.
分桶相当于分文件.
Hive可以将HDFS中的文件映射成表,如果对文件中整行的数据进行呢切割就尤为重要,这就是切割方式的作用.
[row format delimited fields terminated by '切割符']
该方式适合简单的切割.
[row format SerDe 'org.apache.hive.hcatalog.data.JsonSerDe']
该方式适用于json字符串切割.
[row format delimited fields terminated by '切割符' map keys terminated by ':']
该方式适合对map类型切割.
前一个分隔符为对行的简单切割,
map keys terminated by ':' 指的是,使用:对map类型进行切割.
[stored as 存储格式]
默认为TextFile方式的行存储
行存储:
优点:全表扫描效率高(select *)
缺点:字段类型不统一,数据密集度低,列扫描效率低,占用资源多
列存储方式有:ORC,Parquet
优点:字段类型统一,数据密集度高,列扫描查询效率高,占用资源少
缺点:全表扫描效率低(select *)
[location hdfs的文件路径]
可以用来指定该表在HDFS的存储路径(除特殊需求外,不修改)
[tblproperties('属性名'= '属性值')]
可以用来设置内外部表,表创建信息,压缩协议(常用压缩协议一般为:snappy)等.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。