2023.11.11 hive中的内外部表的区别

一.内部表操作

------------------------------1内部----------------------------
--建库
create database hive2;
--用库
use hive2;
--删表
drop table t1;
--建表
create table if not exists t1(id int,name string,gender string
);
--复制内部表
--复制表结构:CREATE TABLE 表名 like 另一个表名
create table t1_like like t1;
desc t1_like;
--复制表结构:CREATE TABLE 表名 as select 语句
create table t1_like1 as select * from t1;
desc t1_like1;
--清空表内部数据 truncate table 内部表名
truncate table t1_like1;

二.外部表操作

-----------------------------------2外部表-------------------------------
--创建外部表1:
create external table out_1(id int,name string
);
--插入数据
insert into out_1 values (1,'白');
--*外部表不能使用as select的方式来复制表
--删除表,等于删了个文件夹,文件还在
drop table out_1;
truncate table out_1 ; -- 外部表不能使用truncate来清空

 切换内外部表操作

修改表属性: alter table 表名 set tblproperties ('属性名'='属性值');     注意: 经常用于内外部表切换
内外部表类型切换:  外部表属性: 'EXTERNAL'='TRUE'   内部表属性: 'EXTERNAL'='FALSE'

三.内部表和外部表的区别

主要体现在load与drop(是否同时删除元数据与数据)的操作上:

        0. 建表语句的区别:

外部表的建表语句需要被 external 修饰,但是内部表是不需要的。

        create external table if not exists table_name(字段名 字段类型);

内部表又叫管理表,托管表,他有绝对控制权

外部表又叫关联表,非托管表,他没有绝对控制权

        1.创建表:

Hive创建内部表时,会将数据移动到数据仓库指向的路径,hive管理数据的生命周期;

内部表可以使用create table 表名 as select语句方式建表

Hive创建外部表时,仅记录数据所在的路径,不对数据的位置做任何改变。

外部表无法使用as select语句

        2.删除表:

Hive删除内部表时,内部表的元数据和数据一起被删除,同时对于一些hive操作不适应于外部表,比如单个查询语句创建表并向表中插入数据。

truncate命令可以清空内部表中的业务数据


删除外部表只会删除元数据,而不会删除实际数据。 在Hive外部仍然可以访问实际数据。

删除外部表: drop table 外部表名;
    注意: 删除外部表效果是mysql中元数据被删除,但是存储在hdfs中的业务数据本身被保留

复制表: 方式1: like方式复制表结构    注意: as方式外表不可以使用

这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。创建外部表时,甚至不需要知道外部数据是否存在,可以把创建数据推迟到创建表之后才进行。

truncate命令不能用于外部表

        3.load加载数据


内部表:会把数据移动到自己指定的路径下


外部表:不会把数据移动到自己的数据仓库目录下,也因此证明外部表的数据不是由自己管理的。

        4.修改表名

-- 修改表名: alter table 旧表名 rename to 新表名--内部表在改名后,hdfs里的表目录名也会更改
--外部表只会修改元数据表名,hdfs中表目录名不会改变

ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解 TCP;场景复现,掌握鲜为人知的细节

握手失败 第一次握手丢失了,会发生什么? 当客户端想和服务端建立 TCP 连接的时候,首先第一个发的就是 SYN 报文,然后进入到 SYN_SENT 状态。 在这之后,如果客户端迟迟收不到服务端的 SYN-ACK 报文(第二次…

【Spring Cloud】声明性REST客户端:Feign

Spring Cloud Feign ——fallback 服务降级 1. Feign 简介2. Feign 的基础使用2.1 普通 HTTP 请求2.2 Feign 远程调用上传文件接口 1. Feign 简介 Feign 是一个声明式的 HTTP 客户端,它简化了编写基于 REST 的服务间通信代码的过程。在 Spring Cloud 中&#xff0c…

删除杀软回调 bypass EDR 研究

01 — 杀软或EDR内核回调简介 Windows x64 系统中,由于 PatchGuard 的限制,杀软或EDR正常情况下,几乎不能通过 hook 的方式,完成其对恶意软件的监控和查杀。那怎么办呢?别急,微软为我们提供了其他的方法&a…

2352 智能社区医院管理系统JSP【程序源码+文档+调试运行】

摘要 本文介绍了一个智能社区医院管理系统的设计和实现。该系统包括管理员、护工和医生三种用户,具有社区资料管理、药品管理、挂号管理和系统管理等功能。通过数据库设计和界面设计,实现了用户友好的操作体验和数据管理。经过测试和优化,系…

Spring -Spring之依赖注入源码解析(下)--实践(流程图)

IOC依赖注入流程图 Autowired:注入的顺序及优先级:type-->Qualifier-->Primary-->PriOriry-->name Resource:先通过Resource上指定的byName进行注入,若byName没找到,则与Autowired注入方式相同&#xff…

腾讯域名优惠卷领取

腾讯域名到到期了,听说申请此计划,可获得优惠卷,看到网上5年域名只需要10元,姑且试试看。 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?in…

【Java 进阶篇】JQuery DOM操作:轻松驾驭网页内容的魔法

在前端开发的舞台上,DOM(文档对象模型)是我们与网页内容互动的关键。而JQuery作为一个轻量级的JavaScript库,为我们提供了便捷而强大的DOM操作工具。在本篇博客中,我们将深入探讨JQuery的DOM内容操作,揭开这…

【408】计算机学科专业基础 - 数据结构

数据结构知识 绪论 数据结构在学什么 如何用程序代码把现实世界的问题信息化 如何用计算机高效地处理这些信息从而创造价值 数据结构的基本概念 什么是数据: 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序…

ElasticSearch知识点

什么是ElasticSearch ElasticSearch: 智能搜索,分布式的搜索引擎,是ELK的一个非常完善的产品,ELK代表的是: E就是ElasticSearch,L就是Logstach,K就是kibana Elasticsearch是一个建立在全文搜索引擎 Apache Lucene基础…

20231112_DNS详解

DNS是实现域名与IP地址的映射。 1.映射图2.DNS查找顺序图3.DNS分类和地址4.如何清除缓存 1.映射图 图片来源于http://egonlin.com/。林海峰老师课件 2.DNS查找顺序图 3.DNS分类和地址 4.如何清除缓存

面向切面编程AOP

2023.11.12 本章学习spring另一大核心——AOP。AOP是一种编程技术,底层是使用动态代理来实现的。Spring的AOP使用的动态代理是:JDK动态代理 CGLIB动态代理技术。Spring在这两种动态代理中灵活切换,如果是代理接口,会默认使用JDK动…

OSG练习:模仿Ventsim制作三维矿井智能通风系统

1、效果 2、计划内容 1) 三维场景的加载显示;已实现 2)矿井巷道建模及纹理;已实现 3)矿井基础数据采集及修正;已实现 4)通风网络解算算法;已实现 5)通风设备及设施模型制作;未实现 6)风流模拟效果 ;进行中 7)火灾模拟效果;未实现 8)巷道属性查看栏;未实现 9)…