1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Hive 内部表和外部表

Hive 内部表和外部表

时间:2020-01-05 22:38:06

相关推荐

Hive 内部表和外部表

针对于Hive 的 建库建表操作

建库内部表(也叫管理表和临时表)外部表表的操作

建库

创建名为 test 的数据库(仅当不存在是才创建),添加备注信息 test database:

create database if not exists testcomment 'this is a database for test';

查看数据库列表(名称模糊匹配):

show databases like 't*';OKtesttest001Time taken: 0.016 seconds,Fetched: 2 row(s)

describe database 命令查看此数据库信息:

describe database test;OKtest this is a database for test hdfs:// hadoop201:50070/warehouse/test.db

上述命令可见,test数据库在hdfs上的存储位置是 hdfs://hadoop201:50070/warehouse/test.db,打开hadoop的 web页面,查看hdfs目录。

新建数据库的文件夹都在/hive/warehouse下面,这个是由 hive/conf/hive-site.xml文件中 hive.metastore.warehouse.dir设置的

内部表

按照表数据的生命周期,可以将表分为内部表和外部表两类;内部表也叫管理表或临时表,该类型表的生命周期时由hive控制的,默认情况下数据都存放在 /user/hive/warehouse 下面;删除表时数据会被删除;以下命令创建的计算内部表

create table t6(id int,name string)row format delimitedfields terminated by ',';

向t6表新增一条记录:

insert into t6 values(101,'a101');

使用hadoop命令查看 hdfs, 可见 t6 表有对应的文件夹,里面的文件保存着该表数据

(base) xx@<hadoop201|192.168.3.201|/opt/module/hadoop-2.7.7/bin>:$hadoop fs -ls /warehouse/bingouFound 4 itemsdrwxr-xr-x - xubin supergroup0 -11-20 15:21 /warehouse/bingou/dwddrwxr-xr-x - xubin supergroup0 -11-25 18:20 /warehouse/bingou/dwsdrwxr-xr-x - xubin supergroup0 -11-24 16:14 /warehouse/bingou/dwtdrwxr-xr-x - xubin supergroup0 -11-26 11:26 /warehouse/bingou/ods

查看这个文件夹下的文件信息,也就是表数据:

(base) xubin@<hadoop201|192.168.3.201|/opt/module/hadoop-2.7.7/bin>:$hadoop fs -cat /warehouse/bingou/ods/ods_start_log/dt=-11-14/startLog-.1605318076716{"start":{"open_ad_id":"1","loading_time":1605317976,"open_ad_skip_ms":1605317979,"open_ad_ms":3,"entry":"icon"},"ts":1605317976,"common":{"ch":"Appstore","vc":"1.3.2","uid":"25513143","la":113.86791190870849,"ar":"深圳市","os":"14.1","hw":"750.0x1624.0","nw":"Wifi","ln":22.585026025766936,"mid":"437F97B8-3FAD-4F23-9219-329779F874FA","ba":"iphone","pm":"iPhone11"},"server_time":1605318070455}

执行命令 drop table 表名, 再次查看相关表对应文件下的数据,发现整个文件夹都不存在了

外部表

创建表的sql语句中加上 external,创建的就是外部表了;外部表的数据生命周期不受 Hive 控制;删除外部表的时候不会删除数据;外部表的数据,可以同时作为多个外部表的数据源共享使用;接下来开始实践,下面是建表语句:

create external table t7(id int, name string)row format delimited fields terminated by ','location '/data/external_t7';

查看 hdfs文件,再删除drop t7,再查看文件是否存在,发现存在,因此,在实际生产业务系统开发中

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。