hive的内部表与外部表

Hive的内部表和外部表在数据管理和存储上有显著区别。内部表数据存储在HDFS的/user/hive/warehouse目录下,删除时数据和元数据一同被删除。外部表数据位于自定义的HDFS路径,仅删除元数据,数据保持不变。创建内部表和外部表时,数据加载过程不同,外部表通常与数据加载同步完成。在管理数据时,内部表的修改会自动更新元数据,而外部表需要手动修复。
摘要由CSDN通过智能技术生成
  1. 内部表:
    –仅限HIVE内部使用
    每个Hive内部表在HDFS中都有对应目录用来存储表的数据。“/user/hive/warehouse/数据库名“下生成表的目录,创建时数据会移动到数据仓库所指向的位置
    内部表的创建过程和数据加载过程可以分别独立完成,也可以在同一个语句中完成。
    删除内部表时,该目录和数据文件、元数据会被同时删除。

建内部表:
Hive>create table person(
Id int,
Name string,
Age int,
Addr map<string,string>)
Row format delimited fields terminated by \t’ //字段间隔符\t
Map keys terminated by “:” //map型键值对的分隔符:
Stored as textfile; //这张表使用的数据文件格式是txt类型

导入数据:
Load data local inpath person.txt overwrite into table person;

查询数据:
Select * from person;

  1. 外部表:
    –供hadoop其他组件共享源数据使用
    Hive外部表和内部表在元数据组织上是一样的,但在实际数据存储上有较大差异。
    外部表数据不存储在自己表所属目录中,存储在LOCATION指定的HDFS路径中。
    外部表仅有一个过程,创建表和数据加载过程同时进行和完成。
    删除外部表仅仅是删除外部表对应的元数据,外部表所指向的数据不会被删除。
    创建外部表使用EXTERNAL关键字。

建外部表:
Hive&g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值