Presto 0.182 Documentation

2.3. JDBC Driver

2.3. JDBC Driver

Presto can be accessed from Java using the JDBC driver. Download presto-jdbc-0.182.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.182</version>
</dependency>

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:

// URL parameters
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);

// properties
String url = "jdbc:presto://example.net:8080/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
user Username to use for authentication and authorization.
password Password to use for LDAP authentication.
socksProxy SOCKS proxy host and port. Example: localhost:1080
httpProxy HTTP proxy host and port. Example: localhost:8888
SSL Use HTTPS for connections
SSLTrustStorePath The location of the Java TrustStore file that will be used to validate HTTPS server certificates.
SSLTrustStorePassword The password for the TrustStore.
KerberosRemoteServiceName Presto coordinator Kerberos service name. This parameter is required for Kerberos authentiation.
KerberosPrincipal The principal to use when authenticating to the Presto coordinator.
KerberosUseCanonicalHostname 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.
KerberosConfigPath Kerberos configuration file.
KerberosKeytabPath Kerberos keytab file.
KerberosCredentialCachePath Kerberos credential cache.