又是新的一周,倒杯茶,打开电脑查看集群运行情况,没有一个程序报错?
刚开心一会儿,结果查看数据好多空值??
又是忙碌的早上,经过排查发现错误’/user/hive/tm_oil_level’路径不存在
不可能啊,这是hive外部表路径,即使删除外部表也不会删除该目录,难道谁偷偷把该目录删除了,也没道理啊!
新建外部表
create external table if not exists tm_oil_level
(
oil_code string,
oil_name string,
oil_type string,
oil_sort string
) COMMENT '机油基础表'
row format delimited fields terminated by '\t' lines terminated by '\n'
location '/user/hive/tm_oil_level'
新建内部表
create table if not exists tm_oil_level_test
(
oil_code string,
oil_name string,
oil_type string,
oil_sort string
) COMMENT '机油基础表test'
row format delimited fields terminated by '\t' lines terminated by '\n'
location '/user/hive/tm_oil_level'
内部表和外部表指向同一个地址
-- 清空表(直接删除&不进回收站)
truncate table tm_oil_level_test;
-- 删除表(移入回收站)
drop table if exists tm_oil_level_test;
经过测试’/user/hive/tm_oil_level’路径被删除了
回想起上周五一顿操作猛如虎,现在追悔莫及,赶紧查看下那些表被误删除了
总结:
hive建内部表不要指定路径,
hive建外部表必须指定路径(推荐)