文档章节

HIVE 外部表和内部表数据导入方式以及区别

柳大官人
 柳大官人
发布于 2017/07/17 19:29
字数 502
阅读 1004
收藏 0

一、建表 

  1. 内部表的创建
CREATE EXTERNAL TABLE test.test_maneged_table(
 id int,
 name string
)
PARTITIONED by  (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
LOCATION '/user/test/test_localtion_load';--location路径 需提前建好

     2.外部表的创建

CREATE TABLE test.test_maneged_table(
 id int,
 name string
)
PARTITIONED by  (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001';

    区别: 

        1. 外部表需要external关键之,location是数据文件默认存放位置,不管是不管是select 还是load的数据都存放在这里。导入数据到外部表,数据并没有mv到数据仓库目录,而是在loacation目录。

        2.内部表建表时也能加上location,作用和外部表一样,都是表数据的存放路径,不同的是drop table时内部表会将hdfs上的数据也删掉,外部表仅仅是删除表的元数据,原始数据不会删除。

    优点:

         1.安全,外部表不用担心表删除带来的风险。

         2.灵活,方便数据共享,使用更加灵活。

二、修改分区表增加分区

alter table test.test_maneged_table add partition(dt=20170101) location '/user/test/test_localtion_load/20170101'

   会自动在/user/test/test_localtion_load/目录下创建20170101目录,test_maneged_table表dt=20170101分区的数据默认放到文件系统的/user/test/test_localtion_load/20170101

    1./user/test/test_localtion_load下面没有任何目录

hadoop fs -ls /user/test/test_localtion_load

   2.增加分区

hive> alter table test.test_localtion_load add if not exists partition (dt='20170101') location '/user/test/test_localtion_load/20170101';
OK
Time taken: 0.173 seconds

    3.再次查看/user/test/test_localtion_load目录,创建了20170101目录

hadoop fs -ls /user/test/test_localtion_load
drwxr-xr-x   - rd supergroup          0 2017-07-18 11:18 /user/test/test_localtion_load/20170101

三、外部表加载数据

    1.通过select加载数据

hive> insert overwrite table test.test_localtion_load partition (dt='20170101') select 1,2;
hive> select * from test.test_localtion_load where dt=20170101;
OK
1       2       20170101
Time taken: 0.376 seconds, Fetched: 1 row(s)

 2.通过put数据到hdfs加载数据

hive> alter table test.test_localtion_load add  partition (dt='20170102') location '/user/test/test_localtion_load/20170102';
OK
Time taken: 0.213 seconds

hadoop fs -cp /user/test/test_localtion_load/20170101/* /user/test/test_localtion_load/20170102/

hive> select * from test.test_localtion_load where dt=20170102;
OK
1       2       20170102
Time taken: 0.395 seconds, Fetched: 1 row(s)

 

© 著作权归作者所有

柳大官人
粉丝 0
博文 12
码字总数 5964
作品 0
海淀
私信 提问
Hive架构以及应用介绍

Hive这个框架在Hadoop的生态体系结构中占有及其重要的地位,在实际的业务当中用的也非常多,可以说Hadoop之所以这么流行在很大程度上是因为Hive的存在。那么Hive究竟是什么,为什么在Hadoop家...

a2011480169
2016/05/23
0
0
hive 表的创建的操作与测试

Hive 中创建表的三种方式,应用场景说明及练习截图 内部表和外部表的区别,练习截图 分区表的功能、创建,如何向分区表中加载数据、如何检索分区表中的数据,练习截图 一:hive HQL 的表操作...

flyfish225
2018/04/11
0
0
Hive内部表、外部表、分区表以及外部分区表创建以及导入数据实例讲解

源数据格式: 1. 内部表的创建以及数据的导入(重点:无论是内部表还是外部表,数据最终都会被移动到所使用的location下面,如果没有指定,就默认移动到hive-site.xml中配置的location) 创建...

a2011480169
2018/01/08
0
0
【Hive】Hive基本操作及示例

1、数据库操作 (1)创建数据库 (2)查看数据库 (3)使用数据库 (4)查看数据库字段格式 (5)删除数据库 2、表操作 (1)创建表 (2)加载数据到表 LOCAL:从本地文件加载数据到hive表;...

gongxifacai_believe
2018/04/29
0
0
Hive 中内部表与外部表的区别与创建方法

先来说下Hive中内部表与外部表的区别: Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变。在删除表的时候,内部表的...

大数据之路
2012/12/27
12.8K
3

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
12
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
8
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
11
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部