В настоящее время я пишу сценарий оболочки, который будет запрашивать у некоторых таблиц кустов количество записей в месяц для списка таблиц, а затем извлекать значения общего количества в виде файла .txt.В настоящее время у меня есть код, который будет запрашивать все таблицы на ежегодной основе, но как лучше сделать так, чтобы он также циклически работал на ежемесячной основе?
Например, сейчас мой сценарий будет циклически проходить каждый год, который я прохожу (year = 2001, 2002,2003, ...), запрашивать мои таблицы и извлекать файлы.Я бы хотел, чтобы он работал циклично в месяц для каждого года, чтобы в идеале было 12 файлов в год, и продолжал бы цикл в течение всех назначенных мной лет.
Пример псевдокода ниже для того, что у меня сейчас есть:
#!/usr/bin/sh
years=2001,2002,2003,2004
for year in $(echo ${years} | sed "s/,/ /g")
do
select_sql="INSERT OVERWRITE LOCAL DIRECTORY <path> ROW FORMAT DELIMITED FIELDS TERMINATED BY '~' select * from tbl where year(date)=$year"
beeline -u "<jdbc connection>" --hiveconf -e "$select_sql"
done