Улей: Удалить базу данных - PullRequest
1 голос
/ 02 июля 2019

Мне нужно удалить большую базу данных в улье, но я не могу найти опцию здесь , чтобы пропустить мусор, как purge для удаления таблиц. Это может создать проблемы при использовании космической квоты для мусора!

Любое предложение, использующее только команды hive DDL?

Чтобы быть ясным:

Что я делаю:

Drop database <my_db> cascade;

Что я ищу или что-то вроде:

Drop database <my_db> cascade purge;

Ответы [ 3 ]

2 голосов
/ 02 июля 2019

hive-default.xml

<property>
<name>hive.warehouse.data.skipTrash</name>
<value>true</value>
<description>
Set this to true if you do not want table data to be moved to trash while dropping table.
</description>
</property>

По умолчанию установлено значение false.Это свойство будет работать для Hive 0.14.0 или выше.

1 голос
/ 02 июля 2019

Данные HDFS, хранящиеся на диске, и определения таблиц в метасольве Hive - это разные объекты.Как подсказывает @congyh, вы можете вручную удалить данные в каталоге HDFS с помощью hadoop fs -rm -r -skipTrash <data_path> и drop db.table; Начиная с Hive 0.11.0, вы также можете обрезать таблицы (удалить данные HDFS) перед удалением их из метастаза.Как говорит @Lovish saini, во время сеанса CLI «Билайн»:

set hive.warehouse.data.skipTrash=true; truncate table db.table; drop table db.table;

1 голос
/ 02 июля 2019

Возможно, вам следует найти путь к данным и удалить его перед удалением базы данных.

Вот команда:

$ hadoop fs -rm -r -skipTrash <data_path>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...