当前位置: 首页 > news >正文

hive-内部表外部表-详细介绍

1、表类型介绍

内部表:

表面来看,我们建的所有的表,默认都是内部表,内部表又叫做管理表,它的位置也很固定/user/hive/warehouse下面。

外部表:

创建的时候需要加关键字external 修饰,而且,外部表它的数据的存储位置可以不在/user/hive/warehouse,可以指定位置。

建表的语法格式:

 create external table tableName(id int,name string) [location 'path'];

举例:

create external table t_user7(
id int,
name string
)
row format delimited
fields terminated by ','
location '/publicData'这个location 是本地的意思还是hdfs的路径呢?答案是必须在hdfs上。

2、内部表和外部表转换

内部表转外部表

desc extended t_user; 查看表结构的详细信息

alter table tableName set tblproperties('EXTERNAL'='TRUE');

注意:内部表转外部表,true一定要大写;

外部表转内部表

alter table tableName set tblproperties('EXTERNAL'='false');

说明:false不区分大小

3、两种表的区别

用的最多的都是外部表,因为可以分析数据(OLAP)。

OLAP: 为分析而生的数据库 A(分析)

OLTP: 存储数据,保证数据的安全。 T(事务的意思)

最大的区别就是删除表的时候,内部表会删除元数据和真正的hdfs上的数据。而外部表只删除元数据。

思考:为什么这么做?

Hive是一个数据分析的工具,存储数据不是它的本意。

假如一个人,将数据上传至hdfs,这个数据量很大,一般不挪动位置,你可以建一个外部表数据的位置指向hdfs的某个文件夹,然后就可以分析了。

/home a.txt 2G

建一个外部表,指向/home/a.txt , 分析完毕之后,删除表就可以了,干嘛要删除数据,没必要。--用后即焚!

微信小程序--> 阅后即焚。

1) 内部表和外部表在创建时的差别

就差两个关键字,EXTERNAL 和 LOCATION 举例:

- 内部表 -- CREATE TABLE T_INNER(ID INT);

- 外部表 -- CREATE EXTERNAL TABLE T_OUTER(ID INT) LOCATION 'HDFS:///AA/BB/XX';

2) Hive表创建时要做的两件事:

1、在hdfs下创建表目录

2、在元数据库mysql创建相应表的描述数据(元数据)

3) drop时有不同的特性:

1、drop时,元数据都会被清除

2、drop时,内部表的表目录会被删除,但是外部表的表目录不会被删除。

4) 使用场景

内部表: 平时用来测试或者少量数据,并且自己可以随时修改删除数据.

外部表:使用后数据不想被删除的情况使用外部表(推荐使用)所以,整个数据仓库的最底层的表使用外部表。

http://www.lryc.cn/news/486982.html

相关文章:

  • Windows系统 ElasticSearch,分词器、Kibana安装
  • 黑马智数Day10
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结
  • Visual Studio 圈复杂度评估
  • Springboot之登录模块探索(含Token,验证码,网络安全等知识)
  • golang调用模组程序实现交互输入自动化,获取imei及iccid
  • ACE之单例
  • 泷羽sec学习打卡-云技术基础1-docker
  • 7天掌握SQL - 第一天:数据库基础与SQL入门
  • A037-基于Spring Boot的二手物品交易的设计与实现
  • 【异常记录】Junitmock之InvalidUseOfMatchersException异常
  • Spring Boot3自定义starter
  • 掌控 Solidity:事件日志、继承和接口的深度解析
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • Vue3 虚拟列表组件库 virtual-list-vue3 的使用
  • WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
  • 第6章详细设计-6.9 PCB审查
  • docker与大模型(口语化原理和实操讲解)
  • Linux之vim模式下全选命令
  • 云原生周刊:Kubernetes v1.32 要来了
  • # JVM学习
  • 【代码随想录day33】【C++复健】62.不同路径;63. 不同路径 II;343. 整数拆分;96.不同的二叉搜索树
  • 《勇者斗恶龙3:HD-2D重制版》找幽灵船攻略分享
  • 基于 MATLAB 的模拟退火算法详解及实现
  • MQTT 服务器常用的有哪些?
  • 【android USB 串口通信助手】stm32 源码demo 单片机与手机通信 Android studio 20241118
  • 汽车资讯新探索:Spring Boot技术引领
  • 简单的MCU与FPGA通过APB总线实现通讯(fpga mcu APB):乘法器为例
  • css uniapp背景图宽度固定高度自适应可以重复