大数据中hive与传统并行数据库mysql的区别
由于hive采用了类似sql的查询语言HQL(Hive Query Language),所以对于初学者而言很容易把这二者搞混,但是事实上除了类似的查询语言外,二者并没有其他相同点。
#区别
二者的区别可以从数据量大小展开来讲
-
查询语言
为了便于熟悉SQL的java工程师开发,所以针Hive专门设计了类类SQL的查询语言,HQL; -
数据存储位置;
hive的数据是存在hdfs的,数据库的数据是存在快设备或者文件系统中的; -
数据更新
数据库的数据更新是可以做到即时更新的(频繁的增删改查),而hive的数据是读多写少的(一次写入,多次读出),同时他是基于hadoop,所以它的操作都是追加操作,很难对数据进行修改; -
索引
hive没办法添加索引(同时也没必要进行添加索引,毕竟数据梁在那摆着),同时他是基于mr的,所以即使是暴力扫描全部数据,在大数据量的前提下,并行访问数据仍有很大优势; -
执行
hive的执行引擎是mr,MySQL的执行引擎是innerdb; -
执行延迟
hive因为mr的存在,所以他的操作仍是高延迟的,而数据库的执行延迟要低很多; -
可拓展性
hvie拥有很高的可拓展性(毕竟是基于hadoop的),而数据库的拓展性相对来讲就很差,最先进的并行数据库Oracle在理论上的拓展能力也只有100台左右。 -
数据规模
这个就不用说啦,hive的规模要比传统数据库大得多,毕竟人家就是为了搞大数据开发出来的嘛。