一、外部表

1、hive中表的类型

管理表

托管表(外部表)

#内部表
>内部表也称之为MANAGED_TABLE;
>默认存储在/user/hive/warehouse下,也可以通过location指定;
>删除表时,会删除表数据以及元数据; 外部表
>外部表称之为EXTERNAL_TABLE;
>在创建表时可以自己指定目录位置(LOCATION);
>删除表时,只会删除元数据不会删除表数据;
Managed Table

这种表也被称作Internal Table.这是Hive中的默认的类型.如果你在创建表的时候没有指明Managed或者External,
那么默认就会给你创建Managed Table.
Managed Table的数据,会存放在HDFS中的特定的位置中,通常
是/user/hduser/hive/warehouse.当然,也不一定,看你的Hive的配置文件中是如何配置的. External Table
External Table特别适用于想要在Hive之外使用表的数据的情况,比如多个部门想使用一个表的数据;

查看表的类型:

hive (default)> desc formatted dept ;    #查看其中的 Table Type字段

2、创建一个外部表

hive (default)> create EXTERNAL table IF NOT EXISTS default.emp_ext(
> empno int,
> ename string,
> job string,
> mgr int,
> hiredate string,
> sal double,
> comm double,
> deptno int
> )
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
OK
Time taken: 0.032 seconds

二、例子

1、创建一个外部表

hive (default)> create EXTERNAL table IF NOT EXISTS default.emp_ext2(
> empno int,
> ename string,
> job string,
> mgr int,
> hiredate string,
> sal double,
> comm double,
> deptno int
> )
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> location '/user/root/hive/warehouse/emp_ext2';
OK
Time taken: 0.036 seconds

2、copy数据

表结构定义好,数据直接放到表的目录下面就可以;

#直接put到HDFS里面
hive (default)> dfs -put /opt/datas/emp.txt /user/root/hive/warehouse/emp_ext2; hive (default)> dfs -ls -R /user/root/hive/warehouse/emp_ext2;
-rw-r--r-- 1 root supergroup 659 2019-04-22 16:33 /user/root/hive/warehouse/emp_ext2/emp.txt #查询
hive (default)> select * from default.emp_ext2;
OK
emp_ext2.empno emp_ext2.ename emp_ext2.job emp_ext2.mgr emp_ext2.hiredate emp_ext2.sal emp_ext2.comm emp_ext2.deptno
7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30
7521 WARD SALESMAN 7698 1981-2-22 1250.0 500.0 30
7566 JONES MANAGER 7839 1981-4-2 2975.0 NULL 20
7654 MARTIN SALESMAN 7698 1981-9-28 1250.0 1400.0 30
7698 BLAKE MANAGER 7839 1981-5-1 2850.0 NULL 30
7782 CLARK MANAGER 7839 1981-6-9 2450.0 NULL 10
7788 SCOTT ANALYST 7566 1987-4-19 3000.0 NULL 20
7839 KING PRESIDENT NULL 1981-11-17 5000.0 NULL 10
7844 TURNER SALESMAN 7698 1981-9-8 1500.0 0.0 30
7876 ADAMS CLERK 7788 1987-5-23 1100.0 NULL 20
7900 JAMES CLERK 7698 1981-12-3 950.0 NULL 30
7902 FORD ANALYST 7566 1981-12-3 3000.0 NULL 20
7934 MILLER CLERK 7782 1982-1-23 1300.0 NULL 10
Time taken: 0.029 seconds, Fetched: 14 row(s)

2.5 Hive中外部表的讲解的更多相关文章

  1. 【原创】大叔经验分享(26)hive通过外部表读写elasticsearch数据

    hive通过外部表读写elasticsearch数据,和读写hbase数据差不多,差别是需要下载elasticsearch-hadoop-hive-6.6.2.jar,然后使用其中的EsStorage ...

  2. 查看hive中某个表中的数据、表结构及所在路径

    查看hive中action_data_myisam表中的数据.表结构及所在路径 1.客户端进入hive环境:hive 2.查看表数据,鉴于数据量大,这里只显示前五条:select * from act ...

  3. hive中更改表impala中不能生效

    hive中的更新或者新建表impala 不能实时更新 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的meta ...

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

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

  5. hive中的表

    一.内部表与外部表的比较 Hive表概念和关系型数据库表概念差不多.在Hive里表会和HDFS的一个目录相对应,这个目录会存放表的数据.目录默认是/usr/hive/warehouse/. 比如你在h ...

  6. Hive创建外部表以及分区

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/27874943 创建带分区的外部表 创建外部 ...

  7. 4.hive的外部表和内部表

    1.外部表和内部表区别 创建表时:创建内部表时,会将数据移动到数据仓库指向的路径:若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变. 删除表时:在删除表的时候,内部表的元数据和数据会被一 ...

  8. hive的外部表

    最近买了一本hive看,发现书中有一个错误: 我的验证如下: 1.外部表数据存在自己表所属的目录下 2.还发现了 CTAS 操作不能 建立外部表

  9. hive中创建表失败

    使用create table命令创建表失败,如下错误信息: hive> create table test(id int,name string,age int,sex string); FAI ...

随机推荐

  1. python-tornado操作

    Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效 ...

  2. Vue.directive 自定义指令

    一.什么是全局API? 全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API,比如我们今天要学习的指令Vue.directive.说的简单些就是,在 ...

  3. CentOS系统时间修改

    1. 实体机器上安装CentOS $date -s '2015-03-03 13:34:00' 2. 虚拟机上安装的CentOS #查看系统时间和硬件时间 date hwclock --show #设 ...

  4. 【BZOJ1042】[HAOI2008]硬币购物 容斥

    [BZOJ10492][HAOI2008]硬币购物 Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值 ...

  5. less 一种 动态 样式 语言

    LESS « 一种动态样式语言 http://www.bootcss.com/p/lesscss/ 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承,运算, 函数 ...

  6. 可以执行全文搜索的原因 Elasticsearch full-text search Kibana RESTful API with JSON over HTTP elasticsearch_action es 模糊查询

    https://www.elastic.co/guide/en/elasticsearch/guide/current/getting-started.html Elasticsearch is a ...

  7. DuiLib笔记之Control常用属性

    name 指定控件名称,同一窗口内必须唯一,类型:STRING float 用于指定控件是否使用绝对定位,或设置FloatPercent,类型:BOOL,默认值为false,格式:float=&quo ...

  8. vim学习之以退为进——可反复移动和可反复改动的美妙结合

    时间:2014.06.29 地点:基地 -------------------------------------------------------------------------------- ...

  9. Ubuntu 14.04中安装tftp

    1. 安装sudo apt-get install tftp-hpa tftpd-hpa 2. 建立目录sudo mkdir /tftpboot sudo chmod 0777 /tftpbootsu ...

  10. ThinkPHP验证码不现实的处理方法

    ThinkPHP测试的时候遇到验证码不显示的问题,主要解决思路如下: 1.php.ini是否开启gd库: 2.页面编码是否一致: 3.检查页面头部信息BOM,这是最主要的,把下面代码复制到根目录下,然 ...