web-dev-qa-db-ja.com

Hiveでテーブルの最終変更タイムスタンプを見つけるにはどうすればよいですか?

Hiveのテーブルの最終変更タイムスタンプをフェッチしようとしています。

8
user7375202

上記の回答の助けを借りて、私は次の開発者のためのシンプルなソリューションを作成しました。

time_column=`beeline --hivevar db=hiveDatabase --hivevar tab=hiveTable --silent=true --showHeader=false --outputformat=tsv2 -e 'show create table ${db}.${tab}' | egrep 'transient_lastDdlTime'`
time_value=`echo $time_column | sed 's/[|,)]//g' | awk -F '=' '{print $2}' | sed "s/'//g"`
tran_date=`date -d @$time_value +'%Y-%m-%d %H:%M:%S'`
echo $tran_date

ビーラインエイリアスを使用しました。エイリアスを適切に設定し、上記のスクリプトを呼び出してください。エイリアスが使用されていない場合は、上記のbeelineを置き換えて、完全なbeelineコマンド(jdbc接続を使用)を使用します。もしあれば、コメントに質問を残してください。

以下のコマンドを実行して、transient_lastDdlTimeの出力をタイムスタンプから日付に変換できます。
テーブルの最終変更タイムスタンプを提供します。

show create table TABLE_NAME;
0
Megha Gupta

実行するとタイムスタンプを取得できます

describe formatted table_name
0
yanghaogn