[TASK][MEDIUM] Allow returning custom response for GetInfo request
#5,371 创建于 2023年10月8日
仓库指标
- Star
- (2,332 star)
- PR 合并指标
- (30 天内没有已合并 PR)
描述
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