假设通过删除表删除了现有配置单元外部表的架构,数据仍然存在于位置中。然后,我在现有数据的同一位置用相同的模式重新创建了外部表。查询时会得到结果吗?如果没有,如何得到查询结果?我们能连接到Hive里的德比数据库吗?
06odsfpq1#
假设您删除了现有配置单元外部表的架构,通过删除该表,数据仍然存在于位置中。然后,如果在现有数据的同一位置上使用相同的架构重新创建了外部表。ans:1)你会得到你得到的结果。删除外部配置单元表只会从已配置的rdbms megastore中删除元数据。ans:3)是的,您可以在嵌入式模式下获得默认的derbydb,或者如果您显式地想要derbydb 在分布式模式下,可以在hive.site.xml文件中配置它
ljsrvy3e2#
您应该尝试这样做,因为您已经知道即使删除表,文件仍然存在。我有一个表时间文件;
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>
2条答案
按热度按时间06odsfpq1#
假设您删除了现有配置单元外部表的架构,通过删除该表,数据仍然存在于位置中。
然后,如果在现有数据的同一位置上使用相同的架构重新创建了外部表。
ans:1)你会得到你得到的结果。删除外部配置单元表只会从已配置的rdbms megastore中删除元数据。
ans:3)是的,您可以在嵌入式模式下获得默认的derbydb,或者如果您显式地想要derbydb 在分布式模式下,可以在hive.site.xml文件中配置它
ljsrvy3e2#
您应该尝试这样做,因为您已经知道即使删除表,文件仍然存在。
我有一个表时间文件;
删除表格-
删除后,表文件仍然存在于hadoop位置-
再次创建表之后-
我们可以查询数据