一、基础概念
1、hive中的所有的数据都存储在hdfs,支持多种数据存储格式(orc、parquet、text等)。
2、创建表的时候,指定行分隔符以及列分隔符,hive会解析数据。
3、hive中基本元素(DB,Table,ExternalTable,Partition,Bucket)。(1)DB,数据库,在hdfs上表现为一个文件夹/user/hive/warehouse/
db_name.db。
(2)Table,内部表,在hdfs上表现为DB下一个文件夹/user/hive/warehouse/db_name.db/table_name。
(3)ExternalTable,外部表,与内部表一样,只是数据存储位置可以指定任意hdfs路径。ps:内部表:表删除后,hdfs数据文件也随之删除;
外部表:表删除后,hdfs数据文件还存在,如需删除,需要执行Hadoop删除命令。(4)Partition,分区,在hdfs上表现为DB的某个分区表下一个文件目录/user/hive/warehouse/db_name.db/table_name/partition_field=partition_value。分区里则会存储数据文件。
(5)Bucket,桶,建表时可以指定桶的个数以及分桶时的字段,在hdfs上会表现为多个数据文件,会根据指定字段的hash分散到不同的数据文件中,分桶的好处是:1、方便抽样,2、提升join的效率。(后续优化会详细讲)。
二、常用DDL详细见