2.5 Hive中外部表的讲解
一、外部表
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)
转载于:https://www.cnblogs.com/weiyiming007/p/10751108.html
2.5 Hive中外部表的讲解相关推荐
- Hive中外部表的alter与drop操作的最低权限要求
Hive中外部表的alter与drop操作的最低权限要求: 操作类型 目录权限 数据权限 alter(如修改location) Read .write 0 Drop Read 0 Select Rea ...
- hive中内部表和外部表有什么区别?一般什么时候使用内部表什么时候使用外部表?
hive中内部表和外部表有什么区别? 在使用hive搭建数据仓库的时候,可以建立两种表格.一种是内部表(managed table),一种是外部表(external table). 内部表建表是不加修 ...
- HIVE中的表以及语法
2019独角兽企业重金招聘Python工程师标准>>> HIVE中的表以及语法 一.HIVE的表 HIVE使用的功能性的表格分为四种:内部表.外部表.分区表.分桶表. 1.内部表.外 ...
- 查看hive中某个表中的数据、表结构及所在路径
查看hive中action_data_myisam表中的数据.表结构及所在路径 1.客户端进入hive环境:hive 2.查看表数据,鉴于数据量大,这里只显示前五条:select * from act ...
- Hive创建外部表详细步骤
Hive创建外部表详细步骤 一.创建外部表 二.hdfs建立文件夹存放数据 三.准备数据 四.上传数据到HDFS目录 五.Hive表关联文件得到数据 六.查询数据 一.创建外部表 create ext ...
- hive:统计hive中所有表的大小和创建时间
目的:获取hive中所有表的创建时间和表大小 本文给出了一个既可以统计hive中非分区表也可以统计分区表的表大小的方式. 由于业务上没有针对分区数据统计的需求,所以可以使用此种方式统计. 如果业务需要 ...
- 使用Flink实现kafka流关联hive中维表
本文可以用于flink相关内容的入门练习对照.欢迎各路高手批评指导! flink版本:1.10.1 kafka版本:0.10.0 hive版本:1.2.1 依赖: <dependency> ...
- hive删除hbase数据_Hive进阶:Hive通过外部表操作Hbase数据
概述: HBase: 查询效率比较高,常为实时业务提供服务,但是其查询方式比较单一,只能通过row方式get单条数据,或者通过scan加过滤器的方式扫描数据表获取数据. Hive: hive用来存储结 ...
- 【原创】大叔经验分享(25)hive通过外部表读写hbase数据
在hive中创建外部表: CREATE EXTERNAL TABLE hive_hbase_table( key string, name string, desc string ) STORED B ...
最新文章
- Silverlight Curve Animation / 曲线动画
- 11.20 java 方法
- Linux维护笔记四
- SQL中常用的的时间跟日期函数
- const、extern、static的使用不再神秘
- windows 下eclipse 连HBASE
- 交流信号叠加直流偏置_T型偏置器与隔直器,二者应用之对比
- 软考论文写作攻略,让你轻松拿高分!
- ROS创建工作空间和source的解释
- 1.1.2 python基本数据类型与运算符
- 一文看懂人工智能芯片的产业生态及竞争格局
- 计算机树的逻辑结构,树结构(示例代码)
- mac 修改文件权限为777可读可写可执行
- 下载陷阱:软件带着病毒来
- Rime常用配置||输入默认英文
- 论文研读1——对抗样本(Adversarial Example)综述(2018版)
- 苹果开发者:如何将准备好的应用上传到iTunes Connect
- 红太狼和灰太狼的囧人爱情
- 个人账本软件---界面设计
- 小白学 Python(23):Excel 基础操作(上)