我正在使用JRuby连接到Hive,这正在成功发生。现在我想创建表,但不是将create语句作为execute()方法的参数编写,我想调用一个具有表定义的ddl文件。
我无法获取文件内容并使用它们,因为它们通常在实际表创建之前有多个语句(即CREATE DATABASE IF NOT NOT EXISTS,CREATE TABLE IF NOT NOT EXISTS ..)
是否有可以通过我的JDBC连接使用ddl文件并执行它的命令?
答案 0 :(得分:0)
据我所知,JDBC API没有直接的方法来执行类似于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