内部表

内部表(Table)
-与数据库的Table在概念上类似
-每一个Table在Hive中都有一个相应的目录(HDFS上的目录)存储数据
-所有的Table数据(不包括External Table)都保存在这个目录(HDFS目录)中
-表的元数据信息,存储在元数据数据库中(mysql)
-删除表后,元数据和数据都会被删除

创建表--案例:

create table t1
(t1 int, tname string, age int);

在hive中创建一张表,如果不指定表所保存的位置,那么这张表会创建在HDFS文件系统中的/user/hive/warehouse目录下

create table t2
(tid int, tname string, age int)
location '/mytable/hive/t2';

指定表的位置为HDFS中的/mytable/hive/t2

create table t3
(tid int, tname string, age int)
row format delimited fields terminated by ',';

表示以csv文件格式存储,因为csv存储的分隔符为逗号
//row format 指定表示行的格式

加入数据--案例:

create table t4
as
select * from sample_data;

//采用sample_data查询的集合来创建t4表
//查看HDFS中的文件发现,t4表中数据与数据之间没有分隔符
这里我们同样可以指定分隔符:

create table t4
row format delimited fields terminated by ','
as
select * from sample_data;

//采用sample_data查询的集合来创建t5表,并以','为分隔符

在一张表上加入新的列---案例:

alter table t1 add columns(english int);

删除一张表--案例:

drop table t1;

//当删除一张表时,它会把对应的文件放入HDFS的回收站中,所以删除之后
//我们可以利用一定的方式恢复表中的数据

分区表

分区表(Partition):
(可以提高查询的效率)
-Partition对应于数据库Partiton列的密集索引
-在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中

创建表--案例

create table partition_table
(sid int, sname string)
partitioned by (gender string)
row format delimited fields terminated by ',';

//创建一张以','分隔,以性别进行分区的分区表partition_table

insert into table partition_table partition(gender = 'M') select sid,sname from sample_data where gender = 'M';

//将sample_data表中,gender为'M'的行数据,插入到paetition_table表中gender为'M'的分区中

insert into table partition_table partition(gender = 'F') select sid,sname from sample_data where gender = 'F';

//将sample_data表中,gender为'F'的行数据,插入到paetition_table表中gender为'F'的分区中

外部表

外部表(External Table) -指向已经在HDFS中存在的数据,可以创建Partition -它和内部表在元数据的组织上时相同的,而实际存储则有极大的差异 -外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只会与外部数据创建一个链接,当删除该表时,仅删除该链接而不删除实际的数据

外部表创建--案例

create external table external_student
(sid int, sname string, age int)
row format delimited fields terminate
location '/input';

//创建一个以','为分隔符的外部表,这个外部表与HDFS中/input目录下的文件相关联

桶表

桶表(Bucket Table)
桶表是对数据进行哈希取值,然后放到不同文件存储。也就是说,桶表中的数据,是通过哈希运算后,将其打散,再存入文件当中,这样做会避免造成热块,从而提高查询速度。

桶表创建--案例

create table bucket_table
(sid int, sname string, age int)
clustered by (sname) into 5 buckets;

//创建一个桶表,这个桶表是以sname作为哈希运算,运算后的结果放到5个桶中

后记:网课笔记

HIVE入门之数据模型相关推荐

  1. Hive总结(六)hive入门经典

    转自:http://www.zypx.cn/technology/20100606132430320046.html Hive 是什么 在接触一个新的事物首先要回到的问题是:这是什么? 这里引用 Hi ...

  2. 4 weekend110的hive入门

    Hive和HBase都很重要,当然啦,各自也有自己的替代品. 在公司里,SQL有局限,大部分时候,不需写mr程序的,用hive这个工具. 公司里的懂java开发员工不一定每个公司都有,但懂SQL开发员 ...

  3. 4 weekend110的hive入门

    查看企业公认的最新稳定版本:       https://archive.apache.org/dist/  Hive和HBase都很重要,当然啦,各自也有自己的替代品. 在公司里,SQL有局限,大部 ...

  4. 4.1 数据仓库基础与Apache Hive入门

    数据仓库基础与Apache Hive入门 一.数据仓库基本概念 1.数据仓库概念 2. 案例:数据仓库为何而来 (1)业务数据的存储问题 (2)分析型决策的制定 3.数据仓库主要特征 面向主题性(Su ...

  5. Apache Hive入门1

    Apache Hive入门1 Hive是Hadoop项目中的一个子项目,由FaceBook向Apache基金会贡献,其中TaoBao也是其中一位使用者+贡献者,Hive被视为 一个仓库工具,可以将结构 ...

  6. Hive ---- Hive入门

    Hive ---- Hive入门 1. 什么是Hive 1. Hive简介 2. Hive本质 2. Hive架构原理 1. 用户接口:Client 2. 元数据:Metastore 3. 驱动器:D ...

  7. 大数据技术之Hive(二)Hive入门

    一.Hive入门 1.1 Hive简介 1.1.1 hive出现的原因 FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产生了hive这门技术,并继续 ...

  8. hive入门及dbeaver连接hive

    hive入门 hive简介 安装 使用dbeaver连接自己的hive 学HIVE上官网 hive官网 hive简介 hadoop广义:是大数据生态圈,其中hive是使用SQL完成大数据统计分析的工具 ...

  9. 将服务器文件加载至hive表中,Hive入门到剖析(四)

    10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...

最新文章

  1. 《UML大战需求分析》阅读笔记1
  2. Ruby调用shell命令
  3. 从单张图像学习双目图像
  4. 基于Selenium2与Python自动化测试环境搭建
  5. 数学之美 系列七 -- 信息论在信息处理中的应用
  6. Kong 1.0正式发布,提供服务网格支持和插件开发工具包
  7. mysql dmz_MySQL 中LIMIT的使用详解
  8. 不要放弃,你的梦想是这个世界上最伟大的事情。
  9. 在Android中处理屏幕布局变化
  10. TNG-Hooks:有状态逻辑在标准函数中的重用和组合
  11. solidwork 侵权 证据_电子商务法复习题
  12. 解决idea的html代码中使用es6语法报错的问题
  13. vb6启动时提示安装VS2008 SP1
  14. 【机器学习】二次规划
  15. 惠普电脑键盘无法调节屏幕亮度
  16. 软硬磁盘和磁盘驱动器是微型计算机的外存储设备,可实现对信息的,21. 软硬磁盘和磁盘驱动器是微型计算机的外存储设备,它是实现对信息的...
  17. java基础(三):java面向对象OOP
  18. 《码农翻身》总结整理
  19. 大盘为何回血以及盐湖股份和科达制造
  20. 【CO2二氧化碳传感器】senseair S8 LP

热门文章

  1. python 字符串 编码 解码_Python 字符串编解码研究
  2. eclipse环境lsp4e --- org.eclipse.lsp4e
  3. 针对eclipse调式代码时打断点出现斜杠的解决方法
  4. MySql 的一些使用小技巧
  5. vue学习(一)初步了解 vue实例
  6. MicroPython开发板播放音乐教程
  7. 2015级C++第2周实践项目
  8. linux CentOs 权限导致的Apache - DocumentRoot must be a directory的解决方案
  9. 自建邮件服务器更给力?
  10. 洛谷P4742(tarjan缩点+拓扑DP)