2016-10-28 7 views
0

ハイブサーバー内のすべてのデータベースを経由するスクリプトを作成しようとしていますが、データベースごとに特定の名前の列を含むテーブルの一覧を返します。具体的には(擬似コードで):ハイブテーブル名のフィルタリングと抽出用スクリプト

list l 
for d in show databases: 
    use d 
    for tbl in show tables: 
    res = describe tbl | grep col_name 
    if res not empty: 
     l.append(tbl.name) 
return l 

私はこれをコーディングする方法について確認していません。どんな助け?これらのシェルコマンドをパイプなどと組み合わせるための良い参考文献がある場合は、私はその勧告に感謝します。

hive -e 'show databases'

hive -e 'use $d; describe $tbl'はテーブル$tblを説明$d、データベース内のすべてのテーブルを返します。すべてのデータベース

hive -e 'use $d; show tables'を返します。

+0

あなたは確かにSQLを実行しますか? BASHのクエリ? [Perl](https://dbi.perl.org/)、誰ですか? – hidefromkgb

+0

わかりません。これは初めてです。これらのニーズを満たすものは何でも。 – user181218

答えて

1

1つのオプションは、(スクリプト言語の選択に関係なく)hive -e '<hive command>'を使用することですデータベース内$d

+0

ハイブ-eは私が逃したものです。残りは単にスクリプトです。ありがとう!! – user181218

+0

@ user181218各呼び出しは新しいコンテキストにあります。使用データベースは、データベース固有のコマンドの前に置く必要があります。 –

関連する問題