概述

包含External 的表叫外部表
删除外部表只删除metastore的元数据,不删除hdfs中的表数据
外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个 外部表 时,仅删除该链接
指向已经在 HDFS 中存在的数据,可以创建 Partition
它和 内部表 在元数据的组织上是相同的,而实际数据的存储则有较大的差异

语法

CREATE EXTERNAL TABLE page_view
( viewTime INT, 
  userid BIGINT,
  page_url STRING,
 referrer_url STRING,
  ip STRING COMMENT 'IP Address of the User',
  country STRING COMMENT 'country of origination‘
)
    COMMENT 'This is the staging page view table'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
    STORED AS TEXTFILE
    LOCATION 'hdfs://centos:9000/user/data/staging/page_view';

实验

hive (default)> create external table
              > external_test(name string,city string,address string)
              > row format delimited fields terminated by '\t'
              > location '/home/hive/extable';
OK
Time taken: 0.559 seconds
hive (default)> desc formatted external_test;
OK
col_name        data_type       comment
# col_name              data_type               comment             
                 
name                    string                                      
city                    string                                      
address                 string                                      
                 
# Detailed Table Information             
Database:               default                  
Owner:                  hadoop                   
CreateTime:             Wed Sep 21 20:18:21 CST 2016     
LastAccessTime:         UNKNOWN                  
Retention:              0                        
Location:               hdfs://hello110:9000/home/hive/extable   
Table Type:             EXTERNAL_TABLE          
Table Parameters:                
        EXTERNAL                TRUE                
        transient_lastDdlTime   1474460301          
                 
# Storage Information            
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe       
InputFormat:            org.apache.hadoop.mapred.TextInputFormat         
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat       
Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:             
        field.delim             \t                  
        serialization.format    \t                  
Time taken: 0.065 seconds, Fetched: 29 row(s)

hive (default)> load data local inpath '/data/ext_test' into table external_test;
Loading data to table default.external_test
OK
Time taken: 1.286 seconds

hive (default)> select * from external_test;
OK
external_test.name      external_test.city      external_test.address
1       dddd    dddd
2       www     www
3       eeee    wwww
4       tttt    cccc
5       yyycc   dddd
Time taken: 1.92 seconds, Fetched: 5 row(s)

不指定location,会默认在:hdfs://hello110:9000/user/hive/warehouse/ 下面

删除

外部表drop table t1。hdfs里数据还在,不会删除。

再创建与刚才相同的表名的表的时候,
select * from t1,会发现表数据会依然还在。

(如果指定了location,则location要一样,如果没有指定,则都在 /user/hive/warehouse 下。)

Hive的数据模型-外部表相关推荐

  1. 【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表

    文章目录 一.上传完整的jar文件到hive/lib中 二.修改hive-site.xml 三.修改hive-env.sh 四.在hive和hbase中分别创建相关联的表并通过hive向hbase表中 ...

  2. hive创建hbase外部表

    hive 启动命令:$HIVE_HOME/bin/hive hive 创建hbase外部表: ihr_pes为hive表名: CREATE EXTERNAL TABLE ihr_pes( id str ...

  3. hive中创建外部表分区表测试

    --创建外部表 CREATE EXTERNAL TABLE my_report( last_update string, col_a string) PARTITIONED BY ( par_dt s ...

  4. Hive的数据模型-管理表

    概述 管理表,也称作内部表,受控表. 所有的 Table 数据(不包括 External Table)都保存在warehouse这个目录中. 删除表时,元数据与数据都会被删除. 在加载数据的过程中,实 ...

  5. Hive的数据模型—桶表

    概述 桶表是对数据进行哈希取值,然后放到不同文件中存储. 数据加载到桶表时,会对字段取hash值,然后与桶的数量取模.把数据放到对应的文件中. 物理上,每个桶就是表(或分区)目录里的一个文件,一个作业 ...

  6. hive内部表与外部表区别

    1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local in ...

  7. 【原创】大叔经验分享(25)hive通过外部表读写hbase数据

    在hive中创建外部表: CREATE EXTERNAL TABLE hive_hbase_table( key string, name string, desc string ) STORED B ...

  8. hive外部表改为内部表_hive内部表外部表介绍

    未被external修饰的是内部表(managed table),被external修饰的为外部表(external table): 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: ...

  9. hive 创建表_2min快速了解,Hive内部表和外部表

    在了解内部表和外部表区别前, 我们需要先了解一下Hive架构 : 大家可以简单看一下这个架构图,我介绍其中要点: Hive的数据分为两种,一种为普通数据,一种为元数据. 元数据存储着表的基本信息,增删 ...

最新文章

  1. 【剑指offer 07】用迭代和递归两种方法重构二叉树(python实现)
  2. 判断一个数是不是整数
  3. 设置材质阿尔法通道和双面渲染
  4. 如何在C/C++中动态分配二维数组
  5. CSDN 输入公式的方法
  6. Android 阿里云热修复
  7. dell3900机型安装xp64位操作系统
  8. Python实现抽签(团日活动抽倒霉蛋
  9. VMware Workstation虚拟机无法共享主机网络解决方法
  10. 工业视觉 五 频闪及抑制频闪
  11. 软工实践 - 第十一次作业 Alpha 冲刺 (3/10)
  12. 电商之下:服务类商品订单履约系统如何设计
  13. Android一点 play商店地区与语言设置
  14. 从零开始操作系统-07:APIC
  15. oss视频转码处理(解决部分浏览器无法正常播放问题)
  16. 国科大-高性能计算考试
  17. OUC2021秋-计算机网络-期末(回忆版)
  18. HTML圣诞树代码(动态音效)(我非原创作者,原作者是复旦大学的学长,如有侵权请联系)
  19. Rapid IO接口测试工装研究
  20. 【电脑办公软件】万彩办公大师教程丨图片转PDF工具

热门文章

  1. java 添加等待时间_Java中线程等待特定时间的最有效方法 - java
  2. 转网口显示未识别的网络_已有1700万用户携号转网 超99%用户1小时内办结
  3. eclipse中配置jad反编译插件
  4. java java.lang.enum_源码阅读-java基础-java.lang.Enum
  5. 运维人员mysql如何访问_mysql 运维常见操作
  6. c 语言 timestamp,c中的时间戳,精度为毫秒
  7. origin设置不同区域的颜色_[测试狗]Origin入门教程(二十四):效率翻倍小技巧——修改默认字体...
  8. python wget安装_Macbook系统环境安装wget的2个方法 - 传统包及Homebrew安装
  9. sed教程入门与实例练习(一)
  10. UVA1583 Digit Generator