2021年7月1日星期四

hive学习笔记之三:内部表和外部表

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

《hive学习笔记》系列导航

  1. 基本数据类型
  2. 复杂数据类型
  3. 内部表和外部表
  4. 分区表
  5. 分桶
  6. HiveQL基础
  7. 内置函数
  8. Sqoop
  9. 基础UDF
  10. 用户自定义聚合函数(UDAF)
  11. UDTF

本篇概览

  • 本文是《hive学习笔记》系列的第三篇,要学习的是各种类型的表及其特点,主要内容如下:
  1. 建库
  2. 内部表(也叫管理表或临时表)
  3. 外部表
  4. 表的操作
    接下来从最基本的建库开始

建库

  1. 创建名为test的数据库(仅当不存在时才创建),添加备注信息test database:
create database if not exists test comment 'this is a database for test';
  1. 查看数据库列表(名称模糊匹配):
hive> show databases like 't*';OKtesttest001Time taken: 0.016 seconds, Fetched: 2 row(s)
  1. describe database命令查看此数据库信息:
hive> describe database test;OKtest	this is a database for test	hdfs://node0:8020/user/hive/warehouse/test.db	hadoop	USER	Time taken: 0.035 seconds, Fetched: 1 row(s)
  1. 上述命令可见,test数据库在hdfs上的存储位置是hdfs://node0:8020/user/hive/warehouse/test.db,打开hadoop的web页面,查看hdfs目录,如下图,该路径的文件夹已经创建,并且是以.db结尾的:

在这里插入图片描述
5. 新建数据库的文件夹都在/user/hive/warehouse下面,这是在中配置的,如下图红框:

在这里插入图片描述
6. 删除数据库,加上if exists,当数据库不存在时,执行该语句不会返回Error:

hive> drop database if exists test;OKTime taken: 0.193 seconds

以上就是常用的库相关操作,接下来实践表相关操作;

内部表

  1. 按照表数据的生命周期,可以将表分为内部表和外部表两类;
  2. 内部表也叫管理表或临时表,该类型表的生命周期时由hive控制的,默认情况下数据都存放在/user/hive/warehouse/下面;
  3. 删除表时数据会被删除;
  4. 以下命令创建的就是内部表,可见前面两篇文章中创建的表都是内部表:
create table t6(id int, name string)row format delimited fields terminated by ',';
  1. 向t6表新增一条记录:
insert into t6 values (101, 'a101');
  1. 使用hadoop命令查看hdfs,可见t6表有对应的文件夹,里面的文件保存着该表数据:
[hadoop@node0 bin]$ ./hadoop fs -ls /user/hive/warehouse/t6Found 1 items-rwxr-xr-x 3 hadoop supergroup   9 2020-10-31 11:14 /user/hive/warehouse/t6/000000_0
  1. 查看这个000000_0文件的内容,如下可见,就是表内的数据:
[hadoop@node0 bin]$ ./hadoop fs -cat /user/hive/warehouse/t6/000000_0101	a101
  1. 执行命令drop table t6;删除t6表,再次查看t6表对应的文件,发现整个文件夹都不存在了:
[hadoop@node0 bin]$ ./hadoop fs -ls /user/hive/warehouse/Found 5 itemsdrwxr-xr-x - hadoop supergroup   0 2020-10-27 20:42 /user/hive/warehouse/t1drwxr-xr-x - hadoop supergroup   0 2020-10-29 00:13 /user/hive/warehouse/t2drwxr-xr-x - hadoop supergroup   0 2020-10-29 00:14 /user/hive/warehouse/t3drwxr-xr-x - hadoop supergroup   0 2020-10-29 13:04 /user/hive/warehouse/t4drwxr-xr-x - hadoop supergroup   0 2020-10-29 16:47 /user/hive/warehouse/t5

外部表

  1. 创建表的SQL语句中加上external,创建的就是外部表了;
  2. 外部表的数据生命周期不受Hive控制;
  3. 删除外部表的时候不会删除数据;
  4. 外部表的数据,可以同时作为多个外部表的数据源共享使用;
  5. 接下来开始实践,下面是建表语句:
create external table t7(id int, name string)row format delimited fields terminated by ','location '/data/external_t7';
  1. 查看hdfs文件,可见目录/data/external_t7/已经创建:
[hadoop@node0 bin]$ ./hadoop fs -ls /data/Found 1 itemsdrwxr-xr-x - hadoop supergroup   0 2020-10-31 12:02 /data/external_t7
  1. 新增一条记录:
insert into t7 values (107, 'a107');
  1. 在hdfs查看t7表对应的数据文件,可以见到新增的内容:
[hadoop@node0 bin]$ ./hadoop fs -ls /data/external_t7Found 1 items-rwxr-xr-x 3 hadoop supergroup   9 2020-10-31 12:06 /data/external_t7/000000_0[hadoop@node0 bin]$ ./hadoop fs -cat /data/external_t7/000000_0107,a107
  1. 试试多个外部表共享数据的功能,执行以下语句再建个外部表,名为t8,对应的存储目录和t7是同一个:
create external table t8(id_t8 int, name_t8 string)row format delimited fields terminated by ','location '/data/external_t7';
  1. 建好t8表后立即查看数据,发现和t7表一模一样,可见它们已经共享了数据:
hive> select * from t8;OK107	a107Time taken: 0.068 seconds, Fetched: 1 row(s)hive> select * from t7;OK107	a107Time taken: 0.074 seconds, Fetched: 1 row(s)
  1. 接下来删除t7表,再看t8表是否还能查出数据,如下可见,数据没有被删除,可以继续使用:
hive> drop table t7......

原文转载:http://www.shaoqun.com/a/839137.html

跨境电商:https://www.ikjzd.com/

hunter:https://www.ikjzd.com/w/992

亿恩:https://www.ikjzd.com/w/1461

贝贝母婴网:https://www.ikjzd.com/w/1321


欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;《hive学习笔记》系列导航基本数据类型复杂数据类型内部表和外部表分区表分桶HiveQL基础内置函数Sqoop基础UDF用户自定义聚合函数(UDAF)UDTF本篇概览本文是《hive学习笔记》系列的第
olive:https://www.ikjzd.com/w/2025
东南亚电商风云榜:Shopee反超Lazada:https://www.ikjzd.com/articles/106943
霸气!大疆回应美国增加关税的行为,只对美产品直接涨价!:https://www.ikjzd.com/articles/106944
为什么你赚不到钱?看看别人家的亚马逊运营!:https://www.ikjzd.com/articles/106946
免费工具推荐:独立站如何做好谷歌SEO排名?:https://www.ikjzd.com/articles/106947
口述实录:一个少妇的做爱日记:http://lady.shaoqun.com/a/250745.html
三个黑人玩一个少妇4p 被黑人玩得不能下床:http://lady.shaoqun.com/m/a/248388.html
口述公么的粗大满足了我 睡着了被偷偷滑进去了:http://www.30bags.com/m/a/249933.html
深圳龙岗灯光秀在哪里:http://www.30bags.com/a/464615.html
2021龙岗中心城灯光秀时间、地点及看点:http://www.30bags.com/a/464616.html
男朋友说我很脏,想和我分手。我反驳他,"你也不干净。":http://lady.shaoqun.com/a/394607.html
2021年,夫妻双方都结婚了。婚内强奸违法吗?:http://lady.shaoqun.com/a/394608.html

没有评论:

发表评论