JDBC Driver
Presto can be accessed from Java using the JDBC driver. Download presto-jdbc-0.289.jar and add it to the class path of your Java application.
The driver is also available from Maven Central:
<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.289</version>
</dependency>
Requirements
The Presto JDBC driver has the following requirements:
Java version 8 or higher.
All users that connect to Presto with the JDBC driver must be granted access to query tables in the
system.jdbc
schema.
Connecting
The following JDBC URL formats are supported:
jdbc:presto://host:port
jdbc:presto://host:port/catalog
jdbc:presto://host:port/catalog/schema
For example, use the following URL to connect to Presto running on example.net
port 8080
with the catalog hive
and the schema sales
:
jdbc:presto://example.net:8080/hive/sales
The above URL can be used as follows to create a connection:
String url = "jdbc:presto://example.net:8080/hive/sales";
Connection connection = DriverManager.getConnection(url, "test", null);
Connection Parameters
The driver supports various parameters that may be set as URL parameters or as properties passed to DriverManager
. Both of the following examples are equivalent:
// properties
String url = "jdbc:presto://example.net:8080/hive/sales";
Properties properties = new Properties();
properties.setProperty("user", "test");
properties.setProperty("password", "secret");
properties.setProperty("SSL", "true");
Connection connection = DriverManager.getConnection(url, properties);
// URL parameters
String url = "jdbc:presto://example.net:8443/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);
These methods may be mixed; some parameters may be specified in the URL while others are specified using properties. However, the same parameter may not be specified using both methods.
Parameter Reference
Name | Description |
---|---|
| Username to use for authentication and authorization. |
| Password to use for LDAP authentication. |
| SOCKS proxy host and port. Example: |
| HTTP proxy host and port. Example: |
| Comma delineated list of HTTP protocols to use. Example: |
| Prefix to append to any specified |
| Access token for token based authentication. |
| Timezone to be used for timestamp columns in query output. Example: |
| Disable compression of query result HTTP responses from the server |
| Use HTTPS for connections |
| The location of the Java KeyStore file that contains the certificate and private key to use for authentication. |
| The password for the KeyStore. |
| The location of the Java TrustStore file that will be used to validate HTTPS server certificates. |
| The password for the TrustStore. |
| Presto coordinator Kerberos service name. This parameter is required for Kerberos authentication. |
| The principal to use when authenticating to the Presto coordinator. |
| Use the canonical hostname of the Presto coordinator for the Kerberos service principal by first resolving the hostname to an IP address and then doing a reverse DNS lookup for that IP address. This is enabled by default. |
| Kerberos configuration file. |
| Kerberos keytab file. |
| Kerberos credential cache. |
| Extra credentials for connecting to external services. The extraCredentials is a list of key-value pairs. Example: |
| Custom headers to inject through JDBC driver. The customHeaders is a list of key-value pairs. Example: |
| Validates that host and port in next URI does not change during query execution. |
| Disable Presto client to follow a redirect as a security measure. |