是否有编程方式验证HiveQL语句是否存在诸如基本语法错误之类的错误?我想在将语句发送到Elastic Map Reduce之前检查语句,以节省调试时间。
最佳答案
就在这里!
实际上,这很容易。
脚步:
1.用您的语言获得一个 hive 式储蓄客户端。
我在 ruby 中,所以我使用了这个包装器-https://github.com/forward/rbhive(gem install rbhive)
如果您不是 ruby 用户,则可以下载hive源,并在随附的Thrift配置文件上运行Thrift,以生成大多数语言的客户端代码。
2.在端口10001上连接到Hive并运行一个描述查询
在ruby中,它看起来像这样:
RBHive.connect(host, port) do |connection|
connection.fetch("describe select * from categories limit 10")
end
如果查询无效,则客户端将引发异常,并详细说明语法无效的原因。如果语法是有效的,Describe将返回一个查询树(在这种情况下可以忽略)
希望能有所帮助。
关于hive - 验证Hive HQL语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155780/