Требуется количество записей для пакетного процесса Hadoop - PullRequest
0 голосов
/ 19 октября 2019

У меня задание hive ql main.sql, вызываемое через скрипт оболочки main.ksh. Сценарий запланирован, хотя задание cron выполняется один раз в день. Мне нужно захватить количество записей, обработанных и вставленных в целевую таблицу с помощью main.sql в таблицу mysql для целей аудита. Как мы можем этого добиться?

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

Вы можете использовать свойства таблицы, заданные информацией hive и grep, такие как numRows.

INSERTED_ROWS=$(echo $(hive -e "describe formatted sample_table partition(dt='$DATE_WRITTEN')") 
| grep -o 'numRows.*' 
| awk '{print $3}')

Если вы не используете разделы для вставки новых данных, вы можете использовать

select COUNT(*) from table where='your_condition'

и анализируем значение.

0 голосов
/ 19 октября 2019

Вы можете перенаправить вывод в некоторый файл, а затем строку grep, например «вставленную» в этот временный файл, а затем извлечь целое число, используя другую команду grep

Ниже приведен примерный подход

1. Sh myscript.sh > tmp.txt 
2. tmp.txt | grep "insert" | grep -Eo '[0-9] > finalcount.txt
...