Hive和不同关系型数据库的差异
来源:互联网 发布:知乎 边牧犬舍 北京 编辑:程序博客网 时间:2024/06/06 12:27
Hive采用了SQL的产应语言HQL,因此很容易理解为数据库。Hive和数据库除了拥有类似的查询语言,接下来就阐述Hive 和数据库的差异。
数据库可以在Online的应用中,但是Hive是为数据仓库设计。
查询语言:由于SQL被广泛的应用在数据仓库中,因此针对Hive的特征设计了类SQL的查询语言HQL。
数据存储位置:Hive是建立在Hadoop之上的,所有Hive的数据都是存储到HDFS中的。
而普通数据库则将数据保存到块设备或者本地文件系统中。
数据格式:Hive中没有定义专门的数据格式,数据格式根据客户需求自己指定,有需要三个属性:列分隔符,
行分隔符以及读取文件数据的方法。由于在加载数据的时候不需要从用户数据格式到Hive定义是数据格式,因
在加载数据的时候不需要对数据本身进行任何修改,只是将数据内容复制或者移动到HDFS目录中。
普通数据库都会有自己的储存引擎,定义自己的数据格式,所以用到普通数据库时数据都会按照一定的组织存储,
所以数据加载的时候会比较耗时。
注:(列分隔符通常为空格,“\t”,"\x001" 行分隔符“\n” 默认的文件格式 TextFile, SequenceFile以及RCFile)
数据更新:hive数据库是针对数据仓库设计的而数据仓库的内容是读多写少,因此hive中不支持对数据的改写和添加
所有的数据都是加载的时候被确定好。而普通数据库可以进行修改,因此可以使用INSERT INTO ..VALUES添加数据,
使用UPDATE..SET修改数据。
索引:hive是不对数据进行任何处理的甚至不对数据进行扫描,因此也没有对数据某些Key简历索引。hive要访问数据中满足条件是需要暴利扫描整个数据,因此广泛问延迟较高。由于MapReduce的引入Hive可以并行访问数据,因此即使没有索引对于大数据的访问,hive仍然会体现优势。普通数据库中通常是对一个或者几个简历索引,因此对于少量的特定的数据的访问数据库效率高,较低的延迟。
hive的基本组件;大体分为以下几部分:用户接口(UI),驱动,编译器,元数据(Hive系统参数数据)和执行引擎。
用户接口UI包括:命令行CLI,WEB界面,JDBC/ODBC接口;
驱动: 接收用户提交的查询的HQL
编译器: 解析查询语句,执行语法,生成执行计划;
元数据:解析查询语句,执行语法分析,生成执行计划;
Hive中包含4中数据模型:Tabel、ExternalTable、Partition、Bucket。
- Hive和不同关系型数据库的差异
- Hive和关系型数据库的区别
- pig hive hbase之间的关系和差异
- hive3:hive和关系型数据库RDBMS的异同
- hive仓库和关系型数据库的对比
- Hive 和普通关系数据库的异同
- Hive是什么,Hive与关系型数据库的区别
- 不同数据库中substring的差异
- 【数据库关系模型之关系代数】θ连接,等值连接和自然连接之间的差异
- 不同版本iOS的特性和差异
- hive和hbase的关系
- MongoDb的基本使用以和关系性数据库的基本差异
- sqoop导入关系型数据库的数据至hive
- Hive体系结构(二)Hive的执行原理、与关系型数据库的比较
- Hive与关系数据库的区别
- Hive定义、Hive与HBase关系、Hive与RDBMS的关系、数据库与数据仓库的区别
- 关于数据库DBM不同造成的SQL语句差异
- 不同浏览器的差异
- 递归函数详解
- 面试-平安健康保险
- Spring MVC框架中使用AJAX
- 基于深度学习的视频检测(五) sort与deep_sort
- bzoj1046: [HAOI2007]上升序列
- Hive和不同关系型数据库的差异
- 9117-MMA几种具有分离背板(split backplane)功能选件的区别
- 旅行家的预算
- xml学习笔记⑤xpath技术
- 欢迎使用CSDN-markdown编辑器
- Link-Cut-Tree
- java与mysql时间类型对应
- Python学习笔记之列表
- python之List和Tuple类型