Будут ли данные удалены при удалении внутренней таблицы с помощью предложения location при ее создании из улья?

В улье, если я создаю внутреннюю таблицу, используя условие loaction (упоминая loaction, отличное от местоположения куста по умолчанию) в операторе создания таблицы, то при удалении этой таблицы он удалит данные из указанного местоположения точно так же, как это происходит, когда данные по умолчанию расположение улья?

1 ответ

Да, это удалит местоположение, даже если это не местоположение по умолчанию улья также. Давайте предположим, что у меня есть тестовая таблица в базе данных по умолчанию в каталоге /user/yashu/test5.

hive> desc formatted test_tmp;
+-------------------------------+-------------------------------------------------------------+-----------------------+--+
|           col_name            |                          data_type                          |        comment        |
+-------------------------------+-------------------------------------------------------------+-----------------------+--+
| # col_name                    | data_type                                                   | comment               |
|                               | NULL                                                        | NULL                  |
| id                            | int                                                         |                       |
| name                          | string                                                      |                       |
|                               | NULL                                                        | NULL                  |
| # Detailed Table Information  | NULL                                                        | NULL                  |
| Database:                     | default                                                     | NULL                  |
| Owner:                        | shu                                                   | NULL                  |
| CreateTime:                   | Fri Mar 23 03:42:15 EDT 2018                                | NULL                  |
| LastAccessTime:               | UNKNOWN                                                     | NULL                  |
| Protect Mode:                 | None                                                        | NULL                  |
| Retention:                    | 0                                                           | NULL                  |
| Location:                     | hdfs://nn1.com/user/yashu/test5                   | NULL                  |
| Table Type:                   | MANAGED_TABLE                                               | NULL                  |
| Table Parameters:             | NULL                                                        | NULL                  |
|                               | numFiles                                                    | 1                     |
|                               | totalSize                                                   | 12                    |
|                               | transient_lastDdlTime                                       | 1521790935            |
|                               | NULL                                                        | NULL                  |
| # Storage Information         | NULL                                                        | NULL                  |
| SerDe Library:                | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe          | NULL                  |
| InputFormat:                  | org.apache.hadoop.mapred.TextInputFormat                    | NULL                  |
| OutputFormat:                 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat  | NULL                  |
| Compressed:                   | No                                                          | NULL                  |
| Num Buckets:                  | -1                                                          | NULL                  |
| Bucket Columns:               | []                                                          | NULL                  |
| Sort Columns:                 | []                                                          | NULL                  |
| Storage Desc Params:          | NULL                                                        | NULL                  |
|                               | field.delim                                                 | ,                     |
|                               | serialization.format                                        | ,                     |
+-------------------------------+-------------------------------------------------------------+-----------------------+--+

каталог hadoop с одним файлом.txt в каталоге test 5

 bash$    hadoop fs -ls /user/yashu/test5/
    Found 1 items
    -rw-r--r--   3 hdfs hdfs         12 2018-03-23 03:42 /user/yashu/test5/test.txt

Данные таблицы улья

select * from test_tmp;
+--------------+----------------+--+
| test_tmp.id  | test_tmp.name  |
+--------------+----------------+--+
| 1            | bar            |
| 2            | foo            |
+--------------+----------------+--+

как только я бросаю таблицу в улье, то каталог test5 также сбрасывается с hdfs

hive> drop table test_tmp;
bash$ hadoop fs -ls /user/yashu/test5/
ls: `/user/yashu/test5/': No such file or directory

Поэтому, как только мы удаляем внутреннюю таблицу в кусте, даже таблица улья не находится в расположении по умолчанию, также удаляется каталог (местоположение), на который указывает таблица.

Другие вопросы по тегам