Hive建表和内外部表的使用
原文链接:
https://www.toutiao.com/i6766784274965201415
一、普通建表方式
create table stu_info(
id int,
name string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
载入数据
load data local inpath '/data/hivetest/stu_info_local' into table stu_info;
load data inpath '/data/hivetest/stu_info_local' into table stu_info;
另外的方式
官网
二、子查询方式建表
我们练习下
创建一个练习库
创建一个普通表
create table normal(
id int,
name string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
我们装载数据
load data local inpath '/data/hivetest/stu_info_two' into table normal;
我们看数据是存在的
我们利用子查询生成新表
create table normal_zcx_t as select * from normal;
实际在跑MapReduce
我们查看表和数据
我们可以看到元数据也存在
表结构也一样
我们再看下HDFS
所以子查询将查询的数据和表的结构赋予一张新的表
三、Like建表
我们建表
create table normal_like_t like normal;
只有表结构,没有数据,但是相对于子查询没有MapReduce执行,速度会快很多。
元数据和HDFS都有
四、数据共享
我们重新创建一个数据库
创建员工表
创建部门表
导入数据
我们创建表引用另外一个表的文件,比如引入我们的dept表的文件
可以看到表
元数据也有
数据也有
我们把dept_yr数据清空,会发现dept的数据竟然也没有了
那我们重新加载数据呢?
这时候我们明白了,它俩在一起关联的,添加和清除在一起。
如果删除的话 drop table dept_yr;数据还是清空
所以这种方式建表,他们是互相影响的。
数据共享一份数据,删除的时候就把共享的数据删除
删除表也会把元数据数据删除,清除HDFS上的文件
建表中,这有两个关键字
如果我们不加这两个关键字,表默认是管理表
我们先看TEMPORARY
我们创建
我们导入数据
去查询元数据,发现没有信息
用desc formatted查看,信息是有的
我们看其中的数据存放路径
查看一下HDFS
这就是临时表的一些特点
如果关闭的话,就会自动删除临时表,也可以手动删除,常作为临时结果使用。
如果用location+temporary共享数据会发生什么呢?可以做个练习。(1)关闭客户端对原始数据的影响?(2)删除临时表对原始数据的影响?(3)如果是清空临时表呢?
我们创建EXTERNAL表
我们看元数据
Formatted
我们再dept中加载数据
发现数据在外部表也是有的
如果我们清空外部表,就会报错
FAILED: SemanticException [Error 10146]: Cannot truncate non-managed table dept_ext.
那我们删除外部表呢?不会对原始数据产生影响
元数据也没了
练习:如果不使用location,直接创建的话,删除表会怎么样?
总结:删除表时,内部表元数据和数据一起删除,而外部表只删除元数据,不会删除数据,以及HDFS上表对应的目录及文件都不会删除。
Hive建表和内外部表的使用的更多相关文章
- [Hive_3] Hive 建表指定分隔符
0. 说明 Hive 建表示例及指定分隔符 1. Hive 建表 Demo 在 Hive 中输入以下命令创建表 user2 create table users2 (id int, name stri ...
- hive,分桶,内外部表,分区
简单的word-count操作: [root@master test-map]# head -10 The_Man_of_Property.txt #先看看数据Preface“The Forsy ...
- CDH集群部署hive建表中文乱码
背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码. 现象:hive端建表中文注释乱码. 定位: 已经确认过 ...
- 利用MySQL原数据信息批量转换指定库数据表生成Hive建表语句
1.写出文件工具类 package ccc.utile; import java.io.*; /** * @author ccc * @version 1.0.0 * @ClassName Write ...
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...
- hive内部表、外部表、分区表、视图
1.Table 内部表 1).与数据库中的Table在概念上是类似的 2).每一个Table在Hive中都有一个相应的目录存储数据 3).所有的Table数据(不包括 External Table) ...
- Hive通过查询语句向表中插入数据注意事项
最近在学习使用Hive(版本0.13.1)的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug.总而言之,这些都需要使用Hive的开发人员额 ...
- 039 hive中关于数据库与表等的基本操作
一:基本用法 1.新建数据库 2.删除数据库 3.删除非空的数据库 4.指定数据库的位置 LOCATION:指定数据库的位置,不会在系统的默认文件下. 5.在指定数据库中新建表(验证在指定的数据库中可 ...
- Hive创建内部表、外部表
使用hive需要hive环境 启动Hive 进入HIVE_HOME/bin,启动hive ./hive 内部表 建表 hive> create table fz > (id int,nam ...
随机推荐
- scrapy爬取招聘网站,items转换成dict遇到的问题
pipelines代码 1 import json 2 3 class TencentJsonPipeline(object): 4 def __init__(self): 5 self.file = ...
- macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载
本站下载的 macOS Monterey 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装. 2021 年 12 月 14 日, ...
- pipeline when指令
目录 一.简介 二.选项 单独判断 条件组合 一.简介 when指令允许pipeline根据给定的条件,决定是否执行阶段内的步骤.when指令必须至少包含一个条件.when指令除了支持branch判断 ...
- MySQL查询数据库表空间大小
一.查询所有数据库占用空间大小 SELECT TABLE_SCHEMA, CONCAT( TRUNCATE(SUM(data_length) / 1024 / 1024, 2), ' MB' ) AS ...
- LeetCode 36. Valid Sudoku (Medium)
题目 Determine if a 9 x 9 Sudoku board is valid. Only the filled cells need to be validated according ...
- CF749A Bachgold Problem 题解
Content 给定一个数 \(n\),求它最多能够拆分成多少个质数,并输出拆分成的每一个质数. 数据范围:\(2\leqslant n\leqslant 10^5\). Solution 我们考虑尽 ...
- SP8374 PARKET1 - PARKET 题解
Content 有一个 \(l\times w\) 大小的网格,其四周均被染成了红色,其余部分是棕色,已知红色网格与棕色网格的数量,求 \(l\) 与 \(w\) 的值. Solution 接下来给各 ...
- java 图形化小工具Abstract Window Toolit
老掉牙的历史 Java1.0在发布的时候,就为我们提供了GUI操作的库,这个库系统在所有的平台下都可以运行,这套基本的类库被称作抽象窗口工具集(Abstract Window Toolit),简称 ...
- 网络编程之UDP(2)linux查看socket默认缓冲区大小和最大值
默认值 命令: cat /proc/sys/net/core/rmem_default 结果: 最大值 命令: cat /proc/sys/net/core/rmem_max 结果:
- 刷完 900 多题后的首次总结:LeetCode 应该怎么刷?
「负雪明烛」公众号是负雪明烛维护的一个算法题解公众号,致力于帮助大家刷题.找工作.欢迎关注. 大家好,我是负雪明烛.今天跟大家聊一聊「LeetCode应该怎么刷?」这个话题. 我是大二的时候开始接触 ...