【Hive】DDL
DDL介绍
-
什么是DDL
DDL由CREATE、ALTER、DROP三个所组成,但并不涉及表内数据的操作。 -
建表语法
创建的表在HDFS的/user/hive/warehouse/dbname.db
-
原生数据类型
-
复杂数据类型
-
SerDe
包含序列化和反序列化对象、读取和写入对象 -
显式类型转换
CAST('100' as INT)
转换不成功为NULL -
内部表与外部表
内部表删除的时候会删除元数据和具体数据,外部表删除的时候会只会删除元数据,HDFS的数据不会被删除。
-
分区表
为什么需要分区表?分区表可以像索引一样减少全表扫描
分区字段不能是表中的字段
分区表可以避免全表扫描 -
多重分区表
-
分区表总结
-
分桶表
分区表是拆分成若干个独立的文件夹
分桶表是拆分成若干个独立的小文件
语法练习
1、分隔符为\t
row format delimited fields terminated by "\t";
2、分割
木偶奇遇记:288-俘虏兄弟:299
使用下面的创表语句,有一个字段是map类型,元素之间用-分割,key和value用:分割
collection item terminated by '-'
map keys terminated by ':'
3、分区表加载数据(静态分区)
load data local inpath 'xxx' into table table_name partition(role='xxx')
在HDFS上生成文件夹
4、分区表加载数据(动态分区)
insert into table t_all_hero_part_dynamic partition(role)
select tmp.*, tmp.role_main from t_all_hero tmp;
根据查询结果自动分区,将t_all_hero的role_main列作为分区列,进去HDFS可以看到按照列划分文件夹
事务表
早期没有设计事务功能,后来的事务表可以插入和修改
视图
虚拟表,没有实际的数据
create view v_usa_covid19 as select * from t_usa_covid19 limit 5;
- 好处
1、保护数据。比如只暴露用户名不暴露密码,只暴露某个部门的
2、降低查询的复杂度,优化查询语句,但没有优化查询小v了。把子查询的封装为视图
物化视图
提前计算好,将结果保存起来,可以加快查询效率。
物化视图是一个真实的表。
开启重写功能可以利用物化视图。