Ich bin neu in Bienenstock. Kann mir bitte jemand mit dieser Anforderung helfen?Wie kann ich Partitionen dynamisch aus der Hive-Tabelle löschen?
Meine Anforderung ist, Partitionen dynamisch zu löschen. Ich hatte eine SQL, die verschiedene Regionen ergibt (SQL ist unten: nach ALTER TABLE FROM
). Jetzt möchte ich die Regionen löschen (partitioniert in meiner Hive-Tabelle), die von meinem SQL zurückgegeben werden.
ich in der folgenden Art und Weise versucht:
ALTER TABLE <TableName> PARTITION(region=tab.region)
FROM
select tab.region from
(SELECT * from Table1) tab join
(select filename from Table2) tab1
on tab1.filename = tab.filename
Es ist die unten stehende Ausnahme werfen:
'1:21:13 [ALTER - 0 row(s), 0.008 secs] [Error Code: 40000, SQL State: 42000] Error while compiling statement: FAILED: ParseException
line 1:77 cannot recognize input near 'tab' '.' 'region' in constant
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.008/0.000 sec [0 successful, 0 warnings, 1 errors]
jemand mir bitte helfen?
Vielen Dank im Voraus
Danke für die Antwort. Shell-Skript funktioniert. Aber wir lösen die .hqls mit oozie aus, und das obige hql befindet sich in der Mitte einer großen hql-Datei. Also ich hab da irgendeine möglichkeit wenn diese anforderung in hql behandelt werden kann? ohne Shell-Skript – user2531569
@ user2531569 Ich glaube nicht, dass HQL so dynamisch sein kann. Ich fürchte, du wirst mit etwas enden, wie: dein vorhandenes hql-Skript in zwei Hälften zerlegen, oozie die erste Hälfte laufen lassen, oozie das Shell-Skript laufen lassen und dann oozie die letzte Hälfte laufen lassen. –
@ user2531569 - Ich stimme mit Dennis - [Sie können Shell-Skript von oozie ausführen] (https://oozie.apache.org/docs/3.2.0-incubating/DG_ShellActionExtension.html) ** ODER ** Sie können Shell ausführen Skript von 'hql' - siehe meine aktualisierte Antwort für Details ... –