我正在使用jruby连接到hive,这是成功的。现在我想创建表,但是我不想将create语句作为参数写入execute()方法,而是要调用具有表定义的ddl文件。我无法获取文件内容并使用它们,因为在实际创建表之前,它们通常不止一条语句(即,如果不存在,则创建数据库,如果不存在,则创建表…)有没有一个命令可以通过我的jdbc connect使用,它接收ddl文件并执行它?
2vuwiymt1#
据我所知,JDBCAPI没有直接的方法来执行类似于hive-f的操作,选项1)您可以解析sql文件并编写一个方法来按顺序执行命令(或)使用第三方代码,这里有一个参考http://www.codeproject.com/articles/802383/run-sql-script-sql-containing-ddl-dml-select-state选项2)如果运行jruby代码的客户机环境也支持hive,那么编写一个shell脚本,它可以连接到远程jdbc,并使用beeline运行sql,从而进行远程thrift调用参考文献:https://cwiki.apache.org/confluence/display/hive/hiveserver2+clients
1条答案
按热度按时间2vuwiymt1#
据我所知,JDBCAPI没有直接的方法来执行类似于hive-f的操作,选项1)您可以解析sql文件并编写一个方法来按顺序执行命令(或)使用第三方代码,
这里有一个参考http://www.codeproject.com/articles/802383/run-sql-script-sql-containing-ddl-dml-select-state
选项2)如果运行jruby代码的客户机环境也支持hive,那么编写一个shell脚本,它可以连接到远程jdbc,并使用beeline运行sql,从而进行远程thrift调用
参考文献:https://cwiki.apache.org/confluence/display/hive/hiveserver2+clients