Cloudera JDBC Driver for Impala Installation and Configuration Guide

Cloudera JDBC Driver for Impala Installation and Configuration Guide
Cloudera JDBC Driver for Impala
Version 2.5.38
Important Notice
© 2010-2017 Cloudera, Inc. All rights reserved.
Cloudera, the Cloudera logo, and any other product or service names or slogans contained in this
document, except as otherwise disclaimed, are trademarks of Cloudera and its suppliers or
licensors, and may not be copied, imitated or used, in whole or in part, without the prior written
permission of Cloudera or the applicable trademark holder.
Hadoop and the Hadoop elephant logo are trademarks of the Apache Software Foundation. All
other trademarks, registered trademarks, product names and company names or logos
mentioned in this document are the property of their respective owners. Reference to any
products, services, processes or other information, by trade name, trademark, manufacturer,
supplier or otherwise does not constitute or imply endorsement, sponsorship or
recommendation thereof by us.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the
rights under copyright, no part of this document may be reproduced, stored in or introduced into
a retrieval system, or transmitted in any form or by any means (electronic, mechanical,
photocopying, recording, or otherwise), or for any purpose, without the express written
permission of Cloudera.
Cloudera may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Cloudera, the furnishing of this document does not give you any
license to these patents, trademarks copyrights, or other intellectual property.
The information in this document is subject to change without notice. Cloudera shall not be liable
for any damages resulting from technical errors or omissions which may be present in this
document, or from use of this document.
Cloudera, Inc.
1001 Page Mill Road, Building 2
Palo Alto, CA 94304-1008
info@cloudera.com
US: 1-888-789-1488
Intl: 1-650-843-0595
www.cloudera.com
Release Information
Version: 2.5.38
Date: May 31, 2017
2 | Cloudera JDBC Driver for Impala
Table of Contents
ABOUT THE CLOUDERA JDBC DRIVER FOR I MPALA
5
SYSTEM R EQUIREMENTS
6
CLOUDERA JDBC DRIVER FOR I MPALA FILES
7
I NSTALLING AND U SING THE CLOUDERA JDBC DRIVER FOR I MPALA
8
REFERENCING THE JDBC DRIVER L IBRARIES
8
REGISTERING THE DRIVER CLASS
8
BUILDING THE CONNECTION URL
9
CONFIGURING AUTHENTICATION
11
U SING N O A UTHENTICATION
11
U SING KERBEROS
11
U SING U SER N AME
12
U SING U SER N AME A ND PASSWORD (LDAP)
13
CONFIGURING KERBEROS A UTHENTICATION FOR WINDOWS
13
U SING KERBEROS CONSTRAINED DELEGATION
17
CONFIGURING SSL
19
CONFIGURING SERVER-SIDE PROPERTIES
21
CONFIGURING L OGGING
22
FEATURES
24
SQL TRANSLATION
24
DATA TYPES
24
CATALOG AND SCHEMA SUPPORT
25
WRITE-BACK
25
SECURITY AND A UTHENTICATION
26
INTERFACES AND SUPPORTED METHODS
27
DRIVER CONFIGURATION OPTIONS
84
A LLOWSELFSIGNED CERT
84
A SYNC E XEC POLLINTERVAL
84
A UTH MECH
84
CAISSUED CERTSMISMATCH
85
CATALOG SCHEMASWITCH
85
DEFAULTSTRING COLUMNL ENGTH
85
DELEGATIONUID
86
KRB A UTH TYPE
86
KRB HOSTFQDN
87
KRB REALM
87
Cloudera JDBC Driver for Impala | 3
KRB SERVICEN AME
87
L OG L EVEL
87
L OG PATH
88
L OWER CASERESULTSETCOLUMNN AME
89
O PTIMIZED INSERT
89
PREPARED METAL IMITZERO
89
PWD
90
ROWSFETCHED PER BLOCK
90
SOCKETTIMEOUT
90
SSL
91
SSLKEYSTORE
91
SSLKEYSTOREPWD
91
SSLTRUSTSTORE
92
SSLTRUSTSTOREPWD
92
STRIP CATALOG N AME
92
SUPPORTTIMEO NLYTIMESTAMP
93
UID
93
U SEN ATIVEQUERY
93
U SESASL
94
CONTACT U S
95
4 | Cloudera JDBC Driver for Impala
About the Cloudera JDBC Driver for Impala
About the Cloudera JDBC Driver for Impala
The Cloudera JDBC Driver for Impala is used for direct SQL and Impala SQL access to Apache
Hadoop / Impala distributions, enabling Business Intelligence (BI), analytics, and reporting on
Hadoop / Impala-based data. The driver efficiently transforms an application’s SQL query into the
equivalent form in Impala SQL, which is a subset of SQL-92. If an application is Impala-aware, then
the driver is configurable to pass the query through to the database for processing. The driver
interrogates Impala to obtain schema information to present to a SQL-based application. Queries,
including joins, are translated from SQL to Impala SQL. For more information about the
differences between Impala SQL and SQL, see "Features" on page 24.
The Cloudera JDBC Driver for Impala complies with the JDBC 4.0 and 4.1 data standards. JDBC is
one of the most established and widely supported APIs for connecting to and working with
databases. At the heart of the technology is the JDBC driver, which connects an application to the
database. For more information about JDBC, see the Data Access Standards Glossary:
http://www.simba.com/resources/data-access-standards-library.
This guide is suitable for users who want to access data residing within Impala from their desktop
environment. Application developers might also find the information helpful. Refer to your
application for details on connecting via JDBC.
Cloudera JDBC Driver for Impala | 5
System Requirements
System Requirements
Each machine where you use the Cloudera JDBC Driver for Impala must have Java Runtime
Environment (JRE) installed. The version of JRE that must be installed depends on the version of
the JDBC API you are using with the driver. The following table lists the required version of JRE for
each provided version of the JDBC API.
JDBC API Version
JRE Version
4.0
6.0 or later
4.1
7.0 or later
The driver is recommended for Impala versions 1.0.1 through 2.5, and CDH versions 5.0 through
5.10. The driver also supports later minor versions of CDH 5.
6 | Cloudera JDBC Driver for Impala
Cloudera JDBC Driver for Impala Files
Cloudera JDBC Driver for Impala Files
The Cloudera JDBC Driver for Impala is delivered in the following two ZIP archives, where [Version]
is the version number of the driver:
l
ImpalaJDBC4_[Version].zip
l
ImpalaJDBC41_[Version].zip
Each archive contains the driver supporting the JDBC API version indicated in the archive name, as
well as release notes and third party license information.
Cloudera JDBC Driver for Impala | 7
Installing and Using the Cloudera JDBC Driver for Impala
Installing and Using the Cloudera JDBC Driver for Impala
To install the Cloudera JDBC Driver for Impala on your machine, extract the files from the
appropriate ZIP archive to the directory of your choice.
To access an Impala data store using the Cloudera JDBC Driver for Impala, you need to configure
the following:
l
The list of driver library files (see "Referencing the JDBC Driver Libraries" on page 8)
l
The Driver or DataSource class (see "Registering the Driver Class" on page 8)
l
The connection URL for the driver (see "Building the Connection URL" on page 9)
Important:
The Cloudera JDBC Driver for Impala is a forward-only, read-only driver with no transaction
support. Because the driver does not support transactions, auto-commit is always set to true.
Referencing the JDBC Driver Libraries
Before you use the Cloudera JDBC Driver for Impala, the JDBC application or Java code that you
are using to connect to the data store must be able to access the driver JAR files. In the application
or code, specify all the JAR files that you extracted from the appropriate ZIP archive.
Using the Driver in a JDBC Application
Most JDBC applications provide a set of configuration options for adding a list of driver library
files. Use the provided options to include all the JAR files from the ZIP archive as part of the driver
configuration in the application. For more information, see the documentation for your JDBC
application.
Using the Driver in Java Code
You must include all the driver library files in the class path. This is the path that the Java Runtime
Environment searches for classes and other resource files. For more information, see "Setting the
Class Path" in the Java SE Documentation:
l
l
For Windows:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
For Linux and Solaris:
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html
Registering the Driver Class
Before connecting to the data store, you must register the appropriate class for your application.
The following is a list of the classes used to connect the Cloudera JDBC Driver for Impala to Impala
data stores. The Driver classes extend java.sql.Driver, and the DataSource classes
extend javax.sql.DataSource and javax.sql.ConnectionPoolDataSource.
8 | Cloudera JDBC Driver for Impala
Installing and Using the Cloudera JDBC Driver for Impala
To support JDBC 4.0, classes with the following FQCNs are available:
l
com.cloudera.impala.jdbc4.Driver
l
com.cloudera.impala.jdbc4.DataSource
To support JDBC 4.1, classes with the following FQCNs are available:
l
com.cloudera.impala.jdbc41.Driver
l
com.cloudera.impala.jdbc41.DataSource
The following sample code shows how to use the DriverManager to establish a connection for
JDBC 4:
Note:
In these examples, the line Class.forName(DRIVER_CLASS); is only required for JDBC 4.0
and earlier.
private static Connection connectViaDM() throws Exception
{
Connection connection = null;
Class.forName(DRIVER_CLASS);
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
The following sample code shows how to use the DataSource class to establish a connection:
private static Connection connectViaDS() throws Exception
{
Connection connection = null;
Class.forName(DRIVER_CLASS);
DataSource ds = new com.cloudera.impala.jdbc41.DataSource();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
Building the Connection URL
Use the connection URL to supply connection information to the data store that you are
accessing. The following is the format of the connection URL for the Cloudera JDBC Driver for
Impala, where [Host] is the DNS or IP address of the Impala server and [Port] is the number of the
TCP port that the server uses to listen for client requests:
jdbc:impala://[Host]:[Port]
Note:
By default, Impala uses port 21050.
Cloudera JDBC Driver for Impala | 9
Installing and Using the Cloudera JDBC Driver for Impala
By default, the driver uses the schema named default.
You can specify optional settings such as the schema to use or any of the connection properties
supported by the driver. For a list of the properties available in the driver, see "Driver
Configuration Options" on page 84.
Note:
If you specify a property that is not supported by the driver, then the driver attempts to apply
the property as a Impala server-side property for the client session. For more information, see
"Configuring Server-Side Properties" on page 21.
The following is the format of a connection URL that specifies some optional settings:
jdbc:impala://[Host]:[Port]/[Schema];[Property1]=[Value];
[Property2]=[Value];...
For example, to connect to port 18000 on an Impala server installed on the local machine, use a
schema named default2, and authenticate the connection using a user name and password, you
would use the following connection URL:
jdbc:impala://node1.example.com:18000/default2;AuthMech=3;
UID=cloudera;PWD=cloudera
Important:
l
Properties are case-sensitive.
l
Do not duplicate properties in the connection URL.
10 | Cloudera JDBC Driver for Impala
Configuring Authentication
Configuring Authentication
The Cloudera JDBC Driver for Impala supports the following authentication mechanisms:
l
No Authentication
l
Kerberos
l
User Name
l
User Name And Password
You configure the authentication mechanism that the driver uses to connect to Impala by
specifying the relevant properties in the connection URL.
For information about configuring the authentication mechanism that Impala uses, see the
Impala documentation: http://www.cloudera.com/content/cloudera/en/documentation.html.
For information about the properties you can use in the connection URL, see "Driver
Configuration Options" on page 84.
Note:
In addition to authentication, you can configure the driver to connect over SSL. For more
information, see "Configuring SSL" on page 19.
Using No Authentication
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To configure a connection without authentication:
Set the AuthMech property to 0.
For example:
jdbc:impala://localhost:21050;AuthMech=0;
Using Kerberos
Kerberos must be installed and configured before you can use this authentication mechanism. For
information about configuring and operating Kerberos on Windows, see "Configuring Kerberos
Authentication for Windows" on page 13. For other operating systems, see the MIT Kerberos
documentation: http://web.mit.edu/kerberos/krb5-latest/doc/.
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
Note:
The driver also supports Kerberos constrained delegation. For more details on this, see "Using
Kerberos Constrained Delegation " on page 17.
Cloudera JDBC Driver for Impala | 11
Configuring Authentication
To configure default Kerberos authentication:
1. Set the AuthMech property to 1.
2. To use the default realm defined in your Kerberos setup, do not set the KrbRealm
property.
If your Kerberos setup does not define a default realm or if the realm of your Impala server
is not the default, then set the KrbRealm property to the realm of the Impala server.
3. Set the KrbHostFQDN property to the fully qualified domain name of the Impala server
host.
4. If you are using Kerberos Constrained Delegation, set the userGSSCredential property
to your Kerberos GSS Credential.
5. Optionally, specify how the driver obtains the Kerberos Subject by setting the
KrbAuthType property as follows:
l
l
l
To configure the driver to automatically detect which method to use for obtaining
the Subject, set the KrbAuthType property to 0. Alternatively, do not set the
KrbAuthType property.
Or, to create a LoginContext from a JAAS configuration and then use the Subject
associated with it, set the KrbAuthType property to 1.
Or, to create a LoginContext from a Kerberos ticket cache and then use the Subject
associated with it, set the KrbAuthType property to 2.
For more detailed information about how the driver obtains Kerberos Subjects based on
these settings, see "KrbAuthType" on page 86.
For example, the following connection URL connects to a Impala server with Kerberos enabled,
but without SSL enabled:
jdbc:impala://node1.example.com:21050;AuthMech=1;
KrbRealm=EXAMPLE.COM;KrbHostFQDN=node1.example.com;
KrbServiceName=impala
In this example, Kerberos is enabled for JDBC connections, the Kerberos service principal name is
impala/node1.example.com@EXAMPLE.COM, the host name for the data source is
node1.example.com, and the server is listening on port 21050 for JDBC connections.
Using User Name
This authentication mechanism requires a user name but does not require a password. The user
name labels the session, facilitating database tracking.
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To configure User Name authentication:
1. Set the AuthMech property to 2.
2. Set the UID property to an appropriate user name for accessing the Impala server.
12 | Cloudera JDBC Driver for Impala
Configuring Authentication
For example:
jdbc:impala://node1.example.com:21050;AuthMech=2;UID=impala
Using User Name And Password (LDAP)
This authentication mechanism requires a user name and a password. It is most commonly used
with LDAP authentication.
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To configure User Name And Password authentication:
1. Set the AuthMech property to 3.
2. Set the UID property to an appropriate user name for accessing the Impala server.
3. Set the PWD property to the password corresponding to the user name you provided.
For example, the following connection URL connects to a Impala server with LDAP authentication
enabled, but without SSL or SASL enabled:
jdbc:impala://node1.example.com:21050;AuthMech=3;
UID=impala;PWD=cloudera;
In this example, user name and password (LDAP) authentication is enabled for JDBC connections,
the LDAP user name is impala, the password is cloudera, and the server is listening on port 21050
for JDBC connections.
Configuring Kerberos Authentication for Windows
You can configure your Kerberos setup so that you use the MIT Kerberos Ticket Manager to get
the Ticket Granting Ticket (TGT), or configure the setup so that you can use the driver to get the
ticket directly from the Key Distribution Center (KDC). Also, if a client application obtains a Subject
with a TGT, it is possible to use that Subject to authenticate the connection.
Downloading and Installing MIT Kerberos for Windows
To download and install MIT Kerberos for Windows 4.0.1:
1. Download the appropriate Kerberos installer:
l
l
For a 64-bit machine, use the following download link from the MIT Kerberos
website: http://web.mit.edu/kerberos/dist/kfw/4.0/kfw-4.0.1-amd64.msi.
For a 32-bit machine, use the following download link from the MIT Kerberos
website: http://web.mit.edu/kerberos/dist/kfw/4.0/kfw-4.0.1-i386.msi.
Note:
The 64-bit installer includes both 32-bit and 64-bit libraries. The 32-bit installer includes 32bit libraries only.
Cloudera JDBC Driver for Impala | 13
Configuring Authentication
2. To run the installer, double-click the .msi file that you downloaded.
3. Follow the instructions in the installer to complete the installation process.
4. When the installation completes, click Finish.
Using the MIT Kerberos Ticket Manager to Get Tickets
Setting the KRB5CCNAME Environment Variable
You must set the KRB5CCNAME environment variable to your credential cache file.
To set the KRB5CCNAME environment variable:
1. Click Start
, then right-click Computer, and then click Properties.
2. Click Advanced System Settings.
3. In the System Properties dialog box, on the Advanced tab, click Environment Variables.
4. In the Environment Variables dialog box, under the System Variables list, click New.
5. In the New System Variable dialog box, in the Variable Name field, type KRB5CCNAME.
6. In the Variable Value field, type the path for your credential cache file. For example, type
C:\KerberosTickets.txt.
7. Click OK to save the new variable.
8. Make sure that the variable appears in the System Variables list.
9. Click OK to close the Environment Variables dialog box, and then click OK to close the
System Properties dialog box.
10. Restart your machine.
Getting a Kerberos Ticket
To get a Kerberos ticket:
1. Click Start , then click All Programs, and then click the Kerberos for Windows (64-bit) or
Kerberos for Windows (32-bit) program group.
2. Click MIT Kerberos Ticket Manager.
3. In the MIT Kerberos Ticket Manager, click Get Ticket.
4. In the Get Ticket dialog box, type your principal name and password, and then click OK.
If the authentication succeeds, then your ticket information appears in the MIT Kerberos Ticket
Manager.
Authenticating to the Impala Server
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To authenticate to the Impala server:
Use a connection URL that has the following properties defined:
14 | Cloudera JDBC Driver for Impala
Configuring Authentication
l
AuthMech
l
KrbHostFQDN
l
KrbRealm
l
KrbServiceName
For detailed information about these properties, see "Driver Configuration Options" on page 84
Using the Driver to Get Tickets
Deleting the KRB5CCNAME Environment Variable
To enable the driver to get Ticket Granting Tickets (TGTs) directly, make sure that the
KRB5CCNAME environment variable has not been set.
To delete the KRB5CCNAME environment variable:
1. Click the Start button
, then right-click Computer, and then click Properties.
2. Click Advanced System Settings.
3. In the System Properties dialog box, click the Advanced tab and then click Environment
Variables.
4. In the Environment Variables dialog box, check if the KRB5CCNAME variable appears in the
System variables list. If the variable appears in the list, then select the variable and click
Delete.
5. Click OK to close the Environment Variables dialog box, and then click OK to close the
System Properties dialog box.
Setting Up the Kerberos Configuration File
To set up the Kerberos configuration file:
1. Create a standard krb5.ini file and place it in the C:\Windows directory.
2. Make sure that the KDC and Admin server specified in the krb5.ini file can be resolved
from your terminal. If necessary, modify
C:\Windows\System32\drivers\etc\hosts.
Setting Up the JAAS Login Configuration File
To set up the JAAS login configuration file:
1. Create a JAAS login configuration file that specifies a keytab file and doNotPrompt=true.
For example:
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="PathToTheKeyTab"
principal="cloudera@CLOUDERA"
doNotPrompt=true;
Cloudera JDBC Driver for Impala | 15
Configuring Authentication
};
2. Set the java.security.auth.login.config environment variable to the location
of the JAAS file.
For example: C:\KerberosLoginConfig.ini.
Authenticating to the Impala Server
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To authenticate to the Impala server:
Use a connection URL that has the following properties defined:
l
AuthMech
l
KrbHostFQDN
l
KrbRealm
l
KrbServiceName
For detailed information about these properties, see "Driver Configuration Options" on
page 84.
Using an Existing Subject to Authenticate the Connection
If the client application obtains a Subject with a TGT, then that Subject can be used to
authenticate the connection to the server.
To use an existing Subject to authenticate the connection:
1. Create a PrivilegedAction for establishing the connection to the database.
For example:
// Contains logic to be executed as a privileged action
public class AuthenticateDriverAction
implements PrivilegedAction<Void>
{
// The connection, which is established as a
PrivilegedAction
Connection con;
// Define a string as the connection URL
static String ConnectionURL =
"jdbc:impala://192.168.1.1:21050";
/**
* Logic executed in this method will have access to the
* Subject that is used to "doAs". The driver will get
* the Subject and use it for establishing a connection
* with the server.
16 | Cloudera JDBC Driver for Impala
Configuring Authentication
*/
@Override
public Void run()
{
try
{
// Establish a connection using the connection URL
con = DriverManager.getConnection(ConnectionURL);
}
catch (SQLException e)
{
// Handle errors that are encountered during
// interaction with the data store
e.printStackTrace();
}
catch (Exception e)
{
// Handle other errors
e.printStackTrace();
}
return null;
}
}
2. Run the PrivilegedAction using the existing Subject, and then use the connection.
For example:
// Create the action
AuthenticateDriverAction authenticateAction = new
AuthenticateDriverAction();
// Establish the connection using the Subject for
// authentication.
Subject.doAs(loginConfig.getSubject(), authenticateAction);
// Use the established connection.
authenticateAction.con;
Using Kerberos Constrained Delegation
The driver can also be configured to use Kerberos Constrained Delegation. This feature allows a
service to obtain service tickets to a restricted list of other services running on specific servers on
the network after it has been presented with a service ticket. For more details on the process see:
https://technet.microsoft.com/en-ca/library/cc995228.aspx.
The userGSSCredential connection property can be used in the connection URL to pass in a
GSSCredential object. The following sample code shows how to use the property to pass the
GSSCredential into the driver using JDBC 4.1.
GSSCredential userCredential = [GSSCredential]
Cloudera JDBC Driver for Impala | 17
Configuring Authentication
Driver driver = (Driver) Class.forName
("com.cloudera.impala.jdbc41.Driver").newInstance();
Properties properties = new Properties();
properties.put("userGSSCredential", userCredential);
Connection conn = driver.connect(
"jdbc:impala://node1.example.com:21050;AuthMech=1;KrbRealm=E
XAMPLE.COM;
KrbHostFQDN=node1.example.com;KrbServiceName=impala"
,properties);
18 | Cloudera JDBC Driver for Impala
Configuring SSL
Configuring SSL
Note:
In this documentation, "SSL" indicates both TLS (Transport Layer Security) and SSL (Secure
Sockets Layer). The driver supports industry-standard versions of TLS/SSL.
If you are connecting to an Impala server that has Secure Sockets Layer (SSL) enabled, you can
configure the driver to connect to an SSL-enabled socket. When connecting to a server over SSL,
the driver uses one-way authentication to verify the identity of the server.
One-way authentication requires a signed, trusted SSL certificate for verifying the identity of the
server. You can configure the driver to access a specific TrustStore or KeyStore that contains the
appropriate certificate. If you do not specify TrustStore or KeyStore, then the driver uses the
default Java TrustStore named jssecacerts. If jssecacerts is not available, then the driver
uses cacerts instead.
You provide this information to the driver in the connection URL. For more information about the
syntax of the connection URL, see "Building the Connection URL" on page 9.
To configure SSL:
1. If you are not using one of the default Java TrustStores, then do one of the following:
l
Create a TrustStore and configure the driver to use it:
a. Create a TrustStore containing your signed, trusted server certificate.
b. Set the SSLTrustStore property to the full path of the TrustStore.
c. Set the SSLTrustStorePwd property to the password for accessing the
TrustStore.
l
Or, create a KeyStore and configure the driver to use it:
a. Create a KeyStore containing your signed, trusted server certificate.
b. Set the SSLKeyStore property to the full path of the KeyStore.
c. Set the SSLKeyStorePwd property to the password for accessing the
KeyStore.
2. Set the SSL property to 1.
3. Optionally, to allow the SSL certificate used by the server to be self-signed, set the
AllowSelfSignedCerts property to 1.
4. Optionally, to allow the common name of a CA-issued certificate to not match the host
name of the Impala server, set the CAIssuedCertNamesMismatch property to 1.
Note:
For self-signed certificates, the driver always allows the common name of the certificate to
not match the host name.
Cloudera JDBC Driver for Impala | 19
Configuring SSL
For example, the following connection URL connects to a data source using username and
password (LDAP) authentication, with SSL enabled:
jdbc:impala://localhost:21050;AuthMech=3;SSL=1;
SSLKeyStore=C:\\Users\\bsmith\\Desktop\\keystore.jks;
SSLKeyStorePwd=clouderaSSL123;UID=impala;PWD=cloudera123
Note:
For more information about the connection properties used in SSL connections, see "Driver
Configuration Options" on page 84
20 | Cloudera JDBC Driver for Impala
Configuring Server-Side Properties
Configuring Server-Side Properties
When connecting to a server that is running Impala 2.0 or later, you can use the driver to apply
configuration properties to the server by setting the properties in the connection URL.
Important:
This feature is not supported for earlier versions of Impala, where the SET statement can only be
executed from within the Impala shell.
For example, to set the MEM_LIMIT query option to 1 GB and the REQUEST_POOL query option
to myPool, you would use a connection URL such as the following:
jdbc:impala://localhost:18000/default2;AuthMech=3;
UID=cloudera;PWD=cloudera;MEM_LIMIT=1000000000;REQUEST_
POOL=myPool
Cloudera JDBC Driver for Impala | 21
Configuring Logging
Configuring Logging
To help troubleshoot issues, you can enable logging in the driver.
Important:
Only enable logging long enough to capture an issue. Logging decreases performance and can
consume a large quantity of disk space.
In the connection URL, set the LogLevel key to enable logging at the desired level of detail. The
following table lists the logging levels provided by the Cloudera JDBC Driver for Impala, in order
from least verbose to most verbose.
LogLevel Value
Description
0
Disable all logging.
1
Log severe error events that lead the driver to abort.
2
Log error events that might allow the driver to continue running.
3
Log events that might result in an error if action is not taken.
4
Log general information that describes the progress of the driver.
5
Log detailed information that is useful for debugging the driver.
6
Log all driver activity.
To enable logging:
1. Set the LogLevel property to the desired level of information to include in log files.
2. Set the LogPath property to the full path to the folder where you want to save log files. To
make sure that the connection URL is compatible with all JDBC applications, escape the
backslashes (\) in your file paths by typing another backslash.
For example, the following connection URL enables logging level 3 and saves the log files in
the C:\temp folder:
jdbc:impala://localhost:11000;LogLevel=3;LogPath=C:\\temp
3. To make sure that the new settings take effect, restart your JDBC application and reconnect
to the server.
The Cloudera JDBC Driver for Impala produces the following log files in the location specified
in the LogPath property:
l
A ImpalaJDBC_driver.log file that logs driver activity that is not specific to a
connection.
22 | Cloudera JDBC Driver for Impala
Configuring Logging
l
A Impala_connection_[Number].log file for each connection made to the
database, where [Number] is a number that identifies each log file. This file logs driver
activity that is specific to the connection.
If the LogPath value is invalid, then the driver sends the logged information to the standard
output stream (System.out).
To disable logging:
1. Remove the LogLevel and LogPath properties from the connection URL.
2. To make sure that the new settings take effect, restart your JDBC application and reconnect
to the server.
Cloudera JDBC Driver for Impala | 23
Features
Features
More information is provided on the following features of the Cloudera JDBC Driver for Impala:
l
"SQL Translation" on page 24
l
"Data Types" on page 24
l
"Catalog and Schema Support" on page 25
l
"Write-back" on page 25
l
"Security and Authentication" on page 26
l
"Interfaces and Supported Methods" on page 27
SQL Translation
The Cloudera JDBC Driver for Impala is able to parse queries locally prior to sending them to the
Impala server. This feature allows the driver to calculate query metadata without executing the
query, support query parameters, and support extra SQL features such as JDBC escape sequences
and additional scalar functions that are not available in the Impala-shell tool.
Note:
The driver does not support translation for queries that reference a field contained in a nested
column (an ARRAY, MAP, or STRUCT column). To retrieve data from a nested column, make sure
that the query is written in valid Impala SQL syntax.
Data Types
The Cloudera JDBC Driver for Impala supports many common data formats, converting between
Impala, SQL, and Java data types.
The following table lists the supported data type mappings.
Impala Type
SQL Type
Java Type
ARRAY
VARCHAR
String
BIGINT
BIGINT
java.math.BigInteger
BINARY
VARBINARY
byte[]
BOOLEAN
BOOLEAN
Boolean
CHAR
CHAR
String
(Available only in CDH 5.2 or
later)
24 | Cloudera JDBC Driver for Impala
Features
Impala Type
SQL Type
Java Type
DATE
DATE
java.sql.Date
DECIMAL
DECIMAL
java.math.BigDecimal
DOUBLE
Double
FLOAT
REAL
Float
INT
INTEGER
Long
MAP
VARCHAR
String
SMALLINT
SMALLINT
Integer
STRUCT
VARCHAR
String
TIMESTAMP
TIMESTAMP
java.sql.Timestamp
TINYINT
TINYINT
Short
VARCHAR
VARCHAR
String
(Available only in CDH 5.1 or
later)
DOUBLE
(REAL is an alias for DOUBLE)
(Available only in CDH 5.2 or
later)
Catalog and Schema Support
The Cloudera JDBC Driver for Impala supports both catalogs and schemas to make it easy for the
driver to work with various JDBC applications. Since Impala only organizes tables into
schemas/databases, the driver provides a synthetic catalog named IMPALA under which all of the
schemas/databases are organized. The driver also maps the JDBC schema to the Impala
schema/database.
Note:
Setting the CatalogSchemaSwitch connection property to 1 will cause Impala catalogs to
be treated as schemas in the driver as a restriction for filtering.
Write-back
The Cloudera JDBC Driver for Impala supports translation for the following syntax:
Cloudera JDBC Driver for Impala | 25
Features
l
INSERT
l
CREATE
l
DROP
The driver also supports translation for UPDATE and DELETE syntax, but only when querying Kudu
tables while connected to an Impala server that is running Impala 2.7 or later.
If the statement contains non-standard SQL-92 syntax, then the driver is unable to translate the
statement to SQL and instead falls back to using Impala SQL.
Security and Authentication
To protect data from unauthorized access, some Impala data stores require connections to be
authenticated with user credentials or the SSL protocol. The Cloudera JDBC Driver for Impala
provides full support for these authentication protocols.
Note:
In this documentation, "SSL" indicates both TLS (Transport Layer Security) and SSL (Secure
Sockets Layer). The driver supports industry-standard versions of TLS/SSL.
The driver provides mechanisms that allow you to authenticate your connection using the
Kerberos protocol, your Impala user name only, or your Impala user name and password. You
must use the authentication mechanism that matches the security requirements of the Impala
server. For detailed driver configuration instructions, see "Configuring Authentication" on page
11.
Additionally, the driver supports SSL connections with one-way authentication. If the server has
an SSL-enabled socket, then you can configure the driver to connect to it.
It is recommended that you enable SSL whenever you connect to a server that is configured to
support it. SSL encryption protects data and credentials when they are transferred over the
network, and provides stronger security than authentication alone. For detailed configuration
instructions, see "Configuring SSL" on page 19.
The SSL version that the driver supports depends on the JVM version that you are using. For
information about the SSL versions that are supported by each version of Java, see "Diagnosing
TLS, SSL, and HTTPS" on the Java Platform Group Product Management Blog:
https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https.
Note:
The SSL version used for the connection is the highest version that is supported by both the
driver and the server, which is determined at connection time.
26 | Cloudera JDBC Driver for Impala
Features
Interfaces and Supported Methods
The Cloudera JDBC Driver for Impala implements the following JDBC interfaces:
l
"CallableStatement" on page 27
l
"PooledConnection" on page 57
l
"Connection" on page 37
l
"PreparedStatement" on page 58
l
"DatabaseMetaData" on page 42
l
"ResultSet" on page 64
l
"DataSource" on page 55
l
"ResultSetMetaData" on page 78
l
"Driver" on page 56
l
"Statement" on page 80
l
"ParameterMetaData" on page 56
However, the driver does not support every method from these interfaces. For information about
whether a specific method is supported by the driver and which version of the JDBC API is the
earliest version that supports the method, refer to the following sections.
The driver does not support the following JDBC features:
l
Array
l
SQLData
l
Blob
l
SQLInput
l
Clob
l
SQLOutput
l
Ref
l
Struct
l
Savepoint
CallableStatement
The CallableStatement interface extends the PreparedStatement interface.
The following table lists the methods that belong to the CallableStatement interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
version of the JDBC API is the earliest version that supports the method.
For detailed information about each method in the CallableStatement interface, see the
Java API documentation:
http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/CallableStatement.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Array getArray(int i)
3.0
No
Array getArray(String
3.0
No
Cloudera JDBC Driver for Impala | 27
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
parameterName)
BigDecimal getBigDecimal
(int parameterIndex)
3.0
Yes
BigDecimal getBigDecimal
(int parameterIndex, int
scale)
3.0
Yes
BigDecimal getBigDecimal
(String parameterName)
3.0
Yes
Blob getBlob(int i)
3.0
No
Blob getBlob(String
parameterName)
3.0
No
boolean getBoolean(int
parameterIndex)
3.0
Yes
boolean getBoolean
(String parameterName)
3.0
Yes
byte getByte(int
parameterIndex)
3.0
Yes
byte getByte(String
parameterName)
3.0
Yes
byte[] getBytes(int
parameterIndex)
3.0
Yes
byte[] getBytes(String
parameterName)
3.0
Yes
Clob getClob(int i)
3.0
No
Clob getClob(String
parameterName)
3.0
No
Date getDate(int
parameterIndex)
3.0
Yes
28 | Cloudera JDBC Driver for Impala
Deprecated.
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Date getDate(int
parameterIndex, Calendar
cal)
3.0
Yes
Date getDate(String
parameterName)
3.0
Yes
Date getDate(String
parameterName, Calendar
cal)
3.0
Yes
double getDouble(int
parameterIndex)
3.0
Yes
double getDouble(String
parameterName)
3.0
Yes
float getFloat(int
parameterIndex)
3.0
Yes
float getFloat(String
parameterName)
3.0
Yes
int getInt(int
parameterIndex)
3.0
Yes
int getInt(String
parameterName)
3.0
Yes
long getLong(int
parameterIndex)
3.0
Yes
long getLong(String
parameterName)
3.0
Yes
Reader
getNCharacterStream(int
parameterIndex)
4.0
No
Reader
getNCharacterStream
(String parameterName)
4.0
No
Cloudera JDBC Driver for Impala | 29
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
NClob getNClob(int
parameterIndex)
4.0
No
NClob getNClob(String
parameterName)
4.0
No
String getNString(int
parameterIndex)
4.0
No
String getNString(String
parameterName)
4.0
No
Object getObject(int
parameterIndex)
3.0
Yes
<T> T getObject(int
parameterIndex, Class<T>
type)
4.1
No
Object getObject(int i,
Map<String,Class<?>>
map)
3.0
No
Object getObject(String
parameterName)
3.0
Yes
<T> T getObject(String
parameterName, Class<T>
type)
4.1
No
Object getObject(String
parameterName,
Map<String,Class<?>>
map)
3.0
Yes
Ref getRef(int i)
3.0
No
Ref getRef(String
parameterName)
3.0
No
RowId getRowId(int
parameterIndex)
4.0
No
30 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
RowId getRowId(String
parameterName)
4.0
No
short getShort(int
parameterIndex)
3.0
Yes
short getShort(String
parameterName)
3.0
Yes
SQLXML getSQLXML(int
parameterIndex)
4.0
No
SQLXML getSQLXML(String
parameterName)
4.0
No
String getString(int
parameterIndex)
3.0
Yes
String getString(String
parameterName)
3.0
Yes
Time getTime(int
parameterIndex)
3.0
Yes
Time getTime(int
parameterIndex, Calendar
cal)
3.0
Yes
Time getTime(String
parameterName)
3.0
Yes
Time getTime(String
parameterName, Calendar
cal)
3.0
Yes
Timestamp getTimestamp
(int parameterIndex)
3.0
Yes
Timestamp getTimestamp
(int parameterIndex,
Calendar cal)
3.0
Yes
Timestamp getTimestamp
3.0
Yes
Cloudera JDBC Driver for Impala | 31
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
(String parameterName)
Timestamp getTimestamp
(String parameterName,
Calendar cal)
3.0
Yes
URL getURL(int
parameterIndex)
3.0
No
URL getURL(String
parameterName)
3.0
No
void
registerOutParameter(int
parameterIndex, int
sqlType)
3.0
Yes
void
registerOutParameter(int
parameterIndex, int
sqlType, int scale)
3.0
Yes
void
registerOutParameter(int
paramIndex, int sqlType,
String typeName)
3.0
Yes
void
registerOutParameter
(String parameterName,
int sqlType)
3.0
Yes
void
registerOutParameter
(String parameterName,
int sqlType, int scale)
3.0
Yes
void
registerOutParameter
(String parameterName,
int sqlType, String
typeName)
3.0
Yes
void setAsciiStream
4.0
Yes
32 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
(String parameterName,
InputStream x)
void setAsciiStream
(String parameterName,
InputStream x, int
length)
3.0
Yes
void setAsciiStream
(String parameterName,
InputStream x, long
length)
4.0
Yes
void setBigDecimal
(String parameterName,
BigDecimal x)
3.0
Yes
void setBinaryStream
(String parameterName,
InputStream x)
4.0
Yes
setBinaryStream(String
parameterName,
InputStream x, int
length)
3.0
Yes
void setBinaryStream
(String parameterName,
InputStream x, long
length)
4.0
Yes
void setBlob(String
parameterName, Blob x)
4.0
Yes
void setBlob(String
parameterName,
InputStream inputStream)
4.0
Yes
void setBlob(String
parameterName,
InputStream inputStream,
long length)
4.0
Yes
Cloudera JDBC Driver for Impala | 33
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void setBoolean(String
parameterName, boolean
x)
3.0
Yes
void setByte(String
parameterName, byte x)
3.0
Yes
void setBytes(String
parameterName, byte[] x)
3.0
Yes
void setCharacterStream
(String parameterName,
Reader reader)
4.0
Yes
void setCharacterStream
(String parameterName,
Reader reader, int
length)
3.0
Yes
void setCharacterStream
(String parameterName,
Reader reader, long
length)
4.0
Yes
void setClob(String
parameterName, Clob x)
4.0
Yes
void setClob(String
parameterName, Reader
reader)
4.0
Yes
void setClob(String
parameterName, Reader
reader, long length)
4.0
Yes
void setDate(String
parameterName, Date x)
3.0
Yes
void setDate(String
parameterName, Date x,
Calendar cal)
3.0
Yes
34 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void setDouble(String
parameterName, double x)
3.0
Yes
void setFloat(String
parameterName, float x)
3.0
Yes
void setInt(String
parameterName, int x)
3.0
Yes
void setLong(String
parameterName, long x)
3.0
Yes
void setNCharacterStream
(String parameterName,
Reader value)
4.0
Yes
void setNCharacterStream
(String parameterName,
Reader value, long
length)
4.0
Yes
void setNClob(String
parameterName, NClob
value)
4.0
Yes
void setNClob(String
parameterName, Reader
reader)
4.0
Yes
void setNClob(String
parameterName, Reader
reader, long length)
4.0
Yes
void setNString(String
parameterName, String
value)
4.0
Yes
void setNull(String
parameterName, int
sqlType)
3.0
Yes
void setNull(String
3.0
Yes
Cloudera JDBC Driver for Impala | 35
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
parameterName, int
sqlType, String
typeName)
void setObject(String
parameterName, Object x)
3.0
Yes
void setObject(String
parameterName, Object x,
int targetSqlType)
3.0
Yes
void setObject(String
parameterName, Object x,
int targetSqlType, int
scale)
3.0
Yes
void setRowId(String
parameterName, RowId x)
4.0
Yes
void setShort(String
parameterName, short x)
3.0
Yes
void setSQLXML(String
parameterName, SQLXML
xmlObject)
4.0
Yes
void setString(String
parameterName, String x)
3.0
Yes
void setTime(String
parameterName, Time x)
3.0
Yes
void setTime(String
parameterName, Time x,
Calendar cal)
3.0
Yes
void setTimestamp(String
parameterName, Timestamp
x)
3.0
Yes
void setTimestamp(String
3.0
Yes
36 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
parameterName, Timestamp
x, Calendar cal)
void setURL(String
parameterName, URL val)
3.0
Yes
boolean wasNull()
3.0
Yes
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Connection
The following table lists the methods that belong to the Connection interface, and describes
whether each method is supported by the Cloudera JDBC Driver for Impala and which version of
the JDBC API is the earliest version that supports the method.
For detailed information about each method in the Connection interface, see the Java API
documentation: http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Connection.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void clearWarnings()
3.0
Yes
void close()
3.0
Yes
void commit()
3.0
Yes
Array createArrayOf
(String typeName, Object
[] elements)
4.0
No
Blob createBlob()
4.0
No
Auto-commit cannot be set
to false because it is
hard-coded to true.
Cloudera JDBC Driver for Impala | 37
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Clob createClob()
4.0
No
NClob createNClob()
4.0
No
SQLXML createSQLXML()
4.0
No
Statement createStatement
()
3.0
Yes
Statement createStatement
(int resultSetType, int
resultSetConcurrency)
3.0
No
Statement createStatement
(int resultSetType, int
resultSetConcurrency, int
resultSetHoldability)
3.0
No
Struct createStruct
(String typeName, Object
[] attributes)
4.0
No
boolean getAutoCommit()
3.0
Yes
String getCatalog()
3.0
Yes
Properties getClientInfo
()
4.0
Yes
String getClientInfo
(String name)
4.0
Yes
int getHoldability()
3.0
Yes
DatabaseMetaData
getMetaData()
3.0
Yes
int getNetworkTimeout()
4.1
No
String getSchema()
4.1
Yes
38 | Cloudera JDBC Driver for Impala
Hard-coded to true.
Hard-coded to CLOSE_
CURSORS_AT_COMMIT.
The returned schema name
does not always match the
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
one used by statements.
Statements use the schema
name defined in the
connection URL.
int
getTransactionIsolation()
3.0
Yes
Map<String,Class<?>>
getTypeMap()
3.0
No
SQLWarning getWarnings()
3.0
Yes
boolean isClosed()
3.0
Yes
boolean isReadOnly()
3.0
Yes
boolean isValid(int
timeout)
4.0
Yes
String nativeSQL(String
sql)
3.0
Yes
CallableStatement
prepareCall(String sql)
3.0
No
CallableStatement
prepareCall(String sql,
int resultSetType, int
resultSetConcurrency)
3.0
No
CallableStatement
prepareCall(String sql,
int resultSetType, int
resultSetConcurrency, int
resultSetHoldability)
3.0
No
PreparedStatement
prepareStatement(String
sql)
3.0
Yes
Hard-coded to
TRANSACTION_READ_
UNCOMMITTED.
Returns true.
Cloudera JDBC Driver for Impala | 39
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
PreparedStatement
prepareStatement(String
sql, int
autoGeneratedKeys)
3.0
No
PreparedStatement
prepareStatement(String
sql, int[] columnIndexes)
3.0
No
PreparedStatement
prepareStatement(String
sql, int resultSetType,
int resultSetConcurrency)
3.0
No
PreparedStatement
prepareStatement(String
sql, int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
3.0
No
PreparedStatement
prepareStatement(String
sql, String[]
columnNames)
3.0
No
void releaseSavepoint
(Savepoint savepoint)
3.0
No
Savepoints are not available
because transactions are
not supported.
void rollback()
3.0
No
Savepoints are not available
because transactions are
not supported.
void rollback(Savepoint
savepoint)
3.0
No
Savepoints are not available
because transactions are
not supported.
void setAutoCommit
(boolean autoCommit)
3.0
Yes
Ignored because autocommit is hard-coded to
true.
40 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void setCatalog(String
catalog)
3.0
Yes
void setClientInfo
(Properties properties)
4.0
Yes
void setClientInfo(String
name, String value)
4.0
Yes
void setHoldability(int
holdability)
3.0
Yes
void setNetworkTimeout
(Executor executor, int
milliseconds)
4.1
No
void setReadOnly(boolean
readOnly)
3.0
Yes
Savepoint setSavepoint()
3.0
No
Savepoints are not available
because transactions are
not supported.
Savepoint setSavepoint
(String name)
3.0
No
Savepoints are not available
because transactions are
not supported.
void setSchema(String
schema)
4.1
Yes
Does not actually change
the schema name used by
newly created statements;
only changes the value
returned by getSchema
().
void
setTransactionIsolation
(int level)
3.0
Yes
void setTypeMap
(Map<String,Class<?>>
map)
3.0
No
boolean isWrapperFor
4.0
Yes
Cloudera JDBC Driver for Impala | 41
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
(Class<?> iface)
<T> T unwrap(Class<T>
iface)
4.0
Yes
DatabaseMetaData
The following table lists the methods that belong to the DatabaseMetaData interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
version of the JDBC API is the earliest version that supports the method.
For detailed information about each method in the DatabaseMetaData interface, see the Java
API
documentation:http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/DatabaseMetaData.html.
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean allProceduresAreCallable()
3.0
Yes
Returns true.
boolean allTablesAreSelectable()
3.0
Yes
Returns true.
boolean
autoCommitFailureClosesAllResultSets
()
4.0
Yes
Returns true.
boolean
dataDefinitionCausesTransactionCommi
t()
3.0
Yes
Returns false.
boolean
dataDefinitionIgnoredInTransactions
()
3.0
Yes
Returns false.
boolean deletesAreDetected(int type)
3.0
Yes
Returns true.
boolean doesMaxRowSizeIncludeBlobs()
3.0
Yes
Returns false.
42 | Cloudera JDBC Driver for Impala
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean generatedKeyAlwaysReturned()
4.1
Yes
ResultSet getAttributes(String
catalog, String schemaPattern,
String typeNamePattern, String
attributeNamePattern)
3.0
Yes
ResultSet getBestRowIdentifier
(String catalog, String schema,
String table, int scope, boolean
nullable)
3.0
Yes
ResultSet getCatalogs()
3.0
Yes
String getCatalogSeparator()
3.0
Yes
String getCatalogTerm()
3.0
Yes
ResultSet getClientInfoProperties()
4.0
Yes
ResultSet getColumnPrivileges(String
catalog, String schema, String
table, String columnNamePattern)
3.0
Yes
ResultSet getColumns(String catalog,
String schemaPattern, String
tableNamePattern, String
columnNamePattern)
3.0
Yes
Connection getConnection()
3.0
Yes
ResultSet getCrossReference(String
primaryCatalog, String
primarySchema, String primaryTable,
String foreignCatalog, String
foreignSchema, String foreignTable)
3.0
Yes
int getDatabaseMajorVersion()
3.0
Yes
Cloudera JDBC Driver for Impala | 43
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
int getDatabaseMinorVersion()
3.0
Yes
String getDatabaseProductName()
3.0
Yes
String getDatabaseProductVersion()
3.0
Yes
int getDefaultTransactionIsolation()
3.0
Yes
int getDriverMajorVersion()
3.0
Yes
int getDriverMinorVersion()
3.0
Yes
String getDriverName()
3.0
Yes
String getDriverVersion()
3.0
Yes
ResultSet getExportedKeys(String
catalog, String schema, String
table)
3.0
Yes
String getExtraNameCharacters()
3.0
Yes
ResultSet getFunctionColumns(String
catalog, String schemaPattern,
String functionNamePattern, String
columnNamePattern)
4.0
Yes
ResultSet getFunctions(String
catalog, String schemaPattern,
String functionNamePattern)
4.0
Yes
String getIdentifierQuoteString()
3.0
Yes
44 | Cloudera JDBC Driver for Impala
Hard-coded to
Impala.
Hard-coded to
TRANSACTION_
READ_
UNCOMMITTED.
Hard-coded to
ImpalaJDBC.
Returns an empty
String.
Returns a
backquote (`)
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
ResultSet getImportedKeys(String
catalog, String schema, String
table)
3.0
Yes
ResultSet getIndexInfo(String
catalog, String schema, String
table, boolean unique, boolean
approximate)
3.0
Yes
int getJDBCMajorVersion()
3.0
Yes
int getJDBCMinorVersion()
3.0
Yes
int getMaxBinaryLiteralLength()
3.0
Yes
Returns 0.
int getMaxCatalogNameLength()
3.0
Yes
Returns 128.
int getMaxCharLiteralLength()
3.0
Yes
Returns 0.
int getMaxColumnNameLength()
3.0
Yes
Returns 128.
int getMaxColumnsInGroupBy()
3.0
Yes
Returns 0.
int getMaxColumnsInIndex()
3.0
Yes
Returns 0.
int getMaxColumnsInOrderBy()
3.0
Yes
Returns 0.
int getMaxColumnsInSelect()
3.0
Yes
Returns 0.
int getMaxColumnsInTable()
3.0
Yes
Returns 0.
int getMaxConnections()
3.0
Yes
Returns 0.
int getMaxCursorNameLength()
3.0
Yes
Returns 0.
int getMaxIndexLength()
3.0
Yes
Returns 0.
int getMaxProcedureNameLength()
3.0
Yes
Returns 0.
int getMaxRowSize()
3.0
Yes
Returns 0.
Cloudera JDBC Driver for Impala | 45
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
int getMaxSchemaNameLength()
3.0
Yes
Returns 128.
int getMaxStatementLength()
3.0
Yes
Returns 0.
int getMaxStatements()
3.0
Yes
Returns 0.
int getMaxTableNameLength()
3.0
Yes
Returns 128.
int getMaxTablesInSelect()
3.0
Yes
Returns 0.
int getMaxUserNameLength()
3.0
Yes
Returns 0.
String getNumericFunctions()
3.0
Yes
Returns the
Numeric Functions
list from the
specification
related to the JDBC
version of the
driver.
ResultSet getPrimaryKeys(String
catalog, String schema, String
table)
3.0
Yes
ResultSet getProcedureColumns(String
catalog, String schemaPattern,
String procedureNamePattern, String
columnNamePattern)
3.0
Yes
ResultSet getProcedures(String
catalog, String schemaPattern,
String procedureNamePattern)
3.0
Yes
String getProcedureTerm()
3.0
Yes
ResultSet getPseudoColumns(String
catalog, String schemaPattern,
String tableNamePattern, String
columnNamePattern)
4.1
Yes
46 | Cloudera JDBC Driver for Impala
Returns
procedure.
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
int getResultSetHoldability()
3.0
Yes
Returns CLOSE_
CURSORS_AT_
COMMIT.
RowIdLifetime getRowIdLifetime()
4.0
Yes
Returns ROWID_
UNSUPPORTED.
ResultSet getSchemas()
3.0
Yes
ResultSet getSchemas(String catalog,
String schemaPattern)
4.0
Yes
String getSchemaTerm()
3.0
Yes
Returns schema.
String getSearchStringEscape()
3.0
Yes
Returns a
backslash (\).
String getSQLKeywords()
3.0
Yes
Returns an empty
String.
int getSQLStateType()
3.0
Yes
Returns
sqlStateSQL99.
String getStringFunctions()
3.0
Yes
Returns the String
Functions list from
the specification
related to the JDBC
version of the
driver.
ResultSet getSuperTables(String
catalog, String schemaPattern,
String tableNamePattern)
3.0
Yes
ResultSet getSuperTypes(String
catalog, String schemaPattern,
String typeNamePattern)
3.0
Yes
String getSystemFunctions()
3.0
Yes
Returns
Cloudera JDBC Driver for Impala | 47
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
DATABASE,IFNU
LL,USER.
ResultSet getTablePrivileges(String
catalog, String schemaPattern,
String tableNamePattern)
3.0
Yes
ResultSet getTables(String catalog,
String schemaPattern, String
tableNamePattern, String[] types)
3.0
Yes
ResultSet getTableTypes()
3.0
Yes
String getTimeDateFunctions()
3.0
Yes
ResultSet getTypeInfo()
3.0
Yes
ResultSet getUDTs(String catalog,
String schemaPattern, String
typeNamePattern, int[] types)
3.0
Yes
String getURL()
3.0
Yes
String getUserName()
3.0
Yes
ResultSet getVersionColumns(String
catalog, String schema, String
table)
3.0
Yes
boolean insertsAreDetected(int type)
3.0
Yes
boolean isCatalogAtStart()
3.0
Yes
48 | Cloudera JDBC Driver for Impala
Returns the Time
and Date Functions
list from the
specification
related to the JDBC
version of the
driver.
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean isReadOnly()
3.0
Yes
Returns true.
boolean locatorsUpdateCopy()
3.0
Yes
Returns false.
boolean nullPlusNonNullIsNull()
3.0
Yes
Returns true.
boolean nullsAreSortedAtEnd()
3.0
Yes
Returns false.
boolean nullsAreSortedAtStart()
3.0
Yes
Returns false.
boolean nullsAreSortedHigh()
3.0
Yes
Returns false.
boolean nullsAreSortedLow()
3.0
Yes
Returns true.
boolean othersDeletesAreVisible(int
type)
3.0
Yes
boolean othersInsertsAreVisible(int
type)
3.0
Yes
boolean othersUpdatesAreVisible(int
type)
3.0
Yes
boolean ownDeletesAreVisible(int
type)
3.0
Yes
boolean ownInsertsAreVisible(int
type)
3.0
Yes
boolean ownUpdatesAreVisible(int
type)
3.0
Yes
boolean storesLowerCaseIdentifiers()
3.0
Yes
Returns false.
boolean
storesLowerCaseQuotedIdentifiers()
3.0
Yes
Returns false.
boolean storesMixedCaseIdentifiers()
3.0
Yes
Returns true.
Cloudera JDBC Driver for Impala | 49
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean
storesMixedCaseQuotedIdentifiers()
3.0
Yes
Returns true.
boolean storesUpperCaseIdentifiers()
3.0
Yes
Returns false.
boolean
storesUpperCaseQuotedIdentifiers()
3.0
Yes
Returns false.
boolean
supportsAlterTableWithAddColumn()
3.0
Yes
Returns false.
boolean
supportsAlterTableWithDropColumn()
3.0
Yes
Returns false.
boolean supportsANSI92EntryLevelSQL
()
3.0
Yes
Returns true.
boolean supportsANSI92FullSQL()
3.0
Yes
Returns false.
boolean
supportsANSI92IntermediateSQL()
3.0
Yes
Returns false.
boolean supportsBatchUpdates()
3.0
Yes
Returns false.
boolean
supportsCatalogsInDataManipulation()
3.0
Yes
Returns true.
boolean
supportsCatalogsInIndexDefinitions()
3.0
Yes
Returns true.
boolean
supportsCatalogsInPrivilegeDefinitio
ns()
3.0
Yes
Returns true.
boolean
supportsCatalogsInProcedureCalls()
3.0
Yes
Returns true.
boolean
3.0
Yes
Returns true.
50 | Cloudera JDBC Driver for Impala
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
supportsCatalogsInTableDefinitions()
boolean supportsColumnAliasing()
3.0
Yes
Returns true.
boolean supportsConvert()
3.0
Yes
Returns true.
boolean supportsConvert(int
fromType, int toType)
3.0
Yes
boolean supportsCoreSQLGrammar()
3.0
Yes
Returns true.
boolean supportsCorrelatedSubqueries
()
3.0
Yes
Returns true.
boolean
supportsDataDefinitionAndDataManipul
ationTransactions()
3.0
Yes
Returns false.
boolean
supportsDataManipulationTransactions
Only()
3.0
Yes
Returns false.
boolean
supportsDifferentTableCorrelationNam
es()
3.0
Yes
Returns false.
boolean supportsExpressionsInOrderBy
()
3.0
Yes
Returns true.
boolean supportsExtendedSQLGrammar()
3.0
Yes
Returns false.
boolean supportsFullOuterJoins()
3.0
Yes
Returns true.
boolean supportsGetGeneratedKeys()
3.0
Yes
Returns false.
boolean supportsGroupBy()
3.0
Yes
Returns true.
boolean supportsGroupByBeyondSelect
()
3.0
Yes
Returns true.
Cloudera JDBC Driver for Impala | 51
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean supportsGroupByUnrelated()
3.0
Yes
Returns false.
boolean
supportsIntegrityEnhancementFacility
()
3.0
Yes
Returns false.
boolean supportsLikeEscapeClause()
3.0
Yes
Returns true.
boolean supportsLimitedOuterJoins()
3.0
Yes
Returns false.
boolean supportsMinimumSQLGrammar()
3.0
Yes
Returns true.
boolean supportsMixedCaseIdentifiers
()
3.0
Yes
Returns false.
boolean
supportsMixedCaseQuotedIdentifiers()
3.0
Yes
Returns true.
boolean supportsMultipleOpenResults
()
3.0
Yes
Returns false.
boolean supportsMultipleResultSets()
3.0
Yes
Returns false.
boolean supportsMultipleTransactions
()
3.0
Yes
Returns true.
boolean supportsNamedParameters()
3.0
Yes
Returns false.
boolean supportsNonNullableColumns()
3.0
Yes
Returns false.
boolean
supportsOpenCursorsAcrossCommit()
3.0
Yes
Returns false.
boolean
supportsOpenCursorsAcrossRollback()
3.0
Yes
Returns false.
boolean
supportsOpenStatementsAcrossCommit()
3.0
Yes
Returns true.
52 | Cloudera JDBC Driver for Impala
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean
supportsOpenStatementsAcrossRollback
()
3.0
Yes
Returns true.
boolean supportsOrderByUnrelated()
3.0
Yes
Returns false.
boolean supportsOuterJoins()
3.0
Yes
Returns false.
boolean supportsPositionedDelete()
3.0
Yes
Returns false.
boolean supportsPositionedUpdate()
3.0
Yes
Returns false.
boolean supportsResultSetConcurrency
(int type, int concurrency)
3.0
Yes
boolean supportsResultSetHoldability
(int holdability)
3.0
Yes
boolean supportsResultSetType(int
type)
3.0
Yes
boolean supportsSavepoints()
3.0
Yes
Returns false.
boolean
supportsSchemasInDataManipulation()
3.0
Yes
Returns true.
boolean
supportsSchemasInIndexDefinitions()
3.0
Yes
Returns true.
boolean
supportsSchemasInPrivilegeDefinition
s()
3.0
Yes
Returns true.
boolean
supportsSchemasInProcedureCalls()
3.0
Yes
Returns false.
boolean
supportsSchemasInTableDefinitions()
3.0
Yes
Returns true.
Cloudera JDBC Driver for Impala | 53
Features
Method
Suppo
rted
Since
JDBC
Versio
n
Suppo
rted
Notes
by the
Driver
boolean supportsSelectForUpdate()
3.0
Yes
Returns false.
boolean supportsStatementPooling()
3.0
Yes
Returns false.
boolean
supportsStoredFunctionsUsingCallSynt
ax()
4.0
Yes
Returns false.
boolean supportsStoredProcedures()
3.0
Yes
Returns true.
boolean
supportsSubqueriesInComparisons()
3.0
Yes
Returns true.
boolean supportsSubqueriesInExists()
3.0
Yes
Returns true.
boolean supportsSubqueriesInIns()
3.0
Yes
Returns true.
boolean
supportsSubqueriesInQuantifieds()
3.0
Yes
Returns true.
boolean
supportsTableCorrelationNames()
3.0
Yes
Returns true.
boolean
supportsTransactionIsolationLevel
(int level)
3.0
Yes
boolean supportsTransactions()
3.0
Yes
Returns false.
boolean supportsUnion()
3.0
Yes
Returns true.
boolean supportsUnionAll()
3.0
Yes
Returns true.
boolean updatesAreDetected(int type)
3.0
Yes
Returns true.
boolean usesLocalFilePerTable()
3.0
Yes
Returns false.
boolean usesLocalFiles()
3.0
Yes
Returns false.
54 | Cloudera JDBC Driver for Impala
Features
Suppo
rted
Since
JDBC
Versio
n
Method
Suppo
rted
Notes
by the
Driver
boolean isWrapperFor(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T> iface)
4.0
Yes
DataSource
The following table lists the methods that belong to the DataSource interface, and describes
whether each method is supported by the Cloudera JDBC Driver for Impala and which version of
the JDBC API is the earliest version that supports the method.
For detailed information about each method in the DataSource interface, see the Java API
documentation: http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/DataSource.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Connection getConnection
()
3.0
Yes
Connection getConnection
(String username, String
password)
3.0
Yes
int getLoginTimeout()
3.0
Yes
PrintWriter getLogWriter
()
3.0
Yes
Logger getParentLogger()
4.1
No
void setLoginTimeout(int
seconds)
3.0
Yes
void setLogWriter
(PrintWriter out)
3.0
Yes
The driver does not use
java.util.logging.
Cloudera JDBC Driver for Impala | 55
Features
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Method
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Driver
The following table lists the methods that belong to the Driver interface, and describes whether
each method is supported by the Cloudera JDBC Driver for Impala and which version of the JDBC
API is the earliest version that supports the method.
For detailed information about each method in the Driver interface, see the Java API
documentation: http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Driver.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
boolean acceptsURL
(String url)
3.0
Yes
Connection connect
(String url, Properties
info)
3.0
Yes
int getMajorVersion()
3.0
Yes
int getMinorVersion()
3.0
Yes
Logger getParentLogger()
4.1
No
DriverPropertyInfo[]
getPropertyInfo(String
url, Properties info)
3.0
Yes
boolean jdbcCompliant()
3.0
Yes
ParameterMetaData
The following table lists the methods that belong to the ParameterMetaData interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
56 | Cloudera JDBC Driver for Impala
Features
version of the JDBC API is the earliest version that supports the method.
For detailed information about each method in the ParameterMetaData interface, see the
Java API documentation:
http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ParameterMetaData.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
String
getParameterClassName
(int param)
3.0
Yes
int getParameterCount()
3.0
Yes
int getParameterMode(int
param)
3.0
Yes
int getParameterType(int
param)
3.0
Yes
String
getParameterTypeName(int
param)
3.0
Yes
int getPrecision(int
param)
3.0
Yes
int getScale(int param)
3.0
Yes
int isNullable(int
param)
3.0
Yes
boolean isSigned(int
param)
3.0
Yes
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
PooledConnection
The following table lists the methods that belong to the PooledConnection interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
version of the JDBC API is the earliest version that supports the method.
Cloudera JDBC Driver for Impala | 57
Features
For detailed information about each method in the PooledConnection interface, see the Java
API documentation:
http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/PooledConnection.html.
Method
Supporte
d
Since
JDBC
Version
Supporte
d
Notes
by the
Driver
void
addConnectionEventListener
(ConnectionEventListener
listener)
3.0
Yes
void
addStatementEventListener
(StatementEventListener
listener)
4.0
Yes
void close()
3.0
Yes
Connection getConnection()
3.0
Yes
void
removeConnectionEventListe
ner
(ConnectionEventListener
listener)
3.0
Yes
void
removeStatementEventListen
er(StatementEventListener
listener)
4.0
Yes
Removes the specified
StatementEventListen
er from the list of
components that will be
notified when the driver
detects that a
PreparedStatement has
been closed or is invalid.
PreparedStatement
The PreparedStatement interface extends the Statement interface.
The following table lists the methods that belong to the PreparedStatement interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
version of the JDBC API is the earliest version that supports the method.
58 | Cloudera JDBC Driver for Impala
Features
For detailed information about each method in the PooledConnection interface, see the Java
API documentation:
http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void addBatch()
3.0
Yes
void clearParameters()
3.0
Yes
boolean execute()
3.0
Yes
ResultSet executeQuery()
3.0
Yes
int executeUpdate()
3.0
Yes
ResultSetMetaData
getMetaData()
3.0
Yes
ParameterMetaData
getParameterMetaData()
3.0
Yes
void setArray(int
parameterIndex, Array x)
3.0
No
void setAsciiStream(int
parameterIndex,
InputStream x)
4.0
Yes
void setAsciiStream(int
parameterIndex,
InputStream x, int
length)
3.0
Yes
void setAsciiStream(int
parameterIndex,
InputStream x, long
length)
4.0
Yes
void setBigDecimal(int
parameterIndex,
BigDecimal x)
3.0
Yes
void setBinaryStream(int
4.0
Yes
Cloudera JDBC Driver for Impala | 59
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
parameterIndex,
InputStream x)
void setBinaryStream(int
parameterIndex,
InputStream x, int
length)
3.0
Yes
void setBinaryStream(int
parameterIndex,
InputStream x, long
length)
4.0
Yes
void setBlob(int
parameterIndex, Blob x)
3.0
No
void setBlob(int
parameterIndex,
InputStream inputStream)
4.0
No
void setBlob(int
parameterIndex,
InputStream inputStream,
long length)
4.0
No
void setBoolean(int
parameterIndex, boolean
x)
3.0
Yes
void setByte(int
parameterIndex, byte x)
3.0
Yes
void setBytes(int
parameterIndex, byte[]
x)
3.0
Yes
void setCharacterStream
(int parameterIndex,
Reader reader)
4.0
Yes
void setCharacterStream
(int parameterIndex,
Reader reader, int
3.0
Yes
60 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
length)
void setCharacterStream
(int parameterIndex,
Reader reader, long
length)
4.0
Yes
void setClob(int
parameterIndex, Clob x)
3.0
No
void setClob(int
parameterIndex, Reader
reader)
4.0
No
void setClob(int
parameterIndex, Reader
reader, long length)
4.0
No
void setDate(int
parameterIndex, Date x)
3.0
Yes
void setDate(int
parameterIndex, Date x,
Calendar cal)
3.0
Yes
void setDouble(int
parameterIndex, double
x)
3.0
Yes
void setFloat(int
parameterIndex, float x)
3.0
Yes
void setInt(int
parameterIndex, int x)
3.0
Yes
void setLong(int
parameterIndex, long x)
3.0
Yes
void setNCharacterStream
(int parameterIndex,
Reader value)
4.0
No
Cloudera JDBC Driver for Impala | 61
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void setNCharacterStream
(int parameterIndex,
Reader value, long
length)
4.0
No
void setNClob(int
parameterIndex, NClob
value)
4.0
No
void setNClob(int
parameterIndex, Reader
reader)
4.0
No
void setNClob(int
parameterIndex, Reader
reader, long length)
4.0
No
void setNString(int
parameterIndex, String
value)
4.0
No
void setNull(int
paramIndex, int sqlType,
String typeName)
3.0
Yes
void setObject(int
parameterIndex, Object
x)
3.0
Yes
void setObject(int
parameterIndex, Object
x, int targetSqlType)
3.0
Yes
void setObject(int
parameterIndex, Object
x, int targetSqlType,
int scale)
3.0
Yes
void setRef(int
parameterIndex, Ref x)
3.0
No
void setRowId(int
parameterIndex, RowId x)
4.0
No
62 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void setShort(int
parameterIndex, short x)
3.0
No
void setSQLXML(int
parameterIndex, SQLXML
xmlObject)
4.0
Yes
void setString(int
parameterIndex, String
x)
3.0
Yes
void setTime(int
parameterIndex, Time x)
3.0
Yes
void setTime(int
parameterIndex, Time x,
Calendar cal)
3.0
Yes
void setTimestamp(int
parameterIndex,
Timestamp x)
3.0
Yes
void setTimestamp(int
parameterIndex,
Timestamp x, Calendar
cal)
3.0
Yes
void setUnicodeStream
(int parameterIndex,
InputStream x, int
length)
3.0
Yes
void setURL(int
parameterIndex, URL x)
3.0
No
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Deprecated.
Cloudera JDBC Driver for Impala | 63
Features
ResultSet
The following table lists the methods that belong to the ResultSet interface, and describes
whether each method is supported by the Cloudera JDBC Driver for Impala and which version of
the JDBC API is the earliest version that supports the method.
For detailed information about each method in the ResultSet interface, see the Java API
documentation: http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSet.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
boolean absolute(int row)
3.0
No
void afterLast()
3.0
No
void beforeFirst()
3.0
No
void cancelRowUpdates()
3.0
No
void clearWarnings()
3.0
Yes
void close()
3.0
Yes
void deleteRow()
3.0
No
int findColumn(String
columnName)
3.0
Yes
boolean first()
3.0
No
Array getArray(int i)
3.0
No
Array getArray(String
colName)
3.0
No
InputStream
getAsciiStream(int
columnIndex)
3.0
Yes
InputStream
getAsciiStream(String
columnName)
3.0
Yes
64 | Cloudera JDBC Driver for Impala
Not valid because the driver
is read-only.
Not valid because the driver
is read-only.
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
BigDecimal getBigDecimal
(int columnIndex)
3.0
Yes
BigDecimal getBigDecimal
(int columnIndex, int
scale)
3.0
Yes
BigDecimal getBigDecimal
(String columnName)
3.0
Yes
BigDecimal getBigDecimal
(String columnName, int
scale)
3.0
Yes
InputStream
getBinaryStream(int
columnIndex)
3.0
Yes
InputStream
getBinaryStream(String
columnName)
3.0
Yes
Blob getBlob(int i)
3.0
No
Blob getBlob(String
colName)
3.0
No
boolean getBoolean(int
columnIndex)
3.0
Yes
boolean getBoolean(String
columnName)
3.0
Yes
getByte(int columnIndex)
3.0
Yes
byte getByte(String
columnName)
3.0
Yes
byte[] getBytes(int
columnIndex)
3.0
Yes
byte[] getBytes(String
columnName)
3.0
Yes
Deprecated.
Deprecated.
Cloudera JDBC Driver for Impala | 65
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Reader getCharacterStream
(int columnIndex)
3.0
Yes
Reader getCharacterStream
(String columnName)
3.0
Yes
Clob getClob(int i)
3.0
No
Clob getClob(String
colName)
3.0
No
int getConcurrency()
3.0
Yes
String getCursorName()
3.0
Yes
Date getDate(int
columnIndex)
3.0
Yes
Date getDate(int
columnIndex, Calendar
cal)
3.0
Yes
Date getDate(String
columnName)
3.0
Yes
Date getDate(String
columnName, Calendar cal)
3.0
Yes
double getDouble(int
columnIndex)
3.0
Yes
double getDouble(String
columnName)
3.0
Yes
int getFetchDirection()
3.0
Yes
int getFetchSize()
3.0
Yes
float getFloat(int
columnIndex)
3.0
Yes
float getFloat(String
3.0
Yes
66 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
columnName)
int getHoldability()
4.0
Yes
int getInt(int
columnIndex)
3.0
Yes
int getInt(String
columnName)
3.0
Yes
long getLong(int
columnIndex)
3.0
Yes
long getLong(String
columnName)
3.0
Yes
ResultSetMetaData
getMetaData()
3.0
Yes
Reader
getNCharacterStream(int
columnIndex)
4.0
No
Reader
getNCharacterStream
(String columnLabel
4.0
No
NClob getNClob(int
columnIndex)
4.0
No
NClob getNClob(String
columnLabel)
4.0
No
String getNString(int
columnIndex)
4.0
No
String getNString(String
columnLabel)
4.0
No
Object getObject(int
columnIndex)
3.0
Yes
<T> T getObject(int
4.1
No
Cloudera JDBC Driver for Impala | 67
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
columnIndex, Class<T>
type)
Object getObject(int i,
Map<String,Class<?>> map)
3.0
No
Object getObject(String
columnName)
3.0
No
<T> T getObject(String
columnName, Class<T>
type)
4.1
No
Object getObject(String
colName,
Map<String,Class<?>> map)
3.0
Yes
Ref getRef(int i)
3.0
No
Ref getRef(String
colName)
3.0
No
int getRow()
3.0
Yes
RowId getRowId(int
columnIndex)
4.0
No
RowId getRowId(String
columnLabel)
4.0
No
short getShort(int
columnIndex)
3.0
Yes
short getShort(String
columnName)
3.0
Yes
SQLXML getSQLXML(int
columnIndex)
4.0
No
SQLXML getSQLXML(String
columnLabel)
4.0
No
68 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Statement getStatement()
3.0
Yes
String getString(int
columnIndex)
3.0
Yes
String getString(String
columnName)
3.0
Yes
Time getTime(int
columnIndex)
3.0
Yes
Time getTime(int
columnIndex, Calendar
cal)
3.0
Yes
Time getTime(String
columnName)
3.0
Yes
Time getTime(String
columnName, Calendar cal)
3.0
Yes
Timestamp getTimestamp
(int columnIndex)
3.0
Yes
Timestamp getTimestamp
(int columnIndex,
Calendar cal)
3.0
Yes
Timestamp getTimestamp
(String columnName)
3.0
Yes
Timestamp getTimestamp
(String columnName,
Calendar cal)
3.0
Yes
int getType()
3.0
Yes
InputStream
getUnicodeStream(int
columnIndex)
3.0
Yes
Deprecated.
InputStream
3.0
Yes
Deprecated.
Cloudera JDBC Driver for Impala | 69
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
getUnicodeStream(String
columnName)
URL getURL(int
columnIndex)
3.0
No
URL getURL(String
columnName)
3.0
No
SQLWarning getWarnings()
3.0
Yes
void insertRow()
3.0
No
boolean isAfterLast()
3.0
Yes
boolean isBeforeFirst()
3.0
Yes
boolean isClosed()
4.0
Yes
boolean isFirst()
3.0
Yes
boolean isLast()
3.0
No
boolean last()
3.0
No
void moveToCurrentRow()
3.0
No
Not valid because the driver
is read-only.
void moveToInsertRow()
3.0
No
Not valid because the driver
is read-only.
boolean next()
3.0
Yes
boolean previous()
3.0
No
void refreshRow()
3.0
No
boolean relative(int
rows)
3.0
No
boolean rowDeleted()
3.0
Yes
70 | Cloudera JDBC Driver for Impala
Not valid because the driver
is read-only.
Hard-coded to false.
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
boolean rowInserted()
3.0
Yes
Hard-coded to false.
boolean rowUpdated()
3.0
Yes
Hard-coded to false.
void setFetchDirection
(int direction)
3.0
No
Not valid because the driver
is forward-only.
void setFetchSize(int
rows)
3.0
Yes
void updateArray(int
columnIndex, Array x)
3.0
No
void updateArray(String
columnName, Array x)
3.0
No
void updateAsciiStream
(int columnIndex,
InputStream x)
4.0
No
Not valid because the driver
is read-only.
void updateAsciiStream
(int columnIndex,
InputStream x, int
length)
3.0
No
Not valid because the driver
is read-only.
void updateAsciiStream
(int columnIndex,
InputStream x, long
length)
4.0
No
Not valid because the driver
is read-only.
void updateAsciiStream
(String columnName,
InputStream x)
4.0
No
Not valid because the driver
is read-only.
void updateAsciiStream
(String columnName,
InputStream x, int
length)
3.0
No
Not valid because the driver
is read-only.
void updateAsciiStream
(String columnName,
InputStream x, long
length)
4.0
No
Not valid because the driver
is read-only.
Cloudera JDBC Driver for Impala | 71
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void updateBigDecimal(int
columnIndex, BigDecimal
x)
3.0
No
Not valid because the driver
is read-only.
void updateBigDecimal
(String columnName,
BigDecimal x)
3.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(int columnIndex,
InputStream x)
4.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(int columnIndex,
InputStream x, int
length)
3.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(int columnIndex,
InputStream x, long
length)
4.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(String columnName,
InputStream x)
4.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(String columnName,
InputStream x, int
length)
3.0
No
Not valid because the driver
is read-only.
void updateBinaryStream
(String columnName,
InputStream x, long
length)
4.0
No
Not valid because the driver
is read-only.
void updateBlob(int
columnIndex, InputStream
inputStream)
4.0
No
void updateBlob(int
columnIndex, Blob x)
3.0
No
72 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void updateBlob(int
columnIndex, InputStream
inputStream, long length)
4.0
No
void updateBlob(String
columnName, InputStream
inputStream)
4.0
No
void updateBlob(String
columnName, Blob x)
3.0
No
void updateBlob(String
columnLabel, InputStream
inputStream, long length)
4.0
No
void updateBoolean(int
columnIndex, boolean x)
3.0
No
Not valid because the driver
is read-only.
void updateBoolean(String
columnName, boolean x)
3.0
No
Not valid because the driver
is read-only.
void updateByte(int
columnIndex, byte x)
3.0
No
Not valid because the driver
is read-only.
void updateByte(String
columnName, byte x)
3.0
No
Not valid because the driver
is read-only.
void updateBytes(int
columnIndex, byte[] x)
3.0
No
Not valid because the driver
is read-only.
void updateBytes(String
columnName, byte[] x)
3.0
No
Not valid because the driver
is read-only.
void
updateCharacterStream(int
columnIndex, Reader x,
int length)
3.0
No
Not valid because the driver
is read-only.
void
updateCharacterStream
(String columnName,
3.0
No
Not valid because the driver
is read-only.
Cloudera JDBC Driver for Impala | 73
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
Reader reader, int
length)
void updateBlob(int
columnIndex, InputStream
inputStream)
4.0
No
void updateClob(int
columnIndex, Clob x)
3.0
No
void updateBlob(int
columnIndex, InputStream
inputStream, long length)
4.0
No
void updateBlob(String
columnName, InputStream
inputStream)
4.0
No
void updateClob(String
columnName, Clob x)
3.0
No
void updateBlob(String
columnName, InputStream
inputStream, long length)
4.0
No
void updateDate(int
columnIndex, Date x)
3.0
No
Not valid because the driver
is read-only.
void updateDate(String
columnName, Date x)
3.0
No
Not valid because the driver
is read-only.
void updateDouble(int
columnIndex, double x)
3.0
No
Not valid because the driver
is read-only.
void updateDouble(String
columnName, double x)
3.0
No
Not valid because the driver
is read-only.
void updateFloat(int
columnIndex, float x)
3.0
No
Not valid because the driver
is read-only.
void updateFloat(String
3.0
No
Not valid because the driver
74 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
is read-only.
columnName, float x)
void updateInt(int
columnIndex, int x)
3.0
No
Not valid because the driver
is read-only.
void updateInt(String
columnName, int x)
3.0
No
Not valid because the driver
is read-only.
void updateLong(int
columnIndex, long x)
3.0
No
Not valid because the driver
is read-only.
void updateLong(String
columnName, long x)
3.0
No
Not valid because the driver
is read-only.
void
updateNCharacterStream
(int columnIndex, Reader
x)
4.0
No
void
updateNCharacterStream
(int columnIndex, Reader
x, long length)
4.0
No
void
updateNCharacterStream
(String columnName,
Reader reader)
4.0
No
void
updateNCharacterStream
(String columnName,
Reader reader, long
length)
4.0
No
void updateNClob(int
columnIndex, NClob nClob)
4.0
No
void updateNClob(int
columnIndex, Reader
reader)
4.0
No
Cloudera JDBC Driver for Impala | 75
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void updateNClob(int
columnIndex, Reader
reader, long length)
4.0
No
void updateNClob(String
columnName, NClob nClob)
4.0
No
void updateNClob(String
columnName, Reader
reader)
4.0
No
void updateNClob(String
columnName, Reader
reader, long length)
4.0
No
void updateNString(int
columnIndex, String
nString)
4.0
No
void updateNString(String
columnName, String
nString)
4.0
No
void updateNull(int
columnIndex)
3.0
No
Not valid because the driver
is read-only.
void updateNull(String
columnName)
3.0
No
Not valid because the driver
is read-only.
void updateObject(int
columnIndex, Object x)
3.0
No
Not valid because the driver
is read-only.
void updateObject(int
columnIndex, Object x,
int scale)
3.0
No
Not valid because the driver
is read-only.
void updateObject(String
columnName, Object x)
3.0
No
Not valid because the driver
is read-only.
void updateObject(String
columnName, Object x, int
scale)
3.0
No
Not valid because the driver
is read-only.
76 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void updateRef(int
columnIndex, Ref x)
3.0
No
Not valid because the driver
is read-only.
void updateRef(String
columnName, Ref x)
3.0
No
Not valid because the driver
is read-only.
void updateRow()
3.0
No
Not valid because the driver
is read-only.
void updateRowId(int
columnIndex, RowId x)
4.0
No
void updateRowId(String
columnName, RowId x)
4.0
No
void updateShort(int
columnIndex, short x)
3.0
No
Not valid because the driver
is read-only.
void updateShort(String
columnName, short x)
3.0
No
Not valid because the driver
is read-only.
void updateSQLXML(int
columnIndex, SQLXML
xmlObject)
4.0
No
void updateSQLXML(String
columnName, SQLXML
xmlObject)
4.0
No
void updateString(int
columnIndex, String x)
3.0
No
Not valid because the driver
is read-only.
void updateString(String
columnName, String x)
3.0
No
Not valid because the driver
is read-only.
void updateTime(int
columnIndex, Time x)
3.0
No
Not valid because the driver
is read-only.
void updateTime(String
columnName, Time x)
3.0
No
Not valid because the driver
is read-only.
void updateTimestamp(int
3.0
No
Not valid because the driver
Cloudera JDBC Driver for Impala | 77
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
is read-only.
columnIndex, Timestamp x)
void updateTimestamp
(String columnName,
Timestamp x)
3.0
No
boolean wasNull()
3.0
Yes
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Not valid because the driver
is read-only.
ResultSetMetaData
The following table lists the methods that belong to the ResultSetMetaData interface, and
describes whether each method is supported by the Cloudera JDBC Driver for Impala and which
version of the JDBC API is the earliest version that supports the method.
For detailed information about each method in the ResultSetMetaData interface, see the
Java API documentation:
http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSetMetaData.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
String getCatalogName
(int column)
3.0
Yes
String
getColumnClassName(int
column)
3.0
Yes
int getColumnCount()
3.0
Yes
int getColumnDisplaySize
(int column)
3.0
Yes
String getColumnLabel
3.0
Yes
78 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
(int column)
String getColumnName(int
column)
3.0
Yes
int getColumnType(int
column)
3.0
Yes
String getColumnTypeName
(int column)
3.0
Yes
int getPrecision(int
column)
3.0
Yes
int getScale(int column)
3.0
Yes
String getSchemaName(int
column)
3.0
Yes
String getTableName(int
column)
3.0
Yes
boolean isAutoIncrement
(int column)
3.0
Yes
boolean isCaseSensitive
(int column)
3.0
Yes
boolean isCurrency(int
column)
3.0
Yes
boolean
isDefinitelyWritable(int
column)
3.0
Yes
int isNullable(int
column)
3.0
Yes
boolean isReadOnly(int
column)
3.0
Yes
boolean isSearchable(int
3.0
Yes
Cloudera JDBC Driver for Impala | 79
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
column)
boolean isSigned(int
column)
3.0
Yes
boolean isWritable(int
column)
3.0
Yes
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Statement
The following table lists the methods that belong to the Statement interface, and describes
whether each method is supported by the Cloudera JDBC Driver for Impala and which version of
the JDBC API is the earliest version that supports the method.
For detailed information about each method in the Statement interface, see the Java API
documentation: http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Statement.html.
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
void addBatch(String sql)
3.0
Yes
void cancel()
3.0
Yes
void clearBatch()
3.0
Yes
void clearWarnings()
3.0
Yes
void close()
3.0
Yes
void closeOnCompletion()
4.1
Yes
boolean execute(String
3.0
Yes
80 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
sql)
boolean execute(String
sql, int
autoGeneratedKeys)
3.0
No
boolean execute(String
sql, int[] columnIndexes)
3.0
No
boolean execute(String
sql, String[]
columnNames)
3.0
No
int[]executeBatch()
3.0
No
ResultSet executeQuery
(String sql)
3.0
Yes
int executeUpdate(String
sql)
3.0
Yes
int executeUpdate(String
sql, int
autoGeneratedKeys)
3.0
No
int executeUpdate(String
sql, int[] columnIndexes)
3.0
No
int executeUpdate(String
sql, String[]
columnNames)
3.0
No
Connection getConnection
()
3.0
Yes
int getFetchDirection()
3.0
Yes
int getFetchSize()
3.0
Yes
ResultSet
getGeneratedKeys()
3.0
Yes
Cloudera JDBC Driver for Impala | 81
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
int getMaxFieldSize()
3.0
Yes
int getMaxRows()
3.0
Yes
boolean getMoreResults()
3.0
Yes
boolean getMoreResults
(int current)
3.0
No
int getQueryTimeout()
3.0
Yes
ResultSet getResultSet()
3.0
Yes
int
getResultSetConcurrency()
3.0
Yes
Hard-coded to CONCUR_
READ_ONLY.
int
getResultSetHoldability()
3.0
Yes
Hard-coded to CLOSE_
CURSORS_AT_COMMIT.
int getResultSetType()
3.0
Yes
Hard-coded to TYPE_
FORWARD_ONLY.
int getUpdateCount()
3.0
Yes
SQLWarning getWarnings()
3.0
Yes
boolean isClosed()
4.0
Yes
boolean
isCloseOnCompletion()
4.1
Yes
boolean isPoolable()
4.0
Yes
void setCursorName(String
name)
3.0
No
void setEscapeProcessing
(boolean enable)
3.0
Yes
void setFetchDirection
3.0
No
82 | Cloudera JDBC Driver for Impala
Features
Method
Supported
Supported
Since
by the
Notes
JDBC
Driver
Version
(int direction)
void setFetchSize(int
rows)
3.0
Yes
void setMaxFieldSize(int
max)
3.0
Yes
void setMaxRows(int max)
3.0
Yes
void setPoolable(boolean
poolable)
4.0
Yes
void setQueryTimeout(int
seconds)
3.0
Yes
boolean isWrapperFor
(Class<?> iface)
4.0
Yes
<T> T unwrap(Class<T>
iface)
4.0
Yes
Cloudera JDBC Driver for Impala | 83
Driver Configuration Options
Driver Configuration Options
Driver Configuration Options lists and describes the properties that you can use to configure the
behavior of the Cloudera JDBC Driver for Impala.
You can set configuration properties using the connection URL. For more information, see
"Building the Connection URL" on page 9.
Note:
Property names and values are case-sensitive.
AllowSelfSignedCert
Default Value
Data Type
Required
Integer
0
No
Description
This property specifies whether the driver allows the server to use self-signed SSL certificates.
l
1: The driver allows self-signed certificates.
l
0: The driver does not allow self-signed certificates.
Note:
This property is applicable only when SSL connections are enabled.
AsyncExecPollInterval
Default Value
Data Type
Required
Integer
10
No
Description
The time in milliseconds between each poll for the asynchronous query execution status.
"Asynchronous" refers to the fact that the RPC call used to execute a query against Impala is
asynchronous. It does not mean that JDBC asynchronous operations are supported.
AuthMech
Default Value
Data Type
0
84 | Cloudera JDBC Driver for Impala
Required
Integer
No
Driver Configuration Options
Description
The authentication mechanism to use. Set the property to one of the following values:
l
0 for No Authentication.
l
1 for Kerberos.
l
2 for User Name.
l
3 for User Name And Password.
CAIssuedCertsMismatch
Default Value
Data Type
Required
Integer
0
No
Description
This property specifies whether the driver requires the name of the CA-issued SSL certificate to
match the host name of the Impala server.
l
0: The driver requires the names to match.
l
1: The driver allows the names to mismatch.
Note:
This property is applicable only when SSL connections are enabled.
CatalogSchemaSwitch
Default Value
Data Type
Required
Integer
0
No
Description
This property specifies whether the driver treats Impala catalogs as schemas or as catalogs.
l
1: The driver treats Impala catalogs as schemas as a restriction for filtering.
l
0: Impala catalogs are treated as catalogs, and Impala schemas are treated as schemas.
DefaultStringColumnLength
Default Value
255
Data Type
Required
Integer
No
Cloudera JDBC Driver for Impala | 85
Driver Configuration Options
Description
The maximum number of characters that can be contained in STRING columns. The range of
DefaultStringColumnLength is 0 to 32767.
By default, the columns metadata for Impala does not specify a maximum data length for STRING
columns.
DelegationUID
Default Value
Data Type
None
Required
String
No
Description
Use this option to delegate all operations against Impala to a user that is different than the
authenticated user for the connection.
KrbAuthType
Default Value
Data Type
0
Required
Integer
No
Description
This property specifies how the driver obtains the Subject for Kerberos authentication.
l
0: The driver automatically detects which method to use for obtaining the Subject:
1. First, the driver tries to obtain the Subject from the current thread's inherited
AccessControlContext. If the AccessControlContext contains multiple Subjects, the
driver uses the most recent Subject.
2. If the first method does not work, then the driver checks the
java.security.auth.login.config system property for a JAAS
configuration. If a JAAS configuration is specified, the driver uses that information to
create a LoginContext and then uses the Subject associated with it.
3. If the second method does not work, then the driver checks the KRB5_CONFIG and
KRB5CCNAME system environment variables for a Kerberos ticket cache. The driver
uses the information from the cache to create a LoginContext and then uses the
Subject associated with it.
l
l
1: The driver checks the java.security.auth.login.config system property for a
JAAS configuration. If a JAAS configuration is specified, the driver uses that information to
create a LoginContext and then uses the Subject associated with it.
2: The driver checks the KRB5_CONFIG and KRB5CCNAME system environment variables for
a Kerberos ticket cache. The driver uses the information from the cache to create a
LoginContext and then uses the Subject associated with it.
86 | Cloudera JDBC Driver for Impala
Driver Configuration Options
KrbHostFQDN
Default Value
Data Type
None
Required
String
Yes, if AuthMech=1.
Description
The fully qualified domain name of the Impala host.
KrbRealm
Default Value
Data Type
Depends on your Kerberos
configuration
Required
String
No
Description
The realm of the Impala host.
If your Kerberos configuration already defines the realm of the Impala host as the default realm,
then you do not need to configure this property.
KrbServiceName
Default Value
Data Type
None
Required
String
Yes, if AuthMech=1.
Description
The Kerberos service principal name of the Impala server.
LogLevel
Default Value
Data Type
0
Required
Integer
No
Description
Use this property to enable or disable logging in the driver and to specify the amount of detail
included in log files.
Cloudera JDBC Driver for Impala | 87
Driver Configuration Options
Important:
Only enable logging long enough to capture an issue. Logging decreases performance and can
consume a large quantity of disk space.
Set the property to one of the following numbers:
l
l
l
l
l
l
l
0: Disable all logging.
1: Enable logging on the FATAL level, which logs very severe error events that will lead the
driver to abort.
2: Enable logging on the ERROR level, which logs error events that might still allow the
driver to continue running.
3: Enable logging on the WARNING level, which logs events that might result in an error if
action is not taken.
4: Enable logging on the INFO level, which logs general information that describes the
progress of the driver.
5: Enable logging on the DEBUG level, which logs detailed information that is useful for
debugging the driver.
6: Enable logging on the TRACE level, which logs all driver activity.
When logging is enabled, the driver produces the following log files in the location specified in the
LogPath property:
l
l
An ImpalaJDBC_driver.log file that logs driver activity that is not specific to a
connection.
An Impala_connection_[Number].log file for each connection made to the
database, where [Number] is a number that distinguishes each log file from the others. This
file logs driver activity that is specific to the connection.
If the LogPath value is invalid, then the driver sends the logged information to the standard
output stream (System.out).
LogPath
Default Value
Data Type
The current working
directory
Required
String
No
Description
The full path to the folder where the driver saves log files when logging is enabled.
88 | Cloudera JDBC Driver for Impala
Driver Configuration Options
LowerCaseResultSetColumnName
Default Value
Data Type
Required
Integer
1
No
Description
This property specifies the letter case that the driver uses when returning the column name
aliases in the ResultSetMetadata.
l
l
1: The column name aliases in the ResultSetMetadata are returned in lower-case
characters, matching the server-side behavior.
0: The column name aliases are returned in the same letter case as specified in the query.
OptimizedInsert
Default Value
Data Type
Required
Integer
1
No
Description
This property specifies whether the driver tries to optimize INSERT statements by bypassing
translation.
Each time the driver translates an INSERT statement, it executes the DESCRIBE command to
identify the data types of the columns that it is inserting data into. These additional commands
consume resources and might reduce driver performance.
l
l
1: The driver tries to optimize INSERT statements by bypassing translation and using other
methods to identify column types.
0: The driver does not attempt the optimization, and translates INSERT statements
normally.
Note:
If the optimization fails, the driver falls back to translating INSERT statements normally. This
additional overhead might further reduce driver performance.
PreparedMetaLimitZero
Default Value
Data Type
1
Required
Integer
No
Cloudera JDBC Driver for Impala | 89
Driver Configuration Options
Description
This property specifies whether the PreparedStatement.getMetadata() call will request
metadata from the server with LIMIT 0, increasing performance.
l
1: The PreparedStatement.getMetadata() call uses LIMIT 0.
l
0: The PreparedStatement.getMetadata() call does not use LIMIT 0.
PWD
Default Value
Data Type
None
Required
String
Yes, if AuthMech=3.
Description
The password corresponding to the user name that you provided using the property "UID" on
page 93.
RowsFetchedPerBlock
Default Value
Data Type
Required
Integer
10000
No
Description
The maximum number of rows that a query returns at a time.
Any positive 32-bit integer is a valid value, but testing has shown that performance gains are
marginal beyond the default value of 10000 rows.
SocketTimeout
Default Value
Data Type
30
Required
Integer
No
Description
The number of seconds after which Impala closes the connection with the client application if the
connection is idle.
When this property is set to 0, idle connections are not closed.
90 | Cloudera JDBC Driver for Impala
Driver Configuration Options
SSL
Default Value
Data Type
Required
Integer
0
No
Description
This property specifies whether the driver communicates with the Impala server through an SSLenabled socket.
l
1: The driver connects to SSL-enabled sockets.
l
0: The driver does not connect to SSL-enabled sockets.
Note:
SSL is configured independently of authentication. When authentication and SSL are both
enabled, the driver performs the specified authentication method over an SSL connection.
SSLKeyStore
Default Value
Data Type
None
Required
String
No
Description
The full path of the Java KeyStore containing the server certificate for one-way SSL authentication.
See also the property "SSLKeyStorePwd" on page 91.
Note:
The Cloudera JDBC Driver for Impala accepts TrustStores and KeyStores for one-way SSL
authentication. See also the property "SSLTrustStore" on page 92.
SSLKeyStorePwd
Default Value
None
Data Type
Required
Integer
Yes, if you are using a
KeyStore for connecting over
SSL.
Cloudera JDBC Driver for Impala | 91
Driver Configuration Options
Description
The password for accessing the Java KeyStore that you specified using the property "SSLKeyStore"
on page 91.
SSLTrustStore
Default Value
Data Type
jssecacerts, if it exists.
Required
String
No
If jssecacerts does not
exist, then cacerts is used.
The default location of
cacerts is
jre\lib\security\.
Description
The full path of the Java TrustStore containing the server certificate for one-way SSL
authentication.
See also the property "SSLTrustStorePwd" on page 92.
Note:
The Cloudera JDBC Driver for Impala accepts TrustStores and KeyStores for one-way SSL
authentication. See also the property "SSLKeyStore" on page 91.
SSLTrustStorePwd
Default Value
Data Type
None
Required
String
Yes, if using a TrustStore
Description
The password for accessing the Java TrustStore that you specified using the property
"SSLTrustStore" on page 92.
StripCatalogName
Default Value
Data Type
1
92 | Cloudera JDBC Driver for Impala
Required
Integer
No
Driver Configuration Options
Description
This property specifies whether the driver removes catalog names from query statements if
translation fails or if the UseNativeQuery property is set to 1.
l
l
1: If query translation fails or if the UseNativeQuery property is set to 1, then the driver
removes catalog names from the query statement.
0: The driver does not remove catalog names from query statements.
SupportTimeOnlyTimestamp
Default Value
Data Type
Required
Integer
1
No
Description
This property specifies whether the driver supports TIMESTAMP data that only contains a time
value.
l
l
1: The driver supports TIMESTAMP data that only contains a time value.
0: The driver returns an error when working with TIMESTAMP data that only contains a
time value.
UID
Default Value
Data Type
Required
String
anonymous
Yes, if AuthMech=3.
Description
The user name that you use to access the Impala server.
UseNativeQuery
Default Value
Data Type
0
Required
Integer
No
Description
This property specifies whether the driver transforms the queries emitted by applications.
l
l
1: The driver does not transform the queries emitted by applications, so the native query is
used.
0: The driver transforms the queries emitted by applications and converts them into an
equivalent form in Impala SQL.
Cloudera JDBC Driver for Impala | 93
Driver Configuration Options
Note:
If the application is Impala-aware and already emits Impala SQL, then enable this option to
avoid the extra overhead of query transformation.
UseSasl
Default Value
Data Type
1
Required
Integer
No
Description
This property indicates if SASL is used in conjunction with the User Name and Password
Authentication Mechanism (AuthMech=3).
0: No SASL authentication is used. User credentials are still passed to the server for services such
as Sentry.
1: SASL authentication is used.
94 | Cloudera JDBC Driver for Impala
Contact Us
Contact Us
If you are having difficulties using the driver, our Community Forum may have your solution. In
addition to providing user to user support, our forums are a great place to share your questions,
comments, and feature requests with us.
If you are a Subscription customer you may also use the Cloudera Support Portal to search the
Knowledge Base or file a Case.
Important:
To help us assist you, prior to contacting Cloudera Support please prepare a detailed summary
of the client and server environment including operating system version, patch level, and
configuration
Cloudera JDBC Driver for Impala | 95
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising