JDBC Driver

The e6data JDBC driver requires Java LTS (Long-Term Support) versions 1.8 (Java 8) or higher. If the minimum required version of Java is not installed on the client machines where the JDBC driver is installed, either Oracle Java or OpenJDK should be installed.

Prerequisites

  • Java 8 or;

    • Oracle Java

      Oracle Java currently supports Java 8. For download and installation instructions, visit the Oracle Java website.

    • OpenJDK

      OpenJDK is an open-source implementation of Java that provides JDK 8 packages for various Linux environments. Packages for non-Linux environments or higher Java versions are only available through 3rd parties. For more information, visit the OpenJDK website.

  • Enable Ingress to the cluster by:

  • Generate a Personal Access Token (PAT)

    • A cluster restart is required each time a new PAT is created.

Supported Authentication Methods

  • Use a Username and Personal Access Token (PAT). To generate a PAT, see Personal Access Tokens.

Download JDBC Driver

E6Data JDBC Driver

Configuring the JDBC Driver

Connection URL

Get the cluster address from Clusters > Select Target Cluster > Connector

The e6data JDBC connection URL follows the below format:

jdbc:e6data://<HOSTNAME>:<PORT>/database=<DATABASE>&catalog=<CATALOG_NAME>&secure=true&cluster-uuid=<CLUSTER UUID>

Example:

jdbc:e6data://123.123.123.123:443/database=tpcds_1tb&catalog=glue&secure=true&cluster-uuid=abcde

JDBC Driver Class name

io.e6.jdbc.driver.E6Driver

Connection Parameters

The driver supports various parameters that may be set as URL parameters, or as properties passed to DriverManager.

Example:

Properties properties = new Properties();
properties.put("user", ""); // copy the username from e6data cluster connection info page in the e6data console
properties.put("password", ""); // password is the Personal Access Token (PAT) generated in the e6data cluster connector tab

// e6data connection url
String connectStr = "jdbc:e6data://<HOSTNAME>:<PORT>/database=<DATABASE>&catalog=<CATALOG_NAME>&secure=true&cluster-uuid=<CLUSTER UUID>";
Connection connection = DriverManager.getConnection(connectStr, properties);
  • <HOSTNAME>

    • Get the hostname from Clusters > Select Target Cluster > Connector

  • <PORT>

    • Get the hostname from Clusters > Select Target Cluster > Connector

  • <CATALOG_NAME>

    • The choice of catalog name could be—"Glue," "Hive," or "Unity"—depending on the specific catalog you are utilizing.

  • As an alternative, rather than specifying these parameters in the connection string, you can set these parameters in a Properties object that you pass to the DriverManager.getConnectionIO method.

Properties properties = new Properties();
properties.put("user", ""); // copy the username from e6data cluster connection info page in the e6data console
properties.put("password", ""); // password is the Personal Access Token (PAT) generated in the e6data cluster connector tab
// e6data connection url
String connectStr = "jdbc:e6data://<HOSTNAME>:<PORT>/database=<DATABASE>&catalog=<CATALOG_NAME>&secure=true&cluster-uuid=<CLUSTER UUID>";
Connection connection = DriverManager.getConnection(connectStr, properties);
  • IDLE_TIMEOUT

    • Set this parameter to prevent long-running queries by automatically aborting a query after a set interval.

  • connectionTimeout

    • If the JDBC connector is taking a long time to connect, a connection timeout can be added using this parameter.

Known Limitations

  • Streaming Features/Capabilities Not Supported:

    • InputStream, getAsciiStream, and similar streaming features are not supported by the JDBC driver.

  • SQL Warning-Related Operations Not Supported:

    • Operations such as clearWarnings are not supported by the driver.

  • Cursor Movements Not Supported:

    • Cursor movement operations like isFirst, isLast, isAfterLast, etc., are not supported.

  • DML Operations Not Supported:

    • DML (Data Manipulation Language) operations like updateString, updateBytes, commit, etc., are not supported.

  • Callable Statements Not Supported:

    • Callable statement-related operations like prepareCall and getFunctions are not supported.

  • Retrieving Database Information:

    • Methods for retrieving database version information such as getDatabaseMinorVersion and getDatabaseMajorVersion are not supported.

  • No Filtering of Columns Based on Column Pattern:

    • The getColumns method in DatabaseMetaData does not support column filtering based on patterns.

  • Struct and Array Columns:

    • The getColumns method in DatabaseMetaData won't support struct and Array columns.

  • Timestamp Query Timezone Requirement:

    • When setting timestamps in queries, the timezone must be in UTC.

Last updated