我有一个shell脚本代码,可以自动执行beeline命令。该代码能够连接到JDBC,但是它位于那儿,似乎不执行Shell脚本中的其他代码,即。它不会截断表,不会加载数据,不会插入。下面是完整的代码:
Scaffold-DbContext
我可以看到以下输出:
#! /bin/bash
timestamp=$(date +%Y-%m-%d-%H:%M:%S:%N)
unix_time=$(date +%Y-%m-%d-%H:%M:%S)
export
BEELINE_PREFIX='"jdbc:hive2://server:port,server:port,server:port/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveser
ver2;principal=hive/server@hello.COM"'
beeline -u $BEELINE_PREFIX -e use next;
echo "truncating the staging table tbl1..."
beeline -u $BEELINE_PREFIX -e "TRUNCATE TABLE next.tbl1;"
echo "Loading the data in stating table tbl1"
beeline -u $BEELINE_PREFIX -e "LOAD DATA LOCAL INPATH 'path_to/tbl1.txt' INTO TABLE next.tbl1;"
echo "Appending the data into history table tbl1.."
beeline -u $BEELINE_PREFIX -e "insert into table next.hist_tbl1 select *,'$unix_time' from next.tbl1;"
When I execute ./tbl1.sh
该代码似乎只执行veru首先的“ beeline -u”,即仅执行JDBC连接。 我注意到,当我使用ctrl + c时,它将前进并抛出错误
Connecting to
jdbc:hive2://jdbc:hive2://server:port,server:port,server:port/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2
;principal=hive/server@hello.COM
Connected to: Apache Hive
Driver: Hive JDBC
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.2.1000.2.6.5.0-292 by Apache Hive
任何想法,这是什么错误?
答案 0 :(得分:0)
问题已解决。在使用蜂巢数据库beeline -u $BEELINE_PREFIX
之前,我在原始代码中使用了额外的"use database".
行。脚本正常运行。