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

Hive内部表和外部表

v2-4b22527985384cedba02ae95e6d244cc_250x0

表类型详解

表分类

在Hive中,表类型主要分为两种

第一种:内部表

  • 也叫管理表
  • 表目录会创建在集群上的{hive.metastore.warehouse.dir}下的相应的库对应的目录中。
  • 默认创建的表就是内部表

第二种:外部表

  • 外部表需要使用关键字"external",
  • 外部表会根据创建表时LOCATION指定的路径来创建目录,
  • 如果没有指定LOCATION,则位置跟内部表相同,一般使用的是第三方提供的或者公用的数据。
  • 建表语法:必须指定关键字external。
    create external table tableName(id int,name string) [location 'path'];
-- 语法:
create external table 表名(列名 列的数据类型,....列名 列的数据类型
)comment '表的描述信息(可以选型添加)'
row format delimited fields terminated by '文件数据一行的内容是以什么方式分隔的'
row format delimited lines terminated by '文件数据中每一行的分隔符什么' 
[location 'path路径']
stored as textfile -- 提供映射数据文件的文件格式【默认是文本文件可以不写】create external table u7(id int,name string)row format delimited fields terminated by ','location '/publicData';

内部表和外部表转换

内部表转外部表

-- 语法:alter table 内部表名 set tblproperties('EXTERNAL'='TRUE');
-- 注意: 内部表转换为外部表时,提供true必须大写  

外部表转内部表

-- 语法:alter table 外部表名 set tblproperties('EXTERNAL'='false');
-- 注意: 外部表转内部表的时候,false不需要大写(不区分大小写)  

两者之间区别

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

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

- 内部表 -- CRAATE 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/102281.html

相关文章:

  • 【面试题】与通义千问的芯片前端设计模拟面试归纳
  • 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。npm.ps1 cannot be loaded
  • Flowable-服务-Http任务
  • Hexo+GithubPages免费搭建个人博客网站
  • 应用无线鼠标中的2.4GHz无线收发芯片
  • Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前
  • 自动驾驶之轨迹规划8——Apollo参考线和轨迹
  • ES6 - promise.all和race方法的用法详解
  • CAD .NET 15.0 企业版 Crack
  • 苍穹外卖day07——缓存菜品套餐+购物车功能实现
  • 学习笔记|大模型优质Prompt开发与应用课(二)|第四节:大模型帮你写代码,小白也能做程序
  • 建造者设计模式 + 高阶函数 => DSL
  • 重学C++系列之智能指针简单介绍
  • LabVIEW开发航天器动力学与控制仿真系统
  • 享元模式——实现对象的复用
  • 【GreenDao】关联表实现,父表关联多个子表
  • python网站创建005:数据交互
  • golang 字符串操作、处理
  • Nginx配置WebSocket反向代理
  • devops(后端)
  • Ubuntu安装企业微信
  • Prometheus 的应用服务发现及黑河部署等
  • JAVA SE -- 第十二天
  • 实战:工作中对并发问题的处理
  • 腾讯云Cloud Studio:基于Claude快速完成Excel工资自动核算
  • Spring Boot OAuth2 快速入门示例
  • MethodInterceptor
  • PID模块化__以stm32直流电机速度为例
  • Java ~ Collection/Executor ~ DelayQueue【总结】
  • 前端高级面试题-安全相关