私はImpalaを使用しており、以下のようなパターンでデータベースからテーブルのリストをフェッチしています。
データベースbank
があり、このデータベースの下のテーブルは次のようになっていると仮定します。
cust_profile
cust_quarter1_transaction
cust_quarter2_transaction
product_cust_xyz
....
....
etc
今、私は次のようにフィルタリングしています
show tables in bank like '*cust*'
次のような期待される結果が返されます。テーブルの名前にはWordcust
が含まれています。
今私の要件は名前にcust
が含まれるすべてのテーブルが必要であり、テーブルにquarter2
が含まれるべきではありません。
誰かがこの問題を解決する方法を教えてもらえますか?.
シェルから実行してからフィルタリング
impala-Shell -q "show tables in bank like '*cust*'" | grep -v 'quarter2'
メタストアにクエリを実行
mysql -u root -p -e "select TBL_NAME from metastore.TBLS where TBL_NAME like '%cust%' and TBL_NAME not like '%quarter2%'";