大数据中hive与传统并行数据库mysql的区别

大数据中hive与传统并行数据库mysql的区别

由于hive采用了类似sql的查询语言HQL(Hive Query Language),所以对于初学者而言很容易把这二者搞混,但是事实上除了类似的查询语言外,二者并没有其他相同点。

#区别

二者的区别可以从数据量大小展开来讲

  1. 查询语言
    为了便于熟悉SQL的java工程师开发,所以针Hive专门设计了类类SQL的查询语言,HQL;

  2. 数据存储位置;
    hive的数据是存在hdfs的,数据库的数据是存在快设备或者文件系统中的;

  3. 数据更新
    数据库的数据更新是可以做到即时更新的(频繁的增删改查),而hive的数据是读多写少的(一次写入,多次读出),同时他是基于hadoop,所以它的操作都是追加操作,很难对数据进行修改;

  4. 索引
    hive没办法添加索引(同时也没必要进行添加索引,毕竟数据梁在那摆着),同时他是基于mr的,所以即使是暴力扫描全部数据,在大数据量的前提下,并行访问数据仍有很大优势;

  5. 执行
    hive的执行引擎是mr,MySQL的执行引擎是innerdb;

  6. 执行延迟
    hive因为mr的存在,所以他的操作仍是高延迟的,而数据库的执行延迟要低很多;

  7. 可拓展性
    hvie拥有很高的可拓展性(毕竟是基于hadoop的),而数据库的拓展性相对来讲就很差,最先进的并行数据库Oracle在理论上的拓展能力也只有100台左右。

  8. 数据规模
    这个就不用说啦,hive的规模要比传统数据库大得多,毕竟人家就是为了搞大数据开发出来的嘛。

上一篇:Windows、Linux(Ubuntu)修改 pip 镜像源


下一篇:W10下MongoDB的简单的基本操作