JDBC URL issue when creating Data Source using Teradata JDBC (16.20.00.12)
I am experiencing an issue when attempting to create a Data Source (for a View) using my Teradata 16.20.00.12 JDBC driver. Just for background, I am working with a 60-day development licensed Yellowfin environment which I have installed on a Linux VM and am attempting to source data from a Teradata 16.20 Express VM running on the same host.
I have already uploaded the latest Teradata JDBC driver (16.20.00.12) to the Plugin Manager:
Here is a screenshot of the error I am receiving after I hit the 'Test Connection' button when creating/filling out the Data Source form in Yellowfin:
I've also attached the yellowfin.log capturing the same error as well as the java error stacktrace.
One thing I understand very well is that the Teradata JDBC connection parameter for Database Port is supposed to be 'DBS_PORT' with an underscore, and not 'DBSPORT'. (as referenced here: https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_2.html), and that is what I suspect is the root cause.
At first I wondered where Yellowfin was storing the JDBC URL once it attempts to create the Data Source, because I could not find it in anywhere in the UI. Then I noticed that the metadata for the Data Sources for a View are stored within the ReportViewSource table (here is what I see in my instance of MySQL 8 below).
Within the ReportViewSource table, I noticed that the DatabaseURL string for my Teradata JDBC connection indeed showed the parameter as: jdbc:teradata://192.168.1.7/DATABASE=DBC,DBSPORT=1025
So I decided to try something bold and decided to run the following UPDATE statement to replace the string with the correct 'DBS_PORT' parameter as such:
SET DatabaseURL = REPLACE(DatabaseURL, 'DBSPORT', 'DBS_PORT')
WHERE SourceId = 70018 -- specific SourceID that was generated on my environment.
With the correct parameter now reflected in the DatabaseURL in the metadata, I then restarted my YellowFin Tomcat instance hoping that it would refresh the application metadata into the cache.
However I am still receiving the same error:
Based on this troubleshooting attempt, I have a few questions:
- Have I stumbled upon a bug? In other words, is there a particular reason why my actions in using the Teradata JDBC Driver creates a DatabaseURL with the incorrect parameter of 'DBSPORT' and not 'DBS_PORT'?
- Do I have the right idea to try and resolve, by updating the string within the ReportsViewSource.DatabaseURL field? Is the reason why this is not working is because I haven't properly/completely evicted the metadata cache from the server? Is there a better way to workaround this?
- Is there any reason why Teradata 16.20 drivers wouldn't be supported yet on Yellowfin? (I looked at the Confluence pages, and noticed that although there was no JDBC page available for 'Teradata' under the data sources section, 'Teradata' was listed as a supported driver in the larger list: https://wiki.yellowfinbi.com/display/user80/JDBC+Connections )
Any help/insight would be appreciated, and I'd be happy to share more information about my environment if needed. Thanks!