2017-03-24 13 views
1

Ich arbeite mit Impala und hole die Liste der Tabellen aus der Datenbank mit einem Muster wie unten.Impala: Zeige Tabellen wie Query

Angenommen, ich habe eine Datenbank bank, und Tabellen unter dieser Datenbank sind wie folgt.

cust_profile 
cust_quarter1_transaction 
cust_quarter2_transaction 
product_cust_xyz 
.... 
.... 
etc 

Jetzt bin Filterung i wie

show tables in bank like '*cust*' 

Es wird die erwarteten Ergebnisse wie, Rückkehr, die die Tische sind ein Wort cust in seinem Namen hat.

Jetzt ist meine Forderung ist ich alle Tabellen wollen die cust in seinem Namen und Tabelle nicht quarter2 haben haben sollte.

Kann mir bitte jemand helfen, dieses Problem zu lösen.

+0

In jedem Fall, dass Sie nichts mit dünnen Informationen innerhalb Impala tun können, zeigen, warum nicht tun es aus der Shell und mit Grep arbeiten oder den Metastore abfragen? –

Antwort

1

aus der Shell ausführen und filtern dann

impala-shell -q "show tables in bank like '*cust*'" | grep -v 'quarter2' 
0

Abfrage der Metastore

mysql -u root -p -e "select TBL_NAME from metastore.TBLS where TBL_NAME like '%cust%' and TBL_NAME not like '%quarter2%'";