Hive基础总结及练习(自己总结的精华,基础复习只看这一篇就够了)

重点内容:

Hive的数据类型

Hive的Tables(External 和 Internal)

Hive的Partitions(Static和Dynamic)

选择掌握  Hive Bucket Tables

 

期间我要穿插一些练习,因为上课时做的练习完全不够。

1. 两种连接Hive的工具

(1)通过beeline

(2)通过command Line命令行

使用方法如下图

解释:

-e 表示执行sql语句

-f 表示从一个文件中执行sql语句

beeline --hivevar key=value  定义hive的变量,这样变量就可以在hive语句中使用了。

 

两种模式

命令行模式:执行一个命令,返回一个结果,整个过程是阻塞的。

生产环境绝大部分采用命令行模式来部署。

你比如hive -e  ' select * from table a '  这就是命令行模式

 

交互模式:进入就停在hive模式(类似进入python模式)

如果没有输入-e或者-f ,它就会自动进入shell交互模式。

 

Beeline和CLI方式  两者命令比较

beeline方式的命令大部分要加! 

 

实践:

Beeline登陆hive,都需要一个jdbc的url :

beeline  -u  "jdbc:hive2://localhost:10000/default"  (生产环境没这么短)

10000是连接hive 1.2.1

10500是连接hive 2.1.0

10016是连接spark sql

 

2. Data type 

主要的4种原始数据类型:INT  DECIMAL(小数) DOUBLE  STRING 

为什么主要是STRING,因为大数据环境对char和varchar类型支持的不太好。

 

复杂数据类型:

STRUCT  通过“.”来访问

MAP和ARRAY访问方式类似

 

 

 模拟面试:

大数据数据建模在数据类型方面的最佳实践(对比数据仓库)?

Hive数据建模很简单,不再纠结数据类型的使用空间,而是关注使用场合以及对函数的兼容程度。

(就是刚才说的为什么用string,不用char和varchar)

 

3.元数据总结

Hive有哪些元数据,

包括database table  partition  buckets  row column views  index

面试题:如何知道当前所在数据库?

命令:select current_database();  

 

4. hive sql基础命令

(1)database

create database myhivebook; 建数据库

show databases; 查看有哪些数据库

use myhivebook; 切换到该数据库

desc database myhivebook; 显示数据库信息

可以看到这个database的位置,Hive默认是把数据库创建在 /user/hive/warehouse目录下的,

你是内部表的话,默认都会在这个目录下,如果是default数据库的内部表就在此目录下。

如果是其他数据库的内部表,创建了数据库,比如叫a,那就会在这个目录下创建一个叫a.db的目录下,以后内部表就放在a.db下。

drop database myhivebook; 删除数据库

 

默认情况:

[root@data1 ~]# hdfs dfs -ls /user/hive/warehouse/
Found 7 items
drwxrwxrwt   - root hive          0 2017-04-07 14:24 /user/hive/warehouse/a.db
drwxrwxrwt   - root hive          0 2017-03-27 14:13 /user/hive/warehouse/abc
drwxrwxrwt   - root hive          0 2017-04-07 14:22 /user/hive/warehouse/b.db
drw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值