当我们创建没有位置属性的hive外部表时,将存储数据

时间:2017-11-09 10:23:50

标签: hive hiveql

我创建了没有任何位置的外部表。现在,即使我们删除了表格,也会存储数据。

CREATE EXTERNAL TABLE forest(
  animal string,
  food string)

2 个答案:

答案 0 :(得分:1)

当您创建没有位置的外部表时,数据将存储在配置单元默认位置。 平时  /apps/hive/warehouse/<database_name>.db/<table_name>

如果在测试数据库中创建表,则您的配置单元位置将为

/apps/hive/warehouse/test.db/forest

如果删除表格,则可以在此位置找到数据。 使用命令show create table forest;,如果您没有删除它,它将为您提供位置的详细信息。

答案 1 :(得分:1)

如果您没有指定外部表的位置,它将存储在默认的配置单元仓库位置。

见下面的例子。

hive> USE ramesh;
OK
Time taken: 0.013 seconds
hive> CREATE EXTERNAL TABLE test 
    >  (col1 BIGINT, col2 STRING)
    > ROW FORMAT DELIMITED 
    > FIELDS TERMINATED BY ','
    > STORED AS TEXTFILE;
OK
Time taken: 0.056 seconds
hive> SHOW CREATE TABLE test;
OK
CREATE EXTERNAL TABLE `test`(
  `col1` bigint, 
  `col2` 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
  'hdfs://quickstart.cloudera:8020/user/hive/warehouse/ramesh.db/test'**
TBLPROPERTIES (
  'COLUMN_STATS_ACCURATE'='false', 
  'numFiles'='0', 
  'numRows'='-1', 
  'rawDataSize'='-1', 
  'totalSize'='0', 
  'transient_lastDdlTime'='1510257748')
Time taken: 0.044 seconds, Fetched: 21 row(s)