Java教程

Hive数据库操作

本文主要是介绍Hive数据库操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、查看数据库

2、创建数据库,db_hive为数据库名;

显示创建后的数据库

 创建数据库db_hive2,并指定在HDFS上的存储位置:

location 指定数据库在HDFS中的地址,不指定时默认使用数据仓库地址。

 上述命令执行成功后,若HDFS目录/HBase/data/hbase目录中不存在db_hive2则会自动创建。

创建db_hive,并添加注释“hive database”:

commect 添加注释:

创建数据库db_hive,并定于相关属性

with dbproperties 指定数据库的属性信息,属性名与属性值均可以自己定义

3、修改数据库

修改数据库的自定义属性 :

创建testdb数据库,然后使用desc命令查看testdb的数据库默认描述信息

执行命令给testdb添加自定义属性createtime:

 

修改数据库所有者:

修改数据库testdb的所有者用户为root1,

此时查看数据库testdb的描述信息,发现所有者用户变为了root1:

 4、选择数据库

选择一个数据库作为后续的HIVEQL的执行数据库,

 hive中默认了一个数据库default,切换为默认命令;

5、删除数据库

 删除数据库testdb,若数据库中无表数据则删除成功,若数据库中有表数据则抛出异常

删除数据库testdb,无论数据库中是否如有表数据都将强制删除;

 6、显示数据库

 

过滤显示数据库前缀为db_hive的所有数据库

 查看当前所使用的数据库

 

HIVE表操作 

 hive表由实际存储的数据和元数据组成,实际数据一般存储与HDFS中,元数据一般存储与关系型数据库中;

内部表

1、创建表,使用数据库test_db:

 创建student表,其中字段id为整型,字段name为字符串:

然后查看数据仓库目录生成的文件,可以看到数据仓库目录中的test_db文件夹下有一个名为student的文件夹

2、查看表结构

显示详细表结构,包括表的类型以及在数据仓库的位置信息:

3、向表中插入数据

 

 4、查询表中数据

5、将本地文件导入hive 

新建学生分数表score,其中学号sno为整型,姓名name为字符串,得分为score为整型,并指定tab键作为字段分隔符:

在本地目录/home中新建score.txt文件。并写入以下内容,列之间用tab键隔开:

查询表的所有数据

 

 查看数据仓库对应的数据文件

6、删除表

 

外部表 

 1、创建外部表时,如果不指定location关键字,则默认将表创建于数据仓库目录中:

在数据库test_db中创建外部表emp: 

 

 上述可以看到生成了一个文件夹emp,不用的文件可以删除,可以很清晰的保留需要的文件 

 创建外部表时,如果指定location关键字,则将表创建于指定的HDFS位置:

在数据库test_db中创建外部表emp2,并指定在HDFS中的存储目录为/HBase/data,表字段分隔符为Tab键:

在本地目录/home/hadoop下创建文件emp.txt,并将文件导入表emp2.

查看HDFS目录/input/hive中生成的文件

 

查看导入的文件内容

 

查看表emp2的数据

 

删除表时不会删除实际数据,但元数据会被删除

 在数据库test_db中创建外部表emp3,并指定表数据所在的hdfs中的存储目录为

/HBase/data 

 

 查询emp3的所有数据

分区表 

将student表的年龄age和性别列gender同时指定为分区列:

 加载数据命令:

创建分区表

在数据库testa_db中创建分区表student2,表student包含四列,将年龄作为分区列:

 

 导入数据,并指定分区值为age=17

查看HDFS数据仓库中表student目录中的文件,发生生成了一个名为age=17的文件夹,且文件fiel1.txt也导入发哦了该文件夹中, 

 

 查询分区表数据

 

使用关键字union关键字将多个分区联合查询

删除分区

 

同时删除多个分区

 

 查看分区

分桶表 

一个分区会存储一个目录,数据文件存储在目录中,一个分桶存储一个文件,数据内容存储在该文件中

1、分桶操作

查看表user_info的描述信息

 

 2、向分桶表中导入数据

发现上述错误,Hive默认不支持通过load命令导入数据到分桶表,可以通过中间表导入,先将数据导入一张中间表中,然后通过insert ....select的方式,将普通表的数据导入到分桶表:

创建一张中间表

 

 向中间表中导入数据

向中间表的数据导入到分桶表

 

 

 

这篇关于Hive数据库操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!