Third-generation JDBC DriverΒΆ

Qubole has released a new JDBC driver version (referred to as the third-generation JDBC driver).

It supports two modes:

  • Legacy mode: This is the default mode and the behavior is identical to previous JDBC driver versions (version 2.3.2 and earlier).
  • QDS Bypass mode: You can enable it by setting qds_bypass=true. In this mode, only the Presto engine is supported for now. This setting allows the JDBC driver to communicate directly with the Presto coordinator for submitting commands and fetching results. In this mode, the JDBC driver provides the following benefits:
    • It is designed to deliver much faster performance than the previous generation drivers. Third-generation drivers can deliver upto 60-70% improvement in latency for simple SELECT queries and around 18-20% improvement, on an average in runtime of larger complex workloads such as TPCDS benchmarks.
    • The third-generation driver comes with enhanced security through HTTPS and user authentication (through API token).

The third-generation JDBC driver retains some of the other benefits of previous generation JDBC drivers such as:

  • The query history is available in the QDS Analyze/Workbench page. To enable it, set show_on_ui=true.
  • Qubole JDBC drivers support cluster lifecycle management (CLCM) (that is cluster start/stop). The cluster does not have to be running all the time. Idle clusters are terminated by the Qubole Control Plane and queries executed through the Qubole JDBC driver bring the cluster up.

In addition, the third-generation driver differs from previous versions in the following ways:

  • It does not store query results on the cloud object storage and as a result the Analyze/Workbench UI does not show query results.
  • Commands are visible on the Analyze/Workbench UI only after the query completion.
  • It does not allow submitting batched queries but it only allows submitting single queries.
  • Currently, this version of the driver only supports Presto in the QDS_bypass mode. You must set the command type in the connection string to presto and the cluster label to that of a Presto cluster.
  • As it communicates directly to the Presto master on the cluster, it requires additional setup as described in Required Setup for Third-generation JDBC Driver.