大数据的那些面试题及答案(三)Hive

1.什么是hive

hive是基于Hadoop的一个用于处理大数据的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

2.为什么要用hive

帮助我们更高效的完成数据分析,MapReduce代码烦杂开发效率低,有了Hive之后,hive使用类SQL的语法完成数据分析,大大提高编写MapReduce的效率·。

3.hive几种基本表类型

内部表、外部表、分区表、桶表

4.内部表(管理表)和外部表的区别

内部表(managed table):
(1) 也叫管理表,数据由hive自身管理,数据存储位置为 hive,metastore,warehouse.dir
(2) 对数据拥有完全的控制权限,删除表时存储在RDBMS上的元数据和存储在HDFS上的数据全部被删除。
(3) 默认创建的表是管理表(内部表)
外部表(external table):
(1) 数据由HDFS管理,数据的存储位置由自己制定。
(2) 删除表时之删除存储在RDBMS上的元数据,存储在HDFS上的数据不会被删除
(3) 需要用external关键字来创建外部表
(4) 外部表可以建立在已经存在的数据上而无需load
(5) 外部表不能使用truncate(清空),因为没有权限。

5.Hive数据仓库与数据库的异同

(1)查询语言不同:hive是hql语言,mysql是sql语言。
(2)数据存储位置不同:hive存储在HDFS上,mysql是存储在磁盘上。
(3)底层执行原理:hive底层是将hql语言转成map reduce,mysql是excutor执行器。
(4)数据延迟性:hive没有索引,所以查询慢,延迟性高,mysql有索引,查询快,延迟性低。
(5)数据规模:hive存储的数据量大,mysql之存储一些少量的业务数据。
(6)数据更新:hive只能读,不能写,mysql支持数据更新。

6.Hive 自定义函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值