目录
一、Hive数据类型
1、基本数据类型
2、集合数据类型
3、类型转换
二、DDL数据定义
1、创建数据库
2、查询数据库
2.1 显示数据库
2.2 显示数据库的详细信息
3、修改数据库(一般不用)
4、删除数据库
5、创建表
5.1 内部表(管理表)
5.2 外部表
5.3 内部表和外部表的相互转换
6、查看表
7、修改表
7.1 重命名表
7.2 增加、修改和删除表分区
7.3 增加/修改/替换列信息
8、删除表
一、Hive数据类型
1、基本数据类型
2、集合数据类型
案例实操:
注意:
1、对于字段解释的说明:列分隔符就是将by后面指定的符号去分割数据;数据分割符号就是将数组(STRUCT和ARRAY中的数据进行分割),而MAP中每一组数据的kv还需要再进行拆分,就使用第三个分隔符;行分隔符就是一行一行进行解析(默认就是按行,因此可以不写)
2、insert是一条条插入进表,但大数据数据量大,因此我们一般不采用insert的方法,而是将数据提前准备好,然后直接加载到表里去
3、表的数据要用txt文件放在之前创建好的datas中(便于管理),加载入表有两种方法:
第一种:创建表的时候系统会在HDFS形成数据和表的一个映射,只需要将该文件上传到HDFS的/user/hive/warehouse/xxx表中这个文件夹即可(建议使用该种方法)
第二种:使用load data local inpath '/opt/module/hive-3.1.2/datas/test.txt' into table test即可;
4、删除表:drop table xxx;
结果:
select name,friends[0],childrens['xiao song'],address.street from test2;
+-----------+-----------+-------+----------------+
| name | _c1 | _c2 | street |
+-----------+-----------+-------+----------------+
| songsong | bingbing | 18 | hui long guan |
| yangyang | caicai | NULL | chao yang |
+-----------+-----------+-------+----------------+
2 rows selected (0.156 seconds)
//数组通过下标访问,map通过key来访问,结构体通过属性访问
3、类型转换
二、DDL数据定义
1、创建数据库
COMMENT xxx是对该数据库自定义的一个描述
2、查询数据库
2.1 显示数据库
2.2 显示数据库的详细信息
extend可以查看到创建的时间等额外信息
注意:在默认的default库下创建的表会直接放在warehouse目录下,而其他创建的库也会直接放在该目录下(这并不是代表是在default下再创建一个库) ,在HDFS中库会自带一个.db后缀来区分库和表(我们自己可以使用上面创建表的LOCATION来更改存储在HDFS的位置)
3、修改数据库(一般不用)
大部分的信息都不能修改,只能更改一些无关紧要的,因此只需要了解一下就行
4、删除数据库
5、创建表
注意:
表的默认存储位置是在当前库这个目录中,但是我们可以使用LOCATION使其存储位置发生改变。(但是它仍然是属于该库的表,不会因为存储位置改变而改变)
5.1 内部表(管理表)
5.2 外部表
5.3 内部表和外部表的相互转换
6、查看表
show tables;(查看有哪些表)
desc test1;(查看表的部分具体信息,比如字段等)
desc formatted test1;(查看表的全部信息)
7、修改表
7.1 重命名表
7.2 增加、修改和删除表分区
在之后讲表分区的时候再进行说明
7.3 增加/修改/替换列信息
注意:
1、修改列的类型的时候要注意更改后列的类型要比原来的类型大或相等,不然无法更改
2、增加列的时候如果数据没有后面的内容就会赋值为空,同样如果数据的内容比表的列更多也只会读取到能匹配的内容
8、删除表
drop table dept;