前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive的数据模型

Hive的数据模型

作者头像
编程那点事
发布2023-02-25 15:16:46
3490
发布2023-02-25 15:16:46
举报
文章被收录于专栏:java编程那点事

Hive的数据存储

代码语言:javascript
复制
基于HDFS
没有专门的数据存储格式
存储结构主要包括:数据库、文件、表、视图
可以直接加载文本文件(.txt文件)
创建表时,指定Hive数据的列分隔符与行分隔符

Inner Table(内部表)

代码语言:javascript
复制
与数据库中的 Table 在概念上是类似
每一个 Table 在 Hive 中都有一个相应的目录存储数据
所有的 Table 数据(不包括 External Table)都保存在这个目录中
删除表时,元数据与数据都会被删除

// 创建一张内部表 每行字段以什么分割
create table  tt (id int,name string,age int) row format delimited fields terminated by ',';

Partition Table (分区表)

代码语言:javascript
复制
Partition 对应于数据库的 Partition 列的密集索引
在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中

// 创建一张分区表,以部门编号为分区,每行字段逗号分割
create table  tt (id int,name string,age int) partitioned by (pno int) row format delimited fields terminated by ',';

往分区表中插入数据:

代码语言:javascript
复制
// 从已知表里导入数据
insert into table tt partition(pno=10) select id, name, age from emp where dpno=10;

// 从本地文件中导入数据
load data local inpath '/opt/data/order_created.txt' (overwrite) into table tt partition(pno=10);

// 从HDFS文件中导入数据
load data inpath '/opt/data/order_created.txt' (overwrite) into table tt partition(pno=10);

在Hive中,通过SQL的执行计划获知分区表提高的效率

External Table(外部表)

代码语言:javascript
复制
指向已经在 HDFS 中存在的数据,可以创建 Partition
它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异
外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个外部表时,仅删除该链接

// 创建外部表
create external table ex_tt (id int, name string, age int) row format delimited fields terminated by ',' location '/students'

Bucket Table (桶表)

代码语言:javascript
复制
桶表是对数据进行哈希取值,然后放到不同文件中存储。
需要设置环境变量:set hive.enforce.bucketing = true;

// 创建桶表
create table tt_bucket (id int, name string, age int) clustered by (age) into 4 buckets row format delimited fields terminated by ',';

视图(View)

代码语言:javascript
复制
视图是一种虚表,是一个逻辑概念;可以跨越多张表
视图建立在已有表的基础上, 视图赖以建立的这些表称为基表
视图可以简化复杂的查询

// 创建视图
create view myview as select sname from student;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hive的数据存储
    • Inner Table(内部表)
      • Partition Table (分区表)
        • External Table(外部表)
          • Bucket Table (桶表)
            • 视图(View)
            相关产品与服务
            数据保险箱
            数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档