Hive除了有分区(Partition),还有分桶(Bucket),上一篇文章《Hive的分区》中介绍了分区,本文接着介绍分桶,以及和分桶经常一起使用的采样(Sampling)。其实不管是分区还是分桶都是为了更好的管理数据。分区将表的数据分到不同的目录存储,从而在查询的时候可以通过where条件过滤一部分数据,减小查询的数据量从而提高性能。但分区的这种机制往往在数据符合以下条件时才会表现的比...
Hive提供了分区的概念,对应到后台就是不同的目录,主要是为了在查询的时候可以提高性能。而分区分为两种:静态分区(Static Partition,以下简称SP):用户指定分区列的值,数据中不包含分区列的值,所以分区与数据没有关系。举个例子比如分区名字为ds=20180922,并不代表分区内的数据都是这天的,这个需要由用户自己保证。静态分区在编译阶段确定。动态分区(Dynamic Parti...
《Hive安装使用》介绍了一下Hive的安装和数据模型,本文主要介绍Hive的架构及查询流程。架构总览先来一张官网的架构图:这幅图清楚的展示了Hive和Hadoop的关系,并且展示了Hive一些重要的组件:UI:主要是Hive的各种客户端。这是用户使用Hive的窗口,包括我们之前使用的HiveCli、Beeline等CLI,以及一些Web GUI接口。用户通过UI来提交自己的操作请求。Dri...
Hive最初由Facebook开发,最后贡献给Apache基金会,最后成为了Apache的顶级项目。Hadoop的出现虽然解决了海量数据的存储,并且提供了MR计算框架。但MR的使用门槛还是比较高,所以Facebook便开发了Hive,底层依旧使用HDFS存储数据,但操作数据却不用自己写MR程序,而是使用类似SQL的语法操作数据(在Hive里面称为HQL),后台自动转换为MapReduce,极...