hive是一个著名的离线处理的数据仓库,可以通过类SQL语言轻松的访问大量的数据集,也可以访问HDFS中的文件,但是其底层的实现是MapReduce,所以具有较高的可扩展性。...hive具有明显的自己特色,它不支持数据更新,不支持事务和索引,但是具有了更小的分区---桶。同时其具有了并发处理大数据文件的能力。
我们可以认为Hive是MapReduce的翻译器。...了解了MapReduce实现SQL基本操作之后,我们来看看Hive是如何将SQL转化为MapReduce任务的,整个编译过程分为六个阶段:
Antlr定义SQL的语法规则,完成SQL词法,语法解析,将...clipboard.png
分区表:
分区:把数据放在不同的磁盘文件中,就认为是不同的分区,数据库对不同的分区会进行单独的管理,优化,最终的目的是加快我们数据查询的速度,在hive中,把不同的分区分在表中不同的子文件夹中...,模100就被分成100份,因为hash值几乎各不相同,所以模后的结果,分成10份或者100份,每一份的数据量几乎是一样多的,当你hash之后然后模一个数字,分的那些数据量,每一份应该是差不多的,如果这样的话