Hive入门详解及主要特点总结
本文主要总结HIve自身的一些特点,并对其中的一些点和传统数据库做对比,能够更好的理解Hive。
Hive详细入门介绍看下方链接,有原理,有案例,讲的很通俗易懂。
链接易学教程——Hive入门详解
1、Hive概述
Hive是Hadoop上的数据仓库工具,处理的是结构化数据。注意:定位是数据仓库,所以适用于实时性要求不高的场合。
Facebook设计Hive时针对的业务场景就是处理海量结构化日志。
2、Hive原理
Hive提供的语言是HQL,类似于SQL,但有一些差别,比如没有update语句,对应的是覆盖语句insert overwrite,等其他差异。
Hive区别于其他大数据技术相关数据库的最大优势是:提供了类似于SQL的语法,容易上手,但是后台实际执行却用了大数据技术。
开发人员在操作接口提交类SQL语法,Hive后台执行时会把HQL语法转化成MapReduce作业。
- Hive处理的数据是存储在HDFS上。
- 操作数据的是MapReduce作业。
- MapReduce是运行在Yarn上。
3、Hive的DDL语句:
3.1 Hive提供快速建表语句
create table if not exists student_temp like student;
创建表时可以用 if not exists语句判断表是否存在,可以用like快速复制表结构。这点DB2数据也支持
3.2 Hive表分为内部表和外部表
内部表就是所谓的管理表,是实体表。删除内部表数据也会同时被删除。
外部表并不拥有这份数据,删除表不会删除数据,只会删除外部表的元数据。
其实内部表和外部表类似于传统数据库中表和视图的概念。内部表就是表,外部表相当于视图。
3.3 分区表 partitioned
hive的分区表的相当于在目录下创建多个文件夹存放不同数据。多级分区表就是建多级多个目录。
\table_trx_inf\2018\11
\table_trx_inf\2018\12
\table_trx_inf\2019\01
\table_trx_inf\2019\02
…
交易表table_trx_inf是两级分区表,分区字段是year和month
3.1.1 hive分区表特殊点:
各个分区表在物理上是单独为目录文件,在逻辑上也不是一个表。因为对它操作是要具体某个分区的。
如:
a. 加载数据
load data local inpath