Hive表操作及管理

Hive是基于Hadoop的数据仓库工具,提供SQL查询功能,适用于数据仓库统计分析。本文介绍了Hive的内部表和外部表,创建表(包括分区表)以及删除表的操作,强调了分区列的选择和效率问题,指出过度分区可能导致数据碎片化。
摘要由CSDN通过智能技术生成
转载请注明出处:http://blog.csdn.net/u012842205/article/details/72765667


Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。但缺点也非常明显。因为Hive运算引擎来自MapReduce,MapReduce中间结果都存储在磁盘,IO导致速度很慢,这也是Hive最显著的缺点。


作为对元数据SQL化操作的引擎,Hive同样使用RDBMS的数据表对象管理数据。

一、Hive表

Hive中能存在两种表:

  • 内部表(managed table),数据文件、统计文件、元数据都由Hive自己管理,换句话说,这个表数据存储在哪里我们不用关心,也不用提供,Hive默认存储在HDFS。Hive能管理原始数据的整个生命周期。Hive表删除后,数据也随之删除。
  • 外部表(external table),数据文件存储在其他系统中,可能是HDFS,也可能是HBase、ASV等,HIve只保留映射关系,但Hive表删除后,数据不会丢失,仍然存在于其他系统中。

二、创建表

由于Hive支持标准的SQL(包括SQL:2003和SQL:2011标准的一些特性),创建表与后面提到的CURD都比较好理解。以下是一些简单的创建表语句例子:

简单的内部表

create table tb (id int, name String, age int);

分区的内部表

create table ez_part_test (
    id int, 
    col1 string, 
    col2 string) partitioned by 
  (type int) stored as orc

外部表(HDFS)

create external table example_csv_tb (
    id int,
    col1 string,
    col2 string) ROW FORMAT 
  delimited fields terminated by ',' 
  lines terminated by '\n'
  stored as textfile location "/ez/example"

HiveSQL不仅仅定义字段及相应的类型,也提供定义字段属性、表存储格式等的语义。

1、外部表

例如,在HDFS上有个在 hdfs://myhost:8020/ez/example

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值