2014-09-18 62 views
0

我正在使用Golang编写Impala客户端。大多数情况下使用它来执行SELECT查询和获取结果。 我查看了Impala-Python驱动程序以供参考。 http://blog.cloudera.com/blog/2014/04/a-new-python-client-for-impala/检查Impala中的操作状态

在发送带有要执行的查询的EXECUTE thrift消息后,客户端获取该执行操作的操作句柄。然后,它通过向impala服务器发送GETOPERATIONSTATE thrift消息来查询此操作的状态,直到响应成功/完成。

有没有办法以任何其他方式知道操作状态,而不是使用多个状态请求轮询服务器?一旦操作成功,Impala服务器可以发送消息吗?

我在运行impala外壳时检查了数据包捕获。在查看结果之前,它也会发送EXECUTE消息,然后发送GETOPERATIONSTATE消息。

+1

是GitHub上Golang Impala客户端的源代码?我很想看看! – 2014-09-20 20:13:39

+0

尚未...仍然在私人回购。我会在Github上更新这个线程。 – user3321437 2014-09-23 17:54:14

回答

0

Impala支持HiveServer2(Hive)和Beeswax(Hue)API,这两个API都需要轮询来确定查询状态。