根据配置单元查询输出发送电子邮件

时间:2017-12-14 22:07:41

标签: hive

如何根据配置单元查询输出发送电子邮件。假设我有一个表格,我想检查数字是否在另一个表的另外两个数字之间。我可以在sql查询中检查它并将sql输出返回为0或1。

现在问题是我如何使用mailx或基于该sql输出的同一脚本中的等效文件发送电子邮件。

2 个答案:

答案 0 :(得分:0)

  

$ var = hive -S -e "select '0' from test;"   $ echo $ var

     

0

     

$ var = hive -S -e "select '1' from test;"

     

$ echo $ var

     

1

选项:在oozie中使用shell操作来运行shell脚本,该脚本将内联执行hive命令并将输出捕获为变量中的0/1。使用shell中的变量来调用mailx。

答案 1 :(得分:0)

您可以选择工作流程来运行,您可以使用oozie或第三方工具或着名的cron作业。您可以利用以下shell脚本根据Beeline / hive的输出发送电子邮件。

#!bin/bash
#Output variable from hive ql
Output=beeline -u ${hiveConnectionSTRING} --silent=true -e "your query that pulls the output as 0 or 1"

#Condition check and sending the email with mailx utility
if [ $Output -gt 0 ];
then
echo "output is zero"
#Email need to be added
#Username=From address(This is the name before your domain EX: Stack@domain name)
echo -e 'your email message should be here \n\n\n\nThank you,' |  mailx -r $UserName -s 'Your Subject' -c stackoverflow@gmail.com(your email cc address) -- stackoverflow@gmail.com(your email to address)0
else
echo -e 'your email message should be here \n\n\n\nThank you,' |  mailx -r $UserName -s 'Your Subject' -c stackoverflow@gmail.com(your email cc address) -- stackoverflow@gmail.com(your email to address)0 
echo "output is 1"  
fi