从 ddl 文件在配置单元中创建表
Create tables in hive from ddl files
我正在使用 JRuby 连接到 Hive,这是成功发生的。现在我想创建 tables,但不是将 create 语句作为参数写入 execute() 方法,我想调用一个具有 table 定义的 ddl 文件。
我无法获取文件内容并使用它们,因为在实际 table 创建之前它们通常不止一条语句(即如果不存在则创建数据库,如果不存在则创建 TABLE .. )
我可以通过 JDBC 连接使用获取 ddl 文件并执行它的命令吗?
据我所知,JDBC API 没有直接的方法来执行类似于 hive -f 的操作,
选项1)
您可以解析 SQL 文件并编写一个方法来按顺序执行命令(或)使用第三方代码,
这里有一个参考 http://www.codeproject.com/Articles/802383/Run-SQL-Script-sql-containing-DDL-DML-SELECT-state
选项2)如果你的Jruby代码为运行ning的客户端环境也支持hive,写一个shell脚本可以连接远程JDBC和运行 SQL 使用直线进行远程 Thrift 调用
参考:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients
我正在使用 JRuby 连接到 Hive,这是成功发生的。现在我想创建 tables,但不是将 create 语句作为参数写入 execute() 方法,我想调用一个具有 table 定义的 ddl 文件。
我无法获取文件内容并使用它们,因为在实际 table 创建之前它们通常不止一条语句(即如果不存在则创建数据库,如果不存在则创建 TABLE .. )
我可以通过 JDBC 连接使用获取 ddl 文件并执行它的命令吗?
据我所知,JDBC API 没有直接的方法来执行类似于 hive -f 的操作, 选项1) 您可以解析 SQL 文件并编写一个方法来按顺序执行命令(或)使用第三方代码,
这里有一个参考 http://www.codeproject.com/Articles/802383/Run-SQL-Script-sql-containing-DDL-DML-SELECT-state
选项2)如果你的Jruby代码为运行ning的客户端环境也支持hive,写一个shell脚本可以连接远程JDBC和运行 SQL 使用直线进行远程 Thrift 调用
参考:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients