第一节课 hive的安装和操作

目录

1、数据仓库

2、Hive是什么

3、HiveQL与SQL的区别

4、数据存储格式

5、操作客户端

6、Hive操作

1、建表语句

2、加载数据(上传到hive表)


1、数据仓库

数据仓库中有很多个数据库

ETL:对数据的储存、查询和分析存储,在Hadoop中大规模数据的机制。

hive定义了简单的类SQL查询语言,HQL

也可以处理MapReduce开发者开发的自定义mapper和reducer来处理内建的mapper和reducer无法完成的工作

数据仓库 Data Warehouse,可简写为DW或DWH

2、Hive是什么

hive是SQL解析引擎,它将SQL语句转译成M/R Job然后再Hadoop执行

hive的表其实就算HDFS目录,按表名把文件夹分开

hive相当于hadoop的客户端工具,部署时不一定放在集群管理节点中,可以放在某个节点上

3、HiveQL与SQL的区别

存储位置:HDFS,Raw Device or 本地FS

数据格式:用户定义,系统决定

数据更新:不支持,支持

索引:弱,有

执行:MapReduce,Executor

执行延迟:高,低

可扩展性:高,低

数据规模:大,小

4、数据存储格式

TextFile,正常的文本格式,是Hive的默认文件存储格式,明文,可以直接查看,hadoop fs -cat

注意:一般只有与其他系统由数据交互的接口表采用TEXTFILE 格式,其他事实表和维度表都不建议使用。

RCFile:是Hadoop中第一个列文件格式。能够很好的压缩和快速的查询性能,通常写操作比较慢,比非列形式的文件格式需要更多的内存空间和计算量

ORCFile

Parquet:关系数据库存储结构化的数据

SEQUENCEFILE:是hadoop APL提供的一种二进制文件,它将数据以的形式序列化到文件中

AVRO:是一种支持数据密集型的二进制文件格式,它的文件格式更为紧凑,若要读取大量数据的时候,Avro能够提供更好的序列化和反序列化性能。

5、操作客户端

Hive将元数据存储在数据库中(metastore),目前只支持mysql、derby

Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等;由解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行。

Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)

6、Hive操作

1、建表语句

1、内部表基础建表语句:

create table 表名

(

字段名1 字段类型1,

字段名2 字段类型2,

...

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符'; // 必选指定列之间的分隔符

2、内部表基础建表语句:

create table 表名

(

字段名1 字段类型1,

字段名2 字段类型2,

...

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符

STORED AS file_format;

概述:

STORED AS:指定具体的从HDFS获取数据的格式,格式不匹配无法获取(默认为TextFile)

3、内部表基础建表语句

create table 表名

(

字段名1 字段类型1,

字段名2 字段类型2,

...

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符

STORED AS file_format

location 'HDFS路径';

概述:

location:表示指定hive数据在hdfs的路径, 如果路径不存在会自动创建,存在就直接绑定,不能通过hdfs路径判断是否是hive表

注意:

默认情况下 删除表会把数据也删除

4、外部表建表语句

格式:

create external table 表名

(

字段名1 字段类型1,

字段名2 字段类型2,

...

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符

STORED AS file_format

location 'HDFS路径';

注意:

删除外部表不会删除HDFS上的数据

2、加载数据(上传到hive表)

1、格式:

hadoop dfs -put linux路径 hdfs路径

2、(直接在hive命令行操作)

格式:

dfs -put linux路径 hdfs路径

优点:比在hadoop操作hdfs快的多

3、(直接在hive命令行操作)

格式:

load data inpath '/HDFS路径' into 表名(自动找到hdfs的路径)

注意:对于hive来说是加载

对于HDFS来说是移动

4、(直接在hive命令行操作)

格式:

load data local inpath '/HDFS路径' into 表名(自动找到hdfs的路径)

注意:从本地上传数据

5、上传方式5:(直接在hive命令行操作)

格式:create table 表名 as 查询语句

注意:只能创建内部表

6、(直接在hive命令行操作)

格式:

insert [overwriter] into 表名 查询语句 有overwrite 无into

注意:数据对数据,会有格式的转化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值