-
Notifications
You must be signed in to change notification settings - Fork 930
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] Connect from PowerBI #3032
Comments
I'm sorry I'm not familiar w/ PB and ODBC, and I think the Microsoft Spark ODBC Driver is not an open-source project. I see |
And for The DBMS_NAME and DBMS_VER are defined at |
hi @pan3793, thanks for your help |
So, great news, 1.5.2 with the code edit is working as well :) |
Glad to see it works! Would you like to send a PR to "make these two values configurable" and(or) add a document in "quick start" section to share how to use Power BI to connect Kyuubi? |
Yes, would like to. Except, this would be my first commit to kyuubi project, so guide me here :) |
Yes, of course.
Yes. To achieve this, you should add the For documents, you can add a new page in the folder |
### _Why are the changes needed?_ Workaround for #3032, close #3323 There are known some ODBC drivers e.g. [Databricks ODBC driver](https://www.databricks.com/spark/odbc-drivers-download) depending on `TGetInfoType.CLI_DBMS_VER` and `TGetInfoType.CLI_DBMS_NAME` to check server compatibilities and abilities. This PR proposes to introduce a new configuration `kyuubi.server.info.provider=SERVER/ENGINE` to make GetInfo support return either server or engine information. Since beeline will call GetInfo in the initialization phase, to make sure the beeline fast open experience, in async launch mode, when the engine is not ready, return server info regardless `kyuubi.server.info.provider`. ### _How was this patch tested?_ - [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [x] Add screenshots for manual tests if appropriate Testing w/ PowerBI  - [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #3122 from pan3793/info. Closes #3122 742bdbe [Cheng Pan] nit bb85d2b [Cheng Pan] style fd75238 [Cheng Pan] fix 9ddb2af [Cheng Pan] nit fd8f797 [Cheng Pan] fix ut 840205e [Cheng Pan] nit f9996d5 [Cheng Pan] GetInfo supports returning engine info Authored-by: Cheng Pan <[email protected]> Signed-off-by: Cheng Pan <[email protected]>
### _Why are the changes needed?_ Workaround for #3032, close #3323 There are known some ODBC drivers e.g. [Databricks ODBC driver](https://www.databricks.com/spark/odbc-drivers-download) depending on `TGetInfoType.CLI_DBMS_VER` and `TGetInfoType.CLI_DBMS_NAME` to check server compatibilities and abilities. This PR proposes to introduce a new configuration `kyuubi.server.info.provider=SERVER/ENGINE` to make GetInfo support return either server or engine information. Since beeline will call GetInfo in the initialization phase, to make sure the beeline fast open experience, in async launch mode, when the engine is not ready, return server info regardless `kyuubi.server.info.provider`. ### _How was this patch tested?_ - [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [x] Add screenshots for manual tests if appropriate Testing w/ PowerBI  - [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #3122 from pan3793/info. Closes #3122 742bdbe [Cheng Pan] nit bb85d2b [Cheng Pan] style fd75238 [Cheng Pan] fix 9ddb2af [Cheng Pan] nit fd8f797 [Cheng Pan] fix ut 840205e [Cheng Pan] nit f9996d5 [Cheng Pan] GetInfo supports returning engine info Authored-by: Cheng Pan <[email protected]> Signed-off-by: Cheng Pan <[email protected]>
This issue has been addressed in #3122, w/ configuration The feature will be available in 1.6.1-incubating. |
cc @WANGHui2022, since you reported this issue in another channel. |
### _Why are the changes needed?_ Workaround for apache#3032, close apache#3323 There are known some ODBC drivers e.g. [Databricks ODBC driver](https://www.databricks.com/spark/odbc-drivers-download) depending on `TGetInfoType.CLI_DBMS_VER` and `TGetInfoType.CLI_DBMS_NAME` to check server compatibilities and abilities. This PR proposes to introduce a new configuration `kyuubi.server.info.provider=SERVER/ENGINE` to make GetInfo support return either server or engine information. Since beeline will call GetInfo in the initialization phase, to make sure the beeline fast open experience, in async launch mode, when the engine is not ready, return server info regardless `kyuubi.server.info.provider`. ### _How was this patch tested?_ - [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [x] Add screenshots for manual tests if appropriate Testing w/ PowerBI  - [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes apache#3122 from pan3793/info. Closes apache#3122 742bdbe [Cheng Pan] nit bb85d2b [Cheng Pan] style fd75238 [Cheng Pan] fix 9ddb2af [Cheng Pan] nit fd8f797 [Cheng Pan] fix ut 840205e [Cheng Pan] nit f9996d5 [Cheng Pan] GetInfo supports returning engine info Authored-by: Cheng Pan <[email protected]> Signed-off-by: Cheng Pan <[email protected]>
@hanna-liashchuk I used PowerBi to connect kyuub_1.6.0, but there was a problem. Because there was an extra layer of "spark_catalog" in kyuubi's schema, PB would treat the database as a table. I saw that you also used PB to connect kyuubi, could you please give me some advice. |
@marszd we are using Spark connector with protocol: Standart. Have you tried using it? |
Code of Conduct
Search before asking
Describe the bug
Since Kyuubi is an alternative to STS, I've tried to connect to it from PowerBI (PB) for some reports but met some errors along the way. PB refuses to connect to version 1.5.2 with the error "The host and port specified for the connection do not seem to belong to a Spark server", connection to 1.4.1 works OK, but functionality is very limited, e.g. creating a "Top N" filter fails with an error.
After some investigation on the second one, I found out PB thinks that 1.4.1 is a Spark version and cuts functionality as it's too old.
ODBC logs can bee found here
SparkODBC-1.4.1.log
SparkODBC-1.5.2.log
I've built Kyuubi with spark version (3.2.1) instead of 1.4.1 and PB was working as expected. Under the hood, PB is using Microsoft Spark ODBC Driver.
Is there a way to configure Kyuubi metadata to work with Power BI? Otherwise it's a great tool that can't be used in companies that have found themselves in a vendor lock-in and since Power BI is a Microsoft tool, I believe there are enough of them
Affects Version(s)
1.4.1-incubating, 1.5.2-incubating
Kyuubi Server Log Output
No response
Kyuubi Engine Log Output
No response
Kyuubi Server Configurations
No response
Kyuubi Engine Configurations
No response
Additional context
No response
Are you willing to submit PR?
The text was updated successfully, but these errors were encountered: