Usually we can get data using ODBC connector in Power BI. Is there any way to get the data using the JDBC connector?
Unfortunately there is no native support for JDBC.
You can upvote the feature request for JDBC at this link
There are options that convert your JDBC connection in to an ODBC one, known as JDBC to ODBC bridges. Oracle has one and here is a Progress option. Once configured you can then use the PowerBI ODBC connector.
Since Power BI is not coded in java its not easy to support JDBC (you will see only ODBC or .net based connectors in PBI). If Microsoft ever wants to add support for JAVA in Power BI then they might have to do via some sort of bridge.
If you are open for 3rd party solution then here is one option by ZappySys
This same problem happens in many non java apps like Excel, MS Access, Informatica PowerCenter they all are not coded in JAVA so cant support loading java libs / runtime.
Related
TL;DR:
Is there a way to connect to an Oracle DB via JDBC without the Oracle JDBC driver? Or any other way (e.g. hibernate)?
Full story:
We have an existing Spring Boot app, which connects to an Oracle 11c database instance using OJDBC driver. Spring Boot internally uses JdbcTemplate to execute a few inserts and selects, basically 5 or 6 type of statements. Technically it is working fine.
However we are in an interesting situation, the code we built has to pass through a series of checks (we are working as subcontractors under a larger international company), and part of these checks is a license inspection. BlackDuck (https://www.blackducksoftware.com) is used to report every single library which is linked in the solution (around 280 in our case), and we had to manually add the copyright statement to each (for example: "Copyright © 2005-2019 The Apache Software Foundation. All Rights Reserved."). We added the Oracle Technology Network license to the Oracle Driver, and it was rejected by the legal team of the international company:
"Unless we are actually licensed to use an Oracle database (which you are not), we cannot allow the use and distribution of the Oracle JDBC drivers. Those drivers are licensed under the Oracle Technology network license and it obligates XXX [company name] to designate Oracle as a 3rd party beneficiary, which is not something our legal department allows. You must therefore find a compatible replacement that is licensed under open source."
Now, we are obviously trying to get around this thing (seeing as the end client who is receiving the solution has a licensed Oracle DB installed, and we can see earlier versions of the OJDBC driver in the company's Nexus repository), but I wanted to ask, is there a way to connect to an Oracle DB via JDBC without the Oracle JDBC driver? Or any other way (e.g. hibernate)? To my knowledge, Oracle DB communication protocol is not fully standard, that's why you need the Oracle drivers. Is there an open source alternative that I don't know of?
Oracle DB communication protocol is not only "not fully standard", there is simply no SQL or JDBC standard for any on-the-wire communication protocol for SQL databases, they are all proprietary.
There is no open-source alternative that I'm aware of, and there couldn't be without Oracle's help as the protocol is not publicly specified as far as I know. We solved a similar problem by having our customers with an Oracle license add the driver to their deployment of our app, that way we didn't redistribute it, and they were the ones who used it.
Yes, use someone else's driver. Progress makes one for example.
I'm not speaking on behalf of Oracle in terms of the quality of THIS driver or the legal terms concerning your decision to not use our driver. However, there are alternatives to our driver for Java applications, and this is one of them.
the connection using Excel works fine, but trying the same using PowerQuery does not seems to work, is it supported ?
iccube is not directly supported, no. (We typically support sources with buttons in the ribbon.)
It looks like iccube supports an Analysis Services connection interface: https://www.iccube.com/support/documentation/user_guide/integration/excel.php
If connecting with the "Analysis Services" button doesn't work, maybe the Power Query OleDb connector with the OleDb Analysis Services driver would work?
In Talend 5x, I was able to use the Generic ODBC connection to connect to an ODBC source (QuickBooks QODBC). I was able to read and extract data fine from QuickBooks.
I see that Talend 6 doesn't have that ability to connect to Generic ODBC any longer. Can someone suggest an example, workaround or alternative to be able to connect to a Windows ODBC source? I see the JDBC connection - is there an example somewhere I can see if it will do the same thing?
Thanks in advance,
HL
odbc support was removed in Talend 6.0
Presumably, you could rollback to Talend 5.x and Java 1.7. Or, look in the Talend Exchange 3rd-party components for an odbc component.
https://www.talendforge.org/forum/viewtopic.php?id=46670
In Talend 6x you can use tJDBCConnection and the other components that start with tJDBC to make a connection with ODBC. It's a built in Java driver for ODBC.
I tried to upgrade my server JVM to java 8 but I was surprised that Oracle has removed JDBC ODBC bridge from Java 8 !
I searched for alternatives and I found people here provide another solution by a library called UCanAccess but it's mainly for accessing Access DB not Excel sheet.
My question is, can I use UCanAccess to access excel sheeting using same JDBC ODBC bridge used on current application ?
Thanks.
UCanAccess is for accessing a Micrsoft Access database through JDBC, so it cannot be used to access an Excelsheet. You could have found this information by looking at the UCanAccess sourceforge page:
UCanAccess is a pure Java JDBC Driver implementation which allows java developers and jdbc client programs to read/write Microsoft Access database (.mdb and .accdb files). No ODBC needed.
As Stackoverflow is not for software recommendations, I suggest you use your favorite search engine to look for an Excel JDBC driver (they exist, but some of them cost money).
I like understand the 'Hive ODBC Connector' concept. means What is a use of Hive ODBC Connector in the architecture.
Does it require to set-up the DSN (data source Name ). Can we go for DSN-less configuration ?
Please explain in details
If you have one of the distributions from Cloudera, Hortonworks, MapR, Intel, Microsoft or DataStax, they already come with an ODBC driver in the distribution. The driver is created by Simba Technologies (http://www.simba.com/connectors/apache-hadoop-hive-odbc).
If you're using the Apache version of Hadoop, you can still trial the version of the ODBC driver on the above link for 30 days, however you will need to pay for it to continue use.
I only mention the above as this ODBC driver is a more complete implementation of the ODBC specification than the open source one, and it can also do SQL-HiveQL translation which essentially means that you can plug it into Excel or Tableau or the like and have them issue standard SQL. As mc110 mentioned, you can make DSN or DSN-less connections and there is also a Windows configuration dialog available should you wish to use that.
Also, in the interests of full disclosure, I work for Simba Technologies.
As explained at https://cwiki.apache.org/confluence/display/Hive/HiveODBC, the Hive ODBC connector implements the ODBC API for Hive, potentially allowing a lot of existing well-written ODBC applications to seamlessly use Hive as they would any other database. The link also explains what API calls are and are not supported.
SQLDriverConnect is supported, which implies you can make DSN-less connections. I suggest you read the information from the link for more information. Also, http://www.cloudera.com/content/cloudera-content/cloudera-docs/Connectors/PDF/Cloudera-ODBC-Driver-for-Apache-Hive-Install-Guide.pdf has a section on configuring DSN-less authentication.