Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- filename=`basename $1`
- min_seconds=${2:-100}
- if [ ${filename: -3} == ".gz" ] ; then
- cat="zcat"
- date=`echo $filename | awk 'match($0, /hiveserver2Interactive.log.([0-9-]+)_.*.gz/, a) {print a[1]}' `
- else
- cat="cat"
- date=`date -I`
- fi
- declare queries=$($cat $filename | awk -v fname=$filename -v min_seconds=$min_seconds 'match($0, /queryId=([a-zA-Z_0-9-]+).*Time taken: +([0-9.]+)/, a) { if (a[2] > min_seconds) { print fname, a[1], a[2] }}')
- if [ -z "$queries" ] ; then
- exit 0
- fi
- while read -r line; do
- # sample line: hiveserver2Interactive.log.2018-12-04_1.gz hive_20181204021011_06d9474f-587c-4f36-9456-85a568c9919a 4660.311
- params=( $line )
- filename=${params[0]}
- queryId=${params[1]}
- queryTime=${params[2]}
- queryString=$($cat "$filename" | sed -n "/Compiling command(queryId=$queryId)/,/$date/{
- s/.*Compiling command(queryId=$queryId): \(.*\)/\1/
- /$date/!p
- }"
- echo ";"
- )
- echo "$filename", "$queryId", "$queryTime" , "${queryString}" | tr "\n" " "
- echo ""
- done <<< "${queries%x}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement