Hiveのテーブルの最終変更タイムスタンプをフェッチしようとしています。
上記の回答の助けを借りて、私は次の開発者のためのシンプルなソリューションを作成しました。
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;
実行するとタイムスタンプを取得できます
describe formatted table_name