Hive的数据存储(内部表,外部表,分区表,桶表,视图)

一,Hive的数据存储

1,基于HDFS

2,没有专门的数据存储格式

3,存储结构主要包括:数据库,文件,表,视图

4,可以直接加载文本文件(.txt文件等)

5,创建表示,指定Hive数据的列分隔符与行分隔符

二,Hive的数据模型

1,表

1,Table 内部表
    1).与数据库中的Table在概念上是类似的
    2).每一个Table在Hive中都有一个相应的目录存储数据
    3).所有的Table数据(不包括 External Table) 都保存在这个目录中
    4).删除表时,元数据与数据都会被删除
    5).建表:

这里写图片描述

2,Partition 分区表
    1).Partition 对应于数据库的Partition列的密集索引
    2).在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中。
    3).建表:
hive> create table partition_table
    > (sid int, sname string)
    > partitioned by (gender string)
    > row format delimited fields terminated by ',';
3,External Table 外部表
    1).指向已经在HDFS中存在的数据,可以创建Partition
    2).它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异
    3).外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据库目录中,知识与外部数据建立一个连接。当删除一个外部表时,仅删除连接。
    4).建表:
hive> create external table external_student
    > (sid int,sname string,age int)
    > row format delimited fields terminated by ','
    > location '/input';
4,Bucket Table 桶表
    1). 桶表是对数据进行哈希取值,值不同的放到不同的文件中存储。
    2). 建表:
hive> create table bucket_table 
    > (sid int,sname string,age int)
    > clustered by(sname) into 5 buckets;

2,视图(逻辑的概念)

1.视图是一种虚表,是一个逻辑概念;可以跨越多张表
2.视图建立在已有表的基础上,视图赖以建立的这些表称为基表
3.视图可以简化复杂的查询
4.建立视图:
hive> create view empinfo
    > as 
    > select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname
    > from emp e,dept d
    > where e.deptno=d.deptno;
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值