Hive内部表与外部表区别,数据导入与数据读取方式小结

本文详细介绍了Hive中内部表和外部表的创建、数据导入与读取方式,通过实例展示了load data操作以及手动复制文件到对应目录的效果。在删除表时,内部表会连同数据一同删除,而外部表只删除元数据,数据文件保持不变。总结了内部表和外部表的主要区别。
摘要由CSDN通过智能技术生成

原文地址:http://blog.csdn.net/shekey92/article/details/47661051,转载请注明地址。

创建一个外部表:

使用'|'作为分隔符,‘\n’回车作为换行符,指定数据仓库地址

hive> CREATE EXTERNAL TABLE rdcuser (
    > id int,
    > name string,
    > password string
    > )
    > row format delimited fields terminated by '|'
    > LINES TERMINATED BY '\n'
    > stored as textfile
    > location '/linyu/hivetest/';
OK
Time taken: 0.651 seconds


Hive每创建一个表都会在hive.metastore.warehouse.dir指向的目录下以表名创建一个文件夹,所有属于这个表的数据都存放在这个文件夹里面。如果不指定仓库地址,Hive每创建一个表都会在hive.metastore.warehouse.dir指向的目录下以表名创建一个文件夹,所有属于这个表的数据都存放在这个文件夹里面。

可以切换到mysql查看该表的仓库地址:

mysql> use hivemeta;       //hive在mysql的元数据库

mysql> select * from tbls;

+--------+-------------+-------+------------------+-------+-----------+-------+----------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+
|     11 |  1439456346 |     1 |                0 | root  |         0 |    11 | rdcuser  |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+


mysql> select * from sds;

+-------+------------------------------------------+--
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值