[TASK][MEDIUM] Allow returning custom response for GetInfo request
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before creating
- [X] I have searched in the [task list](https://github.com/orgs/apache/projects/296) and found no similar tasks.
### Mentor
- [X] 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
Contributor guide
Research direction
Start by tracing the GetInfo response handling and the kyuubi.server.info.provider configuration, then review the related context in issues 3032 and 6232. Define the configuration needed for a CUSTOM provider and document Power BI and Tableau connection guidance; done means Kyuubi can return configured GetInfo values and both client guides are supplied.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- api, backend, documentation
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100