代码之家  ›  专栏  ›  技术社区  ›  thebluephantom SCouto

仅将投影IMPALA查询输出分配给shell变量

  •  0
  • thebluephantom SCouto  · 技术社区  · 7 年前

    在mysql和ORACLE中,很容易从查询输出中去掉列名和其他内容。

    当使用IMPALA并将IMPALA查询的输出分配给shell变量时,这一点并不明显。像sed这样的事情似乎是需要的。有没有其他方法可以将投影数据直接导入shell变量?

    在下面,只需要shell变量中的AAAAA,而不是所有的|和+-+。

    +------+ | v | +-------+ | AAAAAA | +-----+
    

    我不相信用黑斑羚可以做得很优雅。

    1 回复  |  直到 7 年前
        1
  •  2
  •   nxl4    7 年前

    我经常在Impala工作流的shell脚本包装中使用这种模式。假设您的查询是一个将输出单个数字的计数器,您希望在shell脚本的其他地方将该数字用作变量。它可能看起来像这样:

    COUNT_VAR='0'
    
    COUNT_VAR=$(impala-shell -k -i $SERVER -B -q "
    SELECT COUNT(DISTINCT session) AS session_count
    FROM database.table
    WHERE datadate = '20171106';")
    
    echo "Today there were ${COUNT_VAR} sessions."