[TASK][MEDIUM] Allow returning custom response for GetInfo request
#5371 aperta il 8 ott 2023
Metriche repository
- Star
- (2332 star)
- Metriche merge PR
- (Nessuna PR mergiata in 30 g)
Descrizione
Code of Conduct
- I agree to follow this project's Code of Conduct
Search before creating
- I have searched in the task list and found no similar tasks.
Mentor
- I have sufficient knowledge and experience of this task, and I volunteer to be the mentor of this task to guide contributors to complete the task.
Skill requirements
- Basic knowledge on Scala Programming Language
- Basic knowledge on Network programming and Apache Thrift RPC framework
- Basic knowledge on ODBC and Power BI / Tableau
Background and Goals
Kyuubi implements the Hive-compatible Thrift-based API, just as Impala and Spark Thrift Server do, so technically, the Hive JDBC/ODBC clients based on Thrift-API should work smoothly with Apache Kyuubi.
Unfortunately, we found some clients verify the GetInfo results and may reject the connection from an unrecognized Server. See details at https://github.com/apache/kyuubi/issues/3032
After https://github.com/apache/kyuubi/pull/3122, it allows a return of either SERVER’s information or ENGINE’s information in the GetInfo response, but it is not always sufficient, we may want to make it configurable so that the user can configure Kyuubi to return any information they want, to make it’s easy to impersonate any kind of Server to allow ODBC clients like PowerBI and Tableau to connect.
- Make ODBC-based clients support Apache Kyuubi smoothly
- Supply docs for how to use Power BI and Tableau connect to Apache Kyuubi
Implementation steps
Currently, the value candidates of kyuubi.server.info.provider are SERVER and ENGINE, we can introduce a new option CUSTOM with additional configuration to allow users to configure each property of GetInfo response.
- Make Kyuubi Server support return a custom GetInfo response
- Supply docs for how to use Power BI connect to Apache Kyuubi
- Supply docs for how to use Tableau connect to Apache Kyuubi
Additional context
Introduction of https://github.com/apache/kyuubi/issues/6232