Wenn mehrere Tabellen mit gleichem Präfix im Hive
Ich habe einige Tabellen in hive, die hat die gleiche Vorwahl wie unten..
temp_table_name
temp_table_add
temp_table_area
Gibt es einige Hunderte von Tabellen, wie dies in meiner Datenbank zusammen mit vielen anderen Tabellen.
Ich will zum löschen von Tabellen, beginnt mit "temp_table".
Wißt Ihr, jede Abfrage, die diese Arbeit im Bienenstock?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine solche Sache wie reguläre Ausdrücke für drop-Abfragen in hive (oder ich habe Sie nicht finden). Aber es gibt mehreren Möglichkeiten, es zu tun, zum Beispiel :
Mit einem shell-Skript :
Oder indem Sie Ihre Tabellen in einer bestimmten Datenbank und löschen der gesamten Datenbank.
hive -e "show tables 'temp_*'" | xargs -I '{}' hive -e 'drop table {}'
Meine Lösung war das verwenden die bash-script mit folgendem cmd:
Oben genannten Lösungen sind gut. Aber wenn Sie mehrere Tabellen zu löschen, dann läuft 'hive -e drop table' ist langsam. So habe ich dies:
verwenden Sie vim-editor-Datei öffnen.hql und Sie unter die Befehle
führen
Dieser Ansatz ist sehr viel schneller.
drop table
.War ich in der Lage, löschen Sie alle Tabellen, die mithilfe der folgenden Schritte in Apache Spark mit Scala:
Da hatte ich eine Menge von Tabellen drop-I verwendet den folgenden Befehl ein, inspiriert in der @HorusH Antwort
Versuchen Sie dies:
hive -e 'verwenden sample_db;show tables' | xargs -I '{}' hive -e 'verwenden sample_db;drop table {}'
Unten-Befehl auch funktionieren.
Schnellste Lösung durch ein shell Skript:
drop_tables.sh pattern
Shell-Skript-Inhalt: