hive 内部表和外部表的区别和理解
来源:互联网 发布:程序员四年经验薪资 编辑:程序博客网 时间:2024/05/19 13:20
1. 内部表
create table test (name string , age string) location '/input/table_data';
load data inpath '/input/data' into table test ;
会将hdfs上的/input/data目录下的数据转移到/input/table_data目录下。删除test表后,会将test表的数据和元数据信息全部删除,即最后/input/table_data下无数据,当然/input/data下再上一步已经没有了数据!
如果创建内部表时没有指定location,就会在/user/Hive/warehouse/下新建一个表目录,其余情况同上。
注:load data会转移数据
2. 外部表
create external table etest (name string , age string);
会在/user/hive/warehouse/新建一个表目录et
load data inpath '/input/edata' into table etest;
把hdfs上/input/edata/下的数据转到/user/hive/warehouse/et下,删除这个外部表后,/user/hive/warehouse/et下的数据不会删除,但是/input/edata/下的数据在上一步load后已经没有了!数据的位置发生了变化!
本质是load一个hdfs上的数据时会转移数据!
2、在删除内部表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
3. 在创建内部表或外部表时加上location 的效果是一样的,只不过表目录的位置不同而已,加上partition用法也一样,只不过表目录下会有分区目录而已,load data local inpath直接把本地文件系统的数据上传到hdfs上,有location上传到location指定的位置上,没有的话上传到hive默认配置的数据仓库中。
外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。
那么,应该如何选择使用哪种表呢?在大多数情况没有太多的区别,因此选择只是个人喜好的问题。但是作为一个经验,如果所有处理都需要由Hive完成,那么你应该创建表,否则使用外部表!
- hive 内部表和外部表的区别和理解
- hive 内部表和外部表的区别和理解
- hive 内部表和外部表的区别和理解
- hive 内部表和外部表的区别和理解
- Hive总结(三)内部表和外部表的区别
- Hive内部表和外部表的区别
- hive中内部表和外部表的区别
- Hive内部表和外部表的区别
- Hive内部表和外部表的区别详解
- hive内部表和外部表的区别
- HIVE的内部表和外部表
- Hive 之 内部表和外部表区别
- hive外部表和内部表
- hive外部表和内部表
- Hive内部表和外部表
- hive中内部表和外部表
- hive内部表和外部表
- hive 内部表 和 外部表
- python入门技能-特征分析(离散特征)
- Kotlin集合详解
- 将日志中的错误信息输出到文件中
- oh my zsh的安装与配置
- 关于TensorFlow使用的一些笔记
- hive 内部表和外部表的区别和理解
- Glide 入门到精通之四——图片缩放和调整大小
- LeiQ手把手带你搭博客(二)——VPS环境配置
- 谁跑的慢
- Window命令行
- 实验DG 跳归档恢复
- 【NOIP2016提高A组模拟7.21】Double-row
- 关于httpwatch安装之后在IE浏览器找不到加载项的解决办法
- [IOS APP]闯关东-百年长卷有声版