-
Hive入门
收藏Hive入门专栏,从浅入深介绍Hive的使用。
最近更新文章
[一起学Hive]之十七-从Hive表中进行数据抽样-Sampling
关键字:Hive数据取样、Hive Sampling、Hive TABLESAMPLE.
在Hive中提供了数据取样(SAMPLING)的功能,用来从Hive表中根据一定的规则进行数据取样,Hive中的数据取样支持分桶表取样和数据块取样。
16.1 数据块取样(Block Sampling)
block_sample: TABLESAMPLE (n PERCENT)
根据输入的i ...
[一起学Hive]之十六-Hive的WEB页面接口-HWI
关键字:Hive WEB接口、Hive HWI
Hive提供给用户的交互接口一般有三种:Hive命令行(Hive Command Line)、JDBC/ODBC以及Hive WEB Interface(HWI)。对于开发者来说,最常用的是Hive命令行。如果是将Hive开放给数据分析或数据运营人员做即席查询,那么使用Hive WEB页面接口(HWI)应该是比较方便的。
本章就介绍一下Hi ...
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
关键字:Hive统计信息、分析Hive表、Hive Statistics
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。
表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;
14.1 新表的统计信息
对于一个新创建的表,默认情况下,如果通过I ...
[一起学Hive]之十四-Hive的元数据表结构详解
关键字:Hive元数据、Hive元数据表结构
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。
文章最后面,会以一个示例来全面了解一下,Hive的元数据是怎 ...
[一起学Hive]之十三-Hive整合HBase,操作HBase表
关键字:Hive整合HBase、Hive操作HBase表
十二、Hive整合HBase,操作HBase表
HBase是被设计用来做k-v查询的,但有时候,也会遇到基于HBase表的复杂统计,写MR很不效率。Hive考虑到了这点,提供了操作HBase表的接口。
关于Hive操作HBase表的原理,请参考我之前的博文:
http://superlxw1234.iteye.c ...
[一起学Hive]之十二-Hive SQL的优化
关键字: Hive 优化、HQL 优化、Hive数据倾斜
十一、Hive SQL的优化
本章只是从HQL层面介绍一下,日常开发HQL中需要注意的一些优化点,不涉及Hadoop层面的参数、配置等优化。
其中大部分是我之前发过的博客文章,这里整理了下。
11.1 使用分区剪裁、列剪裁
在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELE ...
[一起学Hive]之十一-Hive中Join的类型和用法
关键字:Hive Join、Hive LEFT|RIGTH|FULL OUTER JOIN、Hive LEFT SEMI JOIN、Hive Cross Join
Hive中除了支持和传统数据库中一样的内关联、左关联、 ...
[一起学Hive]之十-Hive中Join的原理和机制
关键词:Hive MapJoin、Hive Common Join、Hive Reduce Join、Hive Join
九、Hive中Join的原理和机制
笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。本文简单介绍一下两种join的原理和机制。
9.1 Hive Common Join
如果不指定M ...
[一起学Hive]之九-Hive的查询语句SELECT
关键字:Hive SELECT、ORDER BY、SORT BY、DISTRIBUTE BY、CLUSTER BY、Hive子查询、Hive虚拟列
八、Hive的查询语句SELECT
在所有的数据库系统中,SELECT语句是使用最多,也最复杂的一块,Hive中的查询语句SELECT支持的语法当然也比较复杂,本文只能尽力去介绍。
8.1 基础查询语 ...
[一起学Hive]之八-使用Hive命令行
Hive提供的几种用户交互接口中,最常用的就是命令行接口。本文简单介绍一下Hive命令行接口(Hive Command Line)及Hive交互Shell(Hive Interactive Shell)的一些使用。
七、使用Hive命令行
7.1 Hive Command Line
输入$HIVE_HOME/bin/hive –H 或者 –help可以显示帮助选项:
...
[一起学Hive]之六-Hive的动态分区
前面文章介绍了Hive中是支持分区的。
关系型数据库(如Oracle)中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。
先看一个应用场景,源表t_lxw1234的数据如下:
SE ...
[一起学Hive]之七-向Hive表中加载数据
在Hive中建好表之后,需要将数据加载进来,以便做后续查询分析,本文介绍向Hive表中加载数据的几种方式。
6.1 建表时候直接指定
...
[一起学Hive]之五-Hive的视图和分区
同关系型数据库一样,Hive中也支持视图(View)和分区(Partition),但与关系型数据库中的有所区别,本文简单介绍Hive中视图和分区的示例。
在真实业务场景下,视图的应用比较少,分区使用的非常多,因此建议对分区这块多花的时间来了解。
四、Hive的视图和分区
4.1 Hive中的视图
和关系型数据库一样,Hive中也提供了视图的功能,注意Hive中视图的特性,和关系型数据 ...
[一起学Hive]之四-Hive的安装配置
其实Hive的安装配置应该放在第二章来介绍,晚了些,希望对Hive初学者有用。
三、Hive的安装配置
3.1 环境需求
Hadoop Client
Mysql
3.2 下载并解压Hive0.13.1安装包
下载地址:http://archive.apache.org/dist/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gz
cp ...
[一起学Hive]之三—Hive中的数据库(Database)和表(Table)
在前面的文章中,介绍了可以把Hive当成一个“数据库”,它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table)。
本文介绍一下Hive中的数据库(Database/Schema)和表(Table)的基础知识,由于篇幅原因,这里只是一些常用的、基础的。
二、Hive的数据库和表
先看一张草图:
Hive结构
从图上可以 ...
[一起学Hive]之二—Hive函数大全-完整版
Hive函数大全–完整版
现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平 ...
[一起学Hive]之一—Hive概述,Hive是什么
1. Hive是什么
Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也 ...