Details
-
Improvement
-
Status: Patch Available
-
Minor
-
Resolution: Unresolved
-
2.3.2
-
None
Description
This exposes async API in HiveStatement (jdbc module)
The JDBC interface always have had strict synchronous APIs.
So the hive JDBC implementation also had to follow it though the hive server is fully asynchronous.
Developers trying to build proxies on top of hive servers end up writing thrift client from scratch to make it asynchronous and robust to its restarts.
The common pattern is
- Submit query, get operation handle and store in a persistent store
- Poll and wait for completion
- Stream results
- In the event of restarts, restore OperationHandle from persistent store and continue execution.
The patch does 2 things
- exposes operation handle (once a query is submitted) getOperationhandle()
Developers can persist this along with the actual hive server url getJdbcUrl - latch APIs
Developers can create a statement and latch on to an operation handle that was persisted earlier. For latch, the statement should be created from the actual hive server URI connection in which the query was submitted.