摘要:本文主要介绍了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的文件:
3、分