JDBC Driver¶
Presto can be accessed from Java using the JDBC driver. Download presto-jdbc-0.290.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.290</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. |