优点
1.高可靠、高容错
2.类SQL语法,大量内置函数
3.可扩展,自定义存储格式
4.多接口
缺点
1.默认使用MapReduce离线搜索引擎,所以延迟较高
2.不支持物化视图,只能通过命令行
3.不适用OLTP业务
4.暂不支持存储过程,只能通过逻辑存储来实现
架构
1.JDBC: 连接的接口
2.Thrift Server: 提供接口,受理接口接入的请求
3.Driver: 包括:Compiler——编译SQL语句并转化到MR任务;Opimizer——优化器,对MR任务进行优化;Executor——按照任务依赖关系分别执行MR任务
4.WebUI: 提供可视化界面
5.MetaStore: 存储元数据
托管表和外部表
托管表
把数据移到仓库目录的表,Hive默认创建托管表,由Hive来管理数据,因为在本地,读的快,但占空间,而且托管表删除时所有数据都删除了
外部表
不把数据存在仓库里,只记录一个链接指明数据存在某个地方,不占空间,但延迟高,删除外部表时删的是元数据和链接
数据库、数据仓库对比
1.两者定义
(1)数据库: 面向业务,业务中通常使用数据库进行数据读写操作
(2)数据仓库: 数据库的集合体,里面存储了多个数据的数据库,所以并不适合在业务中进行使用
2.对比
(1)数据库的数据往往由于其面向于业务所以数据都是最新的,但是数据仓库的数据一般来说都会是历史性的数据,所以数据库一般用于面向于正常的操作式业务,而数据仓库往往面向的是数据分析和数据挖掘
(2)一般的操作业务比如商场的数据库为OLTP型业务,面向对象主要为客户;而OLAP型业务主要是面向于分析,对象为数据分析人员