Não é possível resolver $ proc_date do script

0

Eu tenho vários HQLs, abaixo está o exemplo.

localizado em: / home / ganesh / CopyJobs / hql /

insert into XYZ.exttbl_form_data PARTITION (load_date="$proc_date") select FORM_DATA_ID,FORM_ID,USER_ID,INTERACTIONS_ID,SUBMISSION_DATETIME,FILEDS from PQR.exttbl_form_data where load_date="$proc_date" 

No script principal, estou lendo os HQLs acima mencionados como

export proc_date=2018-05-07

while read line
do
export hql='cat /home/ganesh/CopyJobs/hql/$table_name.hql'

export hql_final=$('eval echo"$hql"')
echo "Final HQL: $hql_final"
hive -e "$hql_final;"

done < /home/ganesh/CopyJobs/config/tables.txt 

onde em tables.txt tem lista de todos os HQL.

Eu quero resolver o $ proc_date, mas isso não está acontecendo.

    
por Ganesh 10.05.2018 / 07:00

1 resposta

0

Não tenho certeza se o $ ( eval echo"$hql" ) é uma boa escolha.

  • adicione um espaço entre echo e "$hql"
  • não há menos que quatro substituições aqui, eu usaria 3 linhas.

Eu usaria o modelo hql file, por exemplo substitua load_date="$proc_date" por LOAD_DATA_TMPL

então, dentro do loop

hql_final=$(sed s:LOAD_DATA_TMPL:load_date="$proc_date":g /home/ganesh/...)
echo "Final HQL: $hql_final"
hive -e "$hql_final;"
  • verifique se não há espaço em $proc_date
por 10.05.2018 / 08:53