Manage Database Drivers
When using the Database Query component, Matillion ETL requires a Type 4 JDBC Driver to be loaded. Depending on the platform, Matillion ETL is delivered with some Type 4 drivers, but due to licencing restrictions, some drivers will need to be uploaded manually via the Manage Database Drivers dialog.
Type 3 drivers should also work, but these remain untested.
Note
This page describes database drivers used with the Database Query component. Drivers listed below—such as Snowflake or Amazon Redshift—do not require you to also be running Matillion ETL for Snowflake and/or Matillion ETL for Redshift respectively. For example, users on Matillion ETL for BigQuery can run the Database Query component connecting to a Snowflake or Redshift database.
Drivers
Database | Driver included? | Version | Download/info |
---|---|---|---|
Amazon Redshift | Yes | 2.0 | https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-download-driver.html |
IBM DB2 | No. Manual upload required. | Match your DB2 version. | http://www-01.ibm.com/support/docview.wss?uid=swg21363866. Use the db2jcc4.jar |
IBM DB2 for i | JTOpen | 6.0 | http://jt400.sourceforge.net/ |
Microsoft SQL Server | JTDS | 1.31. | http://jtds.sourceforge.net/ |
MySQL | No. Manual upload required. | v8 recommended. | https://dev.mysql.com/downloads/connector/j/. The file name required is normally mysql-connector-java-X.X.XX.jar where X.X.XX is the version number. For example, 5.1.47. |
Netezza | No. Manual upload required. | Any. Latest recommended. | https://www.ibm.com/docs/en/psfa/7.2.1?topic=configuration-installing-configuring-jdbc |
Oracle | No. Manual upload required. | Supports v12 and higher. | http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html. The file name required is normally ojdbc8.jar . |
PostgreSQL | Yes | 42.3.4 | https://jdbc.postgresql.org/ |
SAP Hana | No. Manual upload required. | Any. Latest recommended. | https://developers.sap.com/tutorials/hana-clients-jdbc.html |
Snowflake | Yes. | 3.13.26. Release notes. | https://docs.snowflake.com/en/user-guide/jdbc-download.html |
SQL Server (Microsoft driver) | Yes | Any. Latest recommended. | https://learn.microsoft.com/en-us/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-ver15 |
Sybase ASE | JTDS | 1.31. | http://jtds.sourceforge.net/ |
Teradata | No. Manual upload required. | Any. Latest recommended. | https://downloads.teradata.com/download/connectivity/jdbc-driver. |
Uploading a driver via the Matillion ETL UI
This will associate the driver you are uploading with the listed drivers, and ensure it is loaded by Matillion ETL when you attempt a database connection.
- Click Admin → Manage Database Drivers.
- Click New.
- Choose a driver from the dropdown menu and click OK.
- Click Browse and locate your
.jar
file. - Click Test to confirm that file upload is successful.
- Click OK to finish.
Note
- In some instances, a driver is not contained as a single
.jar
file, but has some dependencies. If you can add these dependant.jar
files as additional uploads, they will be added to the driver class path. - Currently, users can only add drivers specified in the
jdbc-providers.properties
file. If your dropdown menu is empty, or missing the driver you want to add, see the below question: "I have a Type 4 JDBC driver for a database that is not listed here, can I connect?".
FAQ
Where are driver files stored?
When a driver is uploaded via the Matillion ETL UI, it is placed and loaded from the following location in the instance's file system:
Snowflake and Amazon Redshift:
/usr/share/tomcat/Drivers/<Driver Group Name>/
Google BigQuery:
/etc/tomcat/Drivers/<Driver Group Name>/
Where <Driver Group Name>
is the name of the driver group in the Matillion ETL UI. For example, Teradata.
I have a Type 4 JDBC driver for a database that is not listed here, can I connect?
Yes—but some configuration file changes are needed to support this. The drivers supported in Matillion ETL are configurable in the following file:
/usr/share/emerald/WEB-INF/classes/jdbc-providers.properties.
In here you will see a JSON file with the repeating elements—a set for each driver will be present.
To add an entry for IQ, copy an existing block such as the ASE example above, and then edit it. Be careful with the commas between the blocks. If the JSON syntax is incorrect, Matillion ETL wont start.
Each entry is defined by the following entries:
name
: This can be anything and will just show up in the Database Query Component with this name.driver
: The base class name for the JDBC driver.url
: A template URL used to prompt the user to enter the correct JDBC URL.fetchsize
: The number of rows fetched at once, if supported by the database driver.limit
: When Matillione ETL gets metadata about the query, butprepmeta
isfalse
, it needs to fetch one row of data to determine this metadata. This is done using a limit, but different databases support different ways of supporting that:top-n
:SELECT TOP 1 * FROM (query)
fetch-first-n
:query FETCH FIRST 1 ROWS ONLY
limit-outer
: SELECT * FROM (query) LIMIT 1
limit-inline
:query LIMIT 1
rownum
:SELECT * FROM (query) WHERE ROWNUM <=1
none
: query
prepmeta
: (True or False) Whether the metadata for the query can be retrieved using a prepared statement. The default istrue
. If a driver is throwing errors, set tofalse
and choose an appropriate limit above.allowUpload
: (True or False) Enables the ability to upload your own driver.jar
via the UI. Recommended value istrue
.defaultProperties
: Any documented driver properties to set by default. These can be overridden in the UI.
For example:
{
"name" : "Sybase IQ",
"driver" : "com.sybase.jdbc4.jdbc.SybDriver",
"url" : "jdbc:sybase:Tds:12.140.13.8:2638",
"fetchSize" : "500",
"limit" : "top-n",
"prepmeta" : true,
"allowUpload" : true,
"defaultProperties" : {"loginTimeout": "20"}
}
{
"name" : "Amazon Athena",
"driver" : "com.simba.athena.jdbc.Driver",
"url" : "jdbc:awsathena://athena.<REGION>.amazonaws.com:443",
"fetchSize" : "500",
"limit" : "limit-outer",
"prepmeta" : false,
"allowUpload" : true,
"defaultProperties" : {"loginTimeout": "20"}
}
How do I avoid the "No suitable driver found" error when attempting to add a Snowflake driver?
In addition to the previous question, the entry in the jdbc-providers.properties
file for Snowflake may be incorrect and require minor edits. To avoid a "No suitable driver found" error, the entry should take the form:
{"name" : "SnowCDW",
"driver" : "com.snowflake.client.jdbc.SnowflakeDriver",
"url" : "jdbc:snowflake://host/?warehouse=whs",
"fetchSize" : "500",
"limit" : "limit-inline",
"prepmeta" : false,
"allowUpload" : true
}
Please contact support if you're experiencing difficulties with database drivers.