1.内部表和外部表
内部表:不需要关键字声明,删除表元数据和真实数据都会删除。内部表可以直接修改。
外部表:需要external关键字声明,删除表只会删除元数据而不会删除hdfs中的真实数据。外部表修改需要修复:MSCK REPAIR TABLE table_name;
一般都是外部表,内部表是自己使用的中间表时创建。
2. 分区和分桶的区别
分区针对的是数据存储路径,分桶针对的是数据文件。
分区使用的是表外字段,需要指定字段类型;
分桶使用的是表内字段,已经知道字段类型,不需要再指定。
分区通过关键字partitioned by(partition_name string)声明
分桶表通过关键字clustered by(column_name) into 3 buckets声明