Hive外部表架构重新连接

时间:2019-02-12 07:42:08

标签: hadoop hive hdfs data-warehouse

假设我通过删除表删除了现有配置单元外部表的架构,数据仍然存在。

然后,我在现有数据的相同位置上使用相同的架构重新创建了外部表。

  1. 查询时会得到结果吗?
  2. 如果不是该如何获取查询结果?
  3. 我们是否仍可以通过蜂巢连接到derby DB?

2 个答案:

答案 0 :(得分:0)

您应该尝试过此操作,因为您已经知道即使删除表后该文件仍然存在。

我有一个表-time_file;

hive> show create table time_file;
OK
CREATE EXTERNAL TABLE `time_file`(
  `tm_dim_key` string,
  ......
  ....)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'field.delim'='|',
  'serialization.format'='|')
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'maprfs:/user/vijay/scm';

删除表格-

hive> drop table if exists time_file;
OK
Time taken: 0.1 seconds

删除表文件后,它仍然存在于hadoop位置-

hive> !hadoop fs -ls /user/supplychainadmin/alb_supply_chain_ext
    > ;
Found 1 items
-rwxr-xr-x   3 scm scm   74163231 2019-02-07 04:21 /user/vijay/scm/time_file1.dat

再次创建表格后-

我们可以查询数据

hive> select * from time_file limit 1;
OK
735918                                          735918  ABS Fiscal Year  2016           11280   50343524        50343524                                    Year     02-25-17        25                                                      1       ABS Fiscal Year  2016                           1       Saturday    7
Time taken: 0.106 seconds, Fetched: 1 row(s)
hive>

答案 1 :(得分:0)

假设您通过删除表删除了现有配置单元外部表的架构,数据仍然存在。

然后,如果您在现有数据的相同位置上使用相同的架构重新创建了外部表。

ANS:1)您将获得获得的结果。 删除外部配置单元表只会从已配置的RDBMS巨型存储中删除元数据。

ANS:3)是的,您将获得嵌入式模式下的默认derby DB,或者如果要显式地获得derby DB 在分布式模式下,可以在 hive.site.xml 文件

中进行配置