Cloudera JDBC Driver For Impala Installation And Configuration Guide Simba Install
User Manual:
Open the PDF directly: View PDF .
Page Count: 89
Download | ![]() |
Open PDF In Browser | View PDF |
Cloudera JDBC Driver for Impala Version 2.5.30 Important Notice © 2010-2015 Cloudera, Inc. All rights reserved. Cloudera, the Cloudera logo, Cloudera Impala, Impala, 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.30 Date: January 26, 2016 2 | Cloudera JDBC Driver for Impala Table of Contents I NTRODUCTION 5 SYSTEM R EQUIREMENTS 6 CLOUDERA JDBC DRIVER FOR I MPALA FILES 7 USING THE CLOUDERA JDBC DRIVER FOR I MPALA 8 SETTING THE CLASS PATH 8 INITIALIZING THE DRIVER CLASS 8 BUILDING THE CONNECTION URL 9 JAVA SAMPLE CODE 11 CONFIGURING AUTHENTICATION 15 U SING N O AUTHENTICATION 15 U SING KERBEROS 15 U SING U SER N AME 16 U SING U SER N AME AND PASSWORD 16 CONFIGURING KERBEROS AUTHENTICATION FOR WINDOWS 16 CONFIGURING SSL 22 CONFIGURING SERVER-S IDE PROPERTIES 23 FEATURES 24 SQL TRANSLATION 24 DATA TYPES 24 CATALOG AND SCHEMA S UPPORT 25 INTERFACES AND S UPPORTED METHODS 25 CONTACT US 82 APPENDIX A D RIVER CONFIGURATION OPTIONS 83 ALLOWSELF SIGNED C ERTS 83 AUTH MECH 83 CAISSUED CERTN AMESMISMATCH 83 CATALOGS CHEMASWITCH 84 DEFAULTS TRINGCOLUMNL ENGTH 84 DELEGATIONUID 84 KRBH OSTFQDN 85 KRBR EALM 85 KRBS ERVICEN AME 85 L OWER CASERESULTS ETCOLUMN N AME 85 PREPARED METAL IMITZERO 86 PWD 86 Cloudera JDBC Driver for Impala | 3 ROWS FETCHEDP ERBLOCK 86 SOCKETTIMEOUT 87 SSL 87 SSLKEYSTORE 87 SSLKEYSTOREP WD 88 SSLTRUSTSTORE 88 SSLTRUSTSTOREPWD 88 UID 89 U SEN ATIVEQUERY 89 4 | Cloudera JDBC Driver for Impala Introduction Introduction 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 3.0, 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 http://www.simba.com/resources/data-accessstandards-library. This guide is suitable for users who want to access data residing within Impala from their desktop environment. Application developers may 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 computer 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. Table 1 lists the required version of JRE for each version of the JDBC API. Table 1. Driver System Requirements JDBC API Version JRE Version 3.0 4.0 or 5.0 4.0 6.0 or later 4.1 7.0 or later The driver supports Cloudera Impala versions 1.0.1 through 2.2. 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 ZIP archives, where version is the version number of the driver: l Cloudera_ImpalaJDBC3_version.zip l Cloudera_ImpalaJDBC4_version.zip l Cloudera_ImpalaJDBC41_version.zip Each archive contains the driver supporting the JDBC API version indicated in the archive name. The archives contain the following file and folder structure, where LibVersion is the version number of the library and APIVersion is the JDBC API version that the driver supports: l ImpalaJDBCAPIVersion o hive_metastore.jar o hive_service.jar o ImpalaJDBCAPIVersion.jar o libfb303-LibVersion.jar o libthrift-LibVersion.jar o log4j-LibVersion.jar o ql.jar o slf4j-api-LibVersion.jar o slf4j-log4j12-LibVersion.jar o TCLIServiceClient.jar Cloudera JDBC Driver for Impala | 7 Using the Cloudera JDBC Driver for Impala Using the Cloudera JDBC Driver for Impala To access an Impala data warehouse using the Cloudera JDBC Driver for Impala, you need to configure the following: l Class path l Driver or DataSource class l Connection URL For sample code that demonstrates how to use the driver, see "Java Sample Code" on page 11. 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 Setting the Class Path To use the Cloudera JDBC Driver for Impala, you must set the class path to include all the JAR files from the ZIP archive containing the driver that you are using. The class path 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: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html. Initializing the Driver Class Before connecting to the data store, you must initialize the appropriate class for the Impala server and your application. The following is a list of the classes used to connect the Cloudera JDBC Driver for Impala to Impala. The Driver classes extend java.sql.Driver, and the DataSource classes extend javax.sql.DataSource and javax.sql.ConnectionPoolDataSource. To support JDBC 3.0, classes with the following fully-qualified class names (FQCNs) are available: l com.cloudera.impala.jdbc3.Driver l com.cloudera.impala.jdbc3.DataSource 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: 8 | Cloudera JDBC Driver for Impala Using the Cloudera JDBC Driver for Impala 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.jdbc4.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 source 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: jdbc:impala://Host By default, the driver connects to port 21050 and uses the schema named default. You can specify optional settings such as the number of the TCP port to connect to, 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 83. 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 23. The following is the format of a connection URL that specifies some optional settings: jdbc:impala://Host:Port[/Schema];Property1=Value; Property2=Value;... Cloudera JDBC Driver for Impala | 9 Using the Cloudera JDBC Driver for Impala 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://localhost:18000[/default2];AuthMech=3; UID=cloudera;PWD=cloudera Important: Be aware of the following: l Properties are case-sensitive. l Do not duplicate properties in the connection URL. 10 | Cloudera JDBC Driver for Impala Java Sample Code Java Sample Code The following Java code provides an example demonstrating how to use the JDBC API to do the following: l Register the Cloudera JDBC Driver for Impala l Establish a connection to an Impala database l Query the database l Parse a result set l Handle exceptions l Clean up to avoid memory leakage Important: To use the Cloudera JDBC Driver for Impala in an application, you must include all the JAR files from the ZIP archive in the class path for your Java project. // java.sql packages are required import java.sql.*; // java.math packages are required import java.math.*; class ClouderaJDBCImpalaExample { // Define a string as the fully qualified class name // (FQCN) of the desired JDBC driver static String JDBCDriver = "com.cloudera.impala.jdbc3.Driver"; // Define a string as the connection URL private static final String CONNECTION_URL = "jdbc:impala://192.168.1.1:21050"; public static void main(String[] args) { Connection con = null; Statement stmt = null; ResultSet rs = null; // Define a plain query String query = "SELECT store_sales, store_cost FROM default.test LIMIT 20"; // Define a parameterized query Cloudera JDBC Driver for Impala | 11 Java Sample Code String prepQuery = "SELECT first_name, last_name, emp_id FROM default.emp where store_id = ?"; try { // Register the driver using the class name Class.forName(JDBC_DRIVER); // Establish a connection using the connection // URL con = DriverManager.getConnection(CONNECTION_URL); // Create a Statement object for sending SQL // statements to the database stmt = con.createStatement(); // Execute the SQL statement rs = stmt.executeQuery(query); // Display a header line for output appearing in // the Console View System.out.printf("%20s%20s\r\n", "STORE SALES", "STORE COST"); // Step through each row in the result set // returned from the database while(rs.next()) { // Retrieve values from the row where the // cursor is currently positioned using // column names BigDecimal StoreSales = rs.getBigDecimal ("store_ sales"); BigDecimal StoreCost = rs.getBigDecimal ("store_ cost"); // Display values in columns 20 characters // wide in the Console View using the // Formatter 12 | Cloudera JDBC Driver for Impala Java Sample Code System.out.printf("%20s%20s\r\n", StoreSales.toString(), StoreCost.toString()); } // Create a prepared statement PreparedStatement prep = con.prepareStatement (prepQuery); // Bind the query parameter with a value prep.setInt(1, 204); // Execute the query prep.execute(); rs = prep.getResultSet(); // Step through each row in the result set // returned from the database while(rs.next()) { // Retrieve values from the row where the // cursor is currently positioned using // column names String FirstName = rs.getString("first_name"); String LastName = rs.getString("last_name"); String EmployeeID = rs.getString("emp_id"); // Display values in columns 20 characters // wide in the Console View using the // Formatter System.out.printf("%20s%20s%20s\r\n", FirstName, LastName, EmployeeID); } } catch (SQLException se) { // Handle errors encountered during interaction // with the data source } catch (Exception e) { // Handle other errors } finally { // Perform clean up try { if (rs != null) { Cloudera JDBC Driver for Impala | 13 Java Sample Code rs.close(); } } catch (SQLException se1) { // Log this } try { if (stmt != null) { stmt.close(); } } catch (SQLException se2) { // Log this } try { if (prep != null) { prep.close(); } } catch (SQLException se3) { // Log this } try { if (con != null) { con.close(); } } catch (SQLException se4) { // Log this } // End try } // End try } // End main } // End ClouderaJDBCImpalaExample 14 | 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, refer to the Cloudera Impala documentation available at 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 83. Note: In addition to authentication, you can configure the driver to connect over SSL. For more information, see "Configuring SSL" on page 22. Using No Authentication 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 16. For other operating systems, refer to the MIT Kerberos documentation. To configure 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 Cloudera JDBC Driver for Impala | 15 Configuring Authentication host. 4. Set the KrbServiceName property to the service name of the Impala server. For example: jdbc:impala://localhost:21050;AuthMech=1;KrbRealm=EXAMPLE.COM; KrbHostFQDN=impala.example.com;KrbServiceName=impala 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. 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. For example: jdbc:impala://localhost:21050;AuthMech=2;UID=impala Using User Name and Password This authentication mechanism requires a user name and a password. 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: jdbc:impala://localhost:21050;AuthMech=3;UID=impala;PWD=***** 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 For a 64-bit computer, 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. 16 | Cloudera JDBC Driver for Impala Configuring Authentication l For a 32-bit computer, 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 32-bit libraries only. 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 the Start button , 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 computer. Getting a Kerberos Ticket To get a Kerberos ticket: 1. Click the Start button , 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. Cloudera JDBC Driver for Impala | 17 Configuring Authentication Authenticating to the Impala Server To authenticate to the Impala server: Use a connection string 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 83. Using the Driver to Get Tickets Deleting the KRB5CCNAME Environment Variable To enable the driver to get Ticket Granting Tickets (TGTs) directly, you must ensure 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. Ensure 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 18 | Cloudera JDBC Driver for Impala Configuring Authentication useKeyTab=true keyTab="PathToTheKeyTab" principal="cloudera@CLOUDERA" doNotPrompt=true; }; 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 To authenticate to the Impala server: Use a connection string 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 83. 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{ // 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"; Cloudera JDBC Driver for Impala | 19 Configuring Authentication /** * 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. */ @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 source 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); 20 | Cloudera JDBC Driver for Impala Configuring Authentication // Use the established connection. authenticateAction.con; Cloudera JDBC Driver for Impala | 21 Configuring SSL Configuring SSL If you are connecting to an Impala server that has Secure Sockets Layer (SSL) enabled, then you can configure the driver to connect to an SSL-enabled socket. SSL connections require a KeyStore and a TrustStore. You can create a TrustStore and configure the driver to use it, or allow the driver to use one of the default TrustStores. If you do not configure the driver to use a specific TrustStore, then the driver uses the Java TrustStore jssecacerts. If jssecacerts is not available, then the driver uses cacerts instead. To configure SSL: 1. Create a KeyStore and configure the driver to use it: a. Create a KeyStore containing your signed, trusted SSL certificate. b. Set the SSLKeyStore property to the full path of the KeyStore, including the file name. c. Set the SSLKeyStorePwd property to the password for the KeyStore. 2. Optionally, create a TrustStore and configure the driver to use it: a. Create a TrustStore containing your signed, trusted SSL certificate. b. Set the SSLTrustStore property to the full path of the TrustStore, including the file name. c. Set the SSLTrustStorePwd property to the password for the TrustStore. 3. Set the SSL property to 1. 4. Optionally, to allow the SSL certificate used by the server to be self-signed, set the AllowSelfSignedCerts property to 1 5. 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. For example: jdbc:impala://localhost:21050;AuthMech=3;SSL=1; SSLKeyStore=C:\\Users\\bsmith\\Desktop\\keystore.jks; SSLKeyStorePwd=*****;UID=impala;PWD=***** Note: For more information about the connection properties used in SSL connections, see "Driver Configuration Options" on page 83 22 | 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 | 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 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, ensure 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. Table 2 lists the supported data type mappings. Table 2. Supported Data Types Impala Type SQL Type Java Type ARRAY VARCHAR String BIGINT BIGINT java.math.BigInteger BINARY VARBINARY byte[] BOOLEAN BOOLEAN Boolean CHAR CHAR String DATE DATE java.sql.Date DECIMAL DECIMAL java.math.BigDecimal (Available only in CDH 5.2 or later) 24 | Cloudera JDBC Driver for Impala Features Impala Type SQL Type Java Type (Available only in CDH 5.1 or later) DOUBLE 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 (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 called “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. Interfaces and Supported Methods The Cloudera JDBC Driver for Impala implements the following JDBC interfaces: l "CallableStatement" on page 26 l "PooledConnection" on page 55 l "Connection" on page 36 l "PreparedStatement" on page 56 Cloudera JDBC Driver for Impala | 25 Features l "DatabaseMetaData" on page 40 l "ResultSet" on page 61 l "DataSource" on page 53 l "ResultSetMetaData" on page 76 l "Driver" on page 53 l "Statement" on page 78 l "ParameterMetaData" on page 54 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. Table 3 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/CallableStatement.html. Table 3. Methods in the CallableStatement Class Interface Method Supported Supported Since by the JDBC Driver Version Array getArray(int i) 3.0 No Array getArray(String parameterName) 3.0 No BigDecimal getBigDecimal (int parameterIndex) 3.0 Yes 26 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 Date getDate(int parameterIndex, Calendar cal) 3.0 Yes Date getDate(String 3.0 Yes Notes Deprecated Cloudera JDBC Driver for Impala | 27 Features Method Supported Supported Since by the JDBC Driver Version parameterName) 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 NClob getNClob(int parameterIndex) 4.0 No NClob getNClob(String parameterName) 4.0 No 28 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version String getNString(int parameterIndex) 4.0 No String getNString(String parameterName) 4.0 No Object getObject(int parameterIndex) 3.0 Yes T getObject(int parameterIndex, Class type) 4.1 No Object getObject(int i, Map > map) 3.0 No Object getObject(String parameterName) 3.0 Yes T getObject(String parameterName, Class type) 4.1 No Object getObject(String parameterName, Map > 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 RowId getRowId(String parameterName) 4.0 No short getShort(int parameterIndex) 3.0 Yes Notes Cloudera JDBC Driver for Impala | 29 Features Method Supported Supported Since by the JDBC Driver Version 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 (String parameterName) 3.0 Yes Timestamp getTimestamp (String parameterName, Calendar cal) 3.0 Yes 30 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 (String parameterName, InputStream x) 4.0 Yes void setAsciiStream (String parameterName, InputStream x, int 3.0 Yes Notes Cloudera JDBC Driver for Impala | 31 Features Method Supported Supported Since by the JDBC Driver Version length) 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 void setBoolean(String parameterName, boolean x) 3.0 Yes void setByte(String parameterName, byte x) 3.0 Yes 32 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 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 Notes Cloudera JDBC Driver for Impala | 33 Features Method Supported Supported Since by the JDBC Driver Version 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 parameterName, int sqlType, String typeName) 3.0 Yes void setObject(String parameterName, Object x) 3.0 Yes void setObject(String parameterName, Object x, int targetSqlType) 3.0 Yes 34 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 parameterName, Timestamp x, Calendar cal) 3.0 Yes void setURL(String parameterName, URL val) 3.0 Yes boolean wasNull() 3.0 Yes boolean isWrapperFor (Class> iface) 4.0 Yes T unwrap(Class iface) 4.0 Yes Notes Cloudera JDBC Driver for Impala | 35 Features Connection Table 4 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Connection.html. Table 4. Methods in the Connection Interface Method Supported Supported Since by the 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 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 36 | Cloudera JDBC Driver for Impala Notes Auto-commit cannot be set to false because it is hardcoded as true Features Method Supported Supported Since by the JDBC Driver Version 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 Notes Hard-coded to true Hard-coded to CLOSE_ CURSORS_AT_COMMIT The returned schema name does not always match the one used by statements. Statements use the schema name defined in the connection URL. int getTransactionIsolation() 3.0 Yes Map > getTypeMap() 3.0 No SQLWarning getWarnings() 3.0 Yes boolean isClosed() 3.0 Yes boolean isReadOnly() 3.0 Yes Hard-coded to TRANSACTION_READ_ UNCOMMITTED Returns true Cloudera JDBC Driver for Impala | 37 Features Method Supported Supported Since by the JDBC Driver Version 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 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 38 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version Notes 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 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. Cloudera JDBC Driver for Impala | 39 Features Method Supported Supported Since by the JDBC Driver Version Notes 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 > map) 3.0 No boolean isWrapperFor (Class> iface) 4.0 Yes T unwrap(Class iface) 4.0 Yes DatabaseMetaData Table 5 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/DatabaseMetaData.html. 40 | Cloudera JDBC Driver for Impala Features Table 5. Methods in the DatabaseMetaData Interface Supported Since JDBC Version Supported 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 dataDefinitionCausesTransactionCommit () 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 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 3.0 Yes Method Notes Cloudera JDBC Driver for Impala | 41 Features Supported Since JDBC Version Supported by the Driver 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 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 3.0 Yes Method Notes catalog, String schema, String table, String columnNamePattern) 42 | Cloudera JDBC Driver for Impala Hard-coded to Cloudera Impala Hard-coded to TRANSACTION_ READ_ UNCOMMITTED Hard-coded to ImpalaJDBC Features Supported Since JDBC Version Supported by the Driver 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 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 Method Notes catalog, String schema, String table) Returns an empty String. Returns a backquote (`) Cloudera JDBC Driver for Impala | 43 Features Supported Since JDBC Version Supported by the Driver 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 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 Method 44 | Cloudera JDBC Driver for Impala Notes Features Supported Since JDBC Version Supported by the Driver 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 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 Method Notes Returns procedure Cloudera JDBC Driver for Impala | 45 Features Supported Since JDBC Version Supported by the Driver String getStringFunctions() 3.0 Yes 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 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 Method 46 | Cloudera JDBC Driver for Impala Notes Returns the String Functions list from the specification related to the JDBC version of the driver. Returns DATABASE,IFNU LL,USER Returns the Time and Date Functions list from the specification related to the JDBC version of the driver. Features Supported Since JDBC Version Supported by the Driver 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 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 Method Notes Cloudera JDBC Driver for Impala | 47 Features Supported Since JDBC Version Supported by the Driver 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 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 Method 48 | Cloudera JDBC Driver for Impala Notes Features Supported Since JDBC Version Supported by the Driver boolean supportsCatalogsInPrivilegeDefinitions () 3.0 Yes Returns true boolean supportsCatalogsInProcedureCalls() 3.0 Yes Returns true boolean supportsCatalogsInTableDefinitions() 3.0 Yes Returns true 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 supportsDataDefinitionAndDataManipulat ionTransactions() 3.0 Yes Returns false boolean supportsDataManipulationTransactionsOn ly() 3.0 Yes Returns false boolean supportsDifferentTableCorrelationNames () 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 Method Notes Cloudera JDBC Driver for Impala | 49 Features Supported Since JDBC Version Supported by the Driver boolean supportsGroupBy() 3.0 Yes Returns true boolean supportsGroupByBeyondSelect() 3.0 Yes Returns true 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 boolean 3.0 Yes Returns true Method 50 | Cloudera JDBC Driver for Impala Notes Features Supported Since JDBC Version Supported by the Driver 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 supportsSchemasInPrivilegeDefinitions () 3.0 Yes Returns true boolean supportsSchemasInProcedureCalls() 3.0 Yes Returns false boolean supportsSchemasInTableDefinitions() 3.0 Yes Returns true boolean supportsSelectForUpdate() 3.0 Yes Returns false boolean supportsStatementPooling() 3.0 Yes Returns false Method Notes supportsOpenStatementsAcrossRollback() Cloudera JDBC Driver for Impala | 51 Features Supported Since JDBC Version Supported by the Driver boolean supportsStoredFunctionsUsingCallSyntax () 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 boolean isWrapperFor(Class> iface) 4.0 Yes T unwrap(Class iface) 4.0 Yes Method 52 | Cloudera JDBC Driver for Impala Notes Features DataSource Table 6 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/DataSource.html. Table 6. Methods in the DataSource Interface Method Supported Supported Since by the 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 boolean isWrapperFor (Class> iface) 4.0 Yes T unwrap(Class iface) 4.0 Yes Notes The driver does not use java.util.logging Driver Table 7 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. Cloudera JDBC Driver for Impala | 53 Features For detailed information about each method in the Driver interface, see the Java API documentation available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Driver.html. Table 7. Methods in the Driver Interface Method Supported Supported Since by the 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 Notes ParameterMetaData Table 8 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 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ParameterMetaData.html. Table 8. Methods in the ParameterMetaData Interface Method String getParameterClassName Supported Supported Since by the JDBC Driver Version 3.0 54 | Cloudera JDBC Driver for Impala Yes Notes Features Method Supported Supported Since by the JDBC Driver Version Notes (int param) 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 unwrap(Class iface) 4.0 Yes PooledConnection Table 9 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. For detailed information about each method in the PooledConnection interface, see the Java API documentation available at http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/PooledConnection.html. Cloudera JDBC Driver for Impala | 55 Features Table 9. Methods in the PooledConnection Interface Method Supported Since JDBC Version Supported 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 removeConnectionEventListene r(ConnectionEventListener listener) 3.0 Yes void removeStatementEventListener (StatementEventListener listener) 4.0 Yes Notes Removes the specified StatementEventListene r 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. Table 10 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. For detailed information about each method in the PooledConnection interface, see the Java API documentation available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/PreparedStatement.html. 56 | Cloudera JDBC Driver for Impala Features Table 10. Methods in the PreparedStatement Interface Method Supported Supported Since by the 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 parameterIndex, InputStream x) 4.0 Yes Notes Cloudera JDBC Driver for Impala | 57 Features Method Supported Supported Since by the JDBC Driver Version 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 length) 3.0 Yes void setCharacterStream (int parameterIndex, 4.0 Yes 58 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version Notes Reader reader, long length) 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 void setNCharacterStream (int parameterIndex, Reader value, long length) 4.0 No Cloudera JDBC Driver for Impala | 59 Features Method Supported Supported Since by the JDBC Driver Version 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 void setShort(int parameterIndex, short x) 3.0 No void setSQLXML(int 4.0 Yes 60 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version Notes parameterIndex, SQLXML xmlObject) 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 unwrap(Class iface) 4.0 Yes Deprecated ResultSet Table 11 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. Cloudera JDBC Driver for Impala | 61 Features For detailed information about each method in the ResultSet interface, see the Java API documentation available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSet.html. Table 11. Methods in the ResultSet Interface Method Supported Supported Since by the 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 BigDecimal getBigDecimal (int columnIndex) 3.0 Yes 62 | Cloudera JDBC Driver for Impala Notes Not valid because the driver is read-only. Not valid because the driver is read-only. Features Method Supported Supported Since by the JDBC Driver Version 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 Reader getCharacterStream (int columnIndex) 3.0 Yes Notes Deprecated Deprecated Cloudera JDBC Driver for Impala | 63 Features Method Supported Supported Since by the JDBC Driver Version 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 columnName) 3.0 Yes int getHoldability() 4.0 Yes 64 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 getObject(int columnIndex, Class type) 4.1 No Object getObject(int i, 3.0 No Notes Cloudera JDBC Driver for Impala | 65 Features Method Supported Supported Since by the JDBC Driver Version Map > map) Object getObject(String columnName) 3.0 No T getObject(String columnName, Class type) 4.1 No Object getObject(String colName, Map > 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 Statement getStatement() 3.0 Yes String getString(int columnIndex) 3.0 Yes 66 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version Notes 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 getUnicodeStream(String columnName) 3.0 Yes Deprecated URL getURL(int columnIndex) 3.0 No Cloudera JDBC Driver for Impala | 67 Features Method Supported Supported Since by the JDBC Driver Version Notes 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 Hard-coded to false boolean rowInserted() 3.0 Yes Hard-coded to false boolean rowUpdated() 3.0 Yes Hard-coded to false 68 | Cloudera JDBC Driver for Impala Not valid because the driver is read-only. Features Method Supported Supported Since by the JDBC Driver Version Notes 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. void updateBigDecimal(int columnIndex, BigDecimal x) 3.0 No Not valid because the driver is read-only. Cloudera JDBC Driver for Impala | 69 Features Method Supported Supported Since by the JDBC Driver Version Notes 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 void updateBlob(int columnIndex, InputStream inputStream, long length) 4.0 No void updateBlob(String 4.0 No 70 | Cloudera JDBC Driver for Impala Features Method Supported Supported Since by the JDBC Driver Version Notes columnName, InputStream inputStream) 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, Reader reader, int length) 3.0 No Not valid because the driver is read-only. void updateBlob(int columnIndex, InputStream inputStream) 4.0 No Cloudera JDBC Driver for Impala | 71 Features Method Supported Supported Since by the JDBC Driver Version Notes 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 columnName, float x) 3.0 No Not valid because the driver is read-only. 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. 72 | Cloudera JDBC Driver for Impala Features Method Supported Supported Since by the JDBC Driver Version Notes 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 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 4.0 No Cloudera JDBC Driver for Impala | 73 Features Method Supported Supported Since by the JDBC Driver Version Notes reader) 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. 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. 74 | Cloudera JDBC Driver for Impala Features Method Supported Supported Since by the JDBC Driver Version Notes 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 columnIndex, Timestamp x) 3.0 No Not valid because the driver is read-only. void updateTimestamp (String columnName, Timestamp x) 3.0 No Not valid because the driver is read-only. boolean wasNull() 3.0 Yes boolean isWrapperFor 4.0 Yes Cloudera JDBC Driver for Impala | 75 Features Method Supported Supported Since by the JDBC Driver Version Notes (Class> iface) T unwrap(Class iface) 4.0 Yes ResultSetMetaData Table 12 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/ResultSetMetaData.html. Table 12. Methods in the ResultSetMetaData Interface Method Supported Supported Since by the 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 (int column) 3.0 Yes String getColumnName(int column) 3.0 Yes int getColumnType(int column) 3.0 Yes 76 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version 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 column) 3.0 Yes boolean isSigned(int column) 3.0 Yes boolean isWritable(int column) 3.0 Yes boolean isWrapperFor 4.0 Yes Notes Cloudera JDBC Driver for Impala | 77 Features Supported Supported Since by the JDBC Driver Version Method Notes (Class> iface) T unwrap(Class iface) 4.0 Yes Statement Table 13 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 available at http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Statement.html. Table 13. Methods in the Statement Interface Method Supported Supported Since by the 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 sql) 3.0 Yes boolean execute(String sql, int autoGeneratedKeys) 3.0 No boolean execute(String 3.0 No 78 | Cloudera JDBC Driver for Impala Notes Features Method Supported Supported Since by the JDBC Driver Version Notes sql, int[] columnIndexes) 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 int getMaxFieldSize() 3.0 Yes int getMaxRows() 3.0 Yes boolean getMoreResults() 3.0 Yes boolean getMoreResults (int current) 3.0 No Cloudera JDBC Driver for Impala | 79 Features Method Supported Supported Since by the JDBC Driver Version Notes 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 (int direction) 3.0 No void setFetchSize(int rows) 3.0 Yes void setMaxFieldSize(int max) 3.0 Yes void setMaxRows(int max) 3.0 Yes void setPoolable(boolean 4.0 Yes 80 | Cloudera JDBC Driver for Impala Features Method Supported Supported Since by the JDBC Driver Version Notes poolable) void setQueryTimeout(int seconds) 3.0 Yes boolean isWrapperFor (Class> iface) 4.0 Yes T unwrap(Class iface) 4.0 Yes Cloudera JDBC Driver for Impala | 81 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. 82 | Cloudera JDBC Driver for Impala Appendix A Driver Configuration Options Appendix A Driver Configuration Options Appendix A 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. AllowSelfSignedCerts Default Value Required 0 No Description When this property is set to 0, the SSL certificate used by the server cannot be self-signed. When this property is set to 1, the SSL certificate used by the server can be self-signed. Note: This property is applicable only when SSL connections are enabled. AuthMech Default Value Required 0 No Description The authentication mechanism to use. Set the value to one of the following numbers: l 0 for No Authentication l 1 for Kerberos l 2 for User Name l 3 for User Name and Password CAIssuedCertNamesMismatch Default Value Required 0 No Cloudera JDBC Driver for Impala | 83 Appendix A Driver Configuration Options Description When this property is set to 0, the name of the CA-issued SSL certificate must match the host name of the Impala server. When this property is set to 1, the names of the certificate and the host name of the server are allowed to mismatch. Note: This property is applicable only when SSL connections are enabled. CatalogSchemaSwitch Default Value Required 0 No Description When this property is set to 1, the driver treats Impala catalogs as schemas as a restriction for filtering. When this property is set to 0, Impala catalogs are treated as catalogs, and Impala schemas are treated as schemas. DefaultStringColumnLength Default Value Required 255 No Description The maximum number of characters that can be contained in STRING columns. The range of DefaultStringColumnLength is 0 to 32,767. By default, the columns metadata for Impala does not specify a maximum data length for STRING columns. DelegationUID Default Value Required None No 84 | Cloudera JDBC Driver for Impala Appendix A Driver Configuration Options Description Use this option to delegate all operations against Impala to a user that is different than the authenticated user for the connection. KrbHostFQDN Default Value None Required Yes, if AuthMech=1 (Kerberos) Description The fully qualified domain name of the Impala host. KrbRealm Default Value Required Depends on Kerberos configuration. 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 option. KrbServiceName Default Value None Required Yes, if AuthMech=1 (Kerberos) Description The Kerberos service principal name of the Impala server. LowerCaseResultSetColumnName Default Value Required 1 No Cloudera JDBC Driver for Impala | 85 Appendix A Driver Configuration Options Description When this property is set to 1, the column name aliases in the resultSet metadata are returned in lower-case characters, matching the server-side behavior. When this property is set to 0, the column name aliases are returned in the same letter case as specified in the query. PreparedMetaLimitZero Default Value Required 1 No Description When this property is set to 1, the PreparedStatement.getMetadata() call will request metadata from the server with “LIMIT 0”, increasing performance. PWD Default Value None Required Yes, if AuthMech=3 (User Name and Password) Description The password corresponding to the user name that you provided using the property "UID" on page 89. RowsFetchedPerBlock Default Value Required 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. 86 | Cloudera JDBC Driver for Impala Appendix A Driver Configuration Options SocketTimeout Default Value Required 30 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. SSL Default Value Required 0 No Description When this property is set to 1, the driver communicates with the Impala server through an SSLenabled socket. When this property is set to 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 None Required Yes, if SSL=1 Description The full path and file name of the Java KeyStore containing an SSL certificate to use during authentication. See also the property "SSLKeyStorePwd" on page 88. Cloudera JDBC Driver for Impala | 87 Appendix A Driver Configuration Options SSLKeyStorePwd Default Value None Required Yes, if SSL=1 Description The password for accessing the Java KeyStore that you specified using the property "SSLKeyStore" on page 87. SSLTrustStore Default Value Required jssecacerts, if it exists. No If jssecacerts does not exist, then cacerts is used. The default location of cacerts is jre\lib\security\ Description The full path and file name of the Java TrustStore containing an SSL certificate to use during authentication. See also the property "SSLTrustStorePwd" on page 88. SSLTrustStorePwd Default Value None Required Yes, if using a TrustStore. Description The password for accessing the Java TrustStore that you specified using the property "SSLTrustStore" on page 88. 88 | Cloudera JDBC Driver for Impala Appendix A Driver Configuration Options UID Default Value anonymous Required Yes, if AuthMech=3 (User Name and Password) No, if AuthMech=2 (User Name) Description The user name that you use to access the Impala server. UseNativeQuery Default Value Required 0 No Description When this option is enabled (1), the driver does not transform the queries emitted by an application, so the native query is used. When this option is disabled (0), the driver transforms the queries emitted by an application and converts them into an equivalent form in Impala SQL. Note: If the application is Impala-aware and already emits Impala SQL, then enable this option to avoid the extra overhead of query transformation. Cloudera JDBC Driver for Impala | 89
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : Yes Language : en-us XMP Toolkit : Adobe XMP Core 5.6-c015 81.157285, 2014/12/12-00:43:15 Format : application/pdf Creator : Cloudera, Inc. Description : Cloudera JDBC Driver for Impala Title : Cloudera JDBC Driver for Impala Installation and Configuration Guide Create Date : 2016:01:25 10:55:04-08:00 Modify Date : 2016:01:25 10:55:41-08:00 Metadata Date : 2016:01:25 10:55:41-08:00 Producer : madbuild Document ID : uuid:ed518620-a6c2-41bc-8b47-6a044684390d Instance ID : uuid:a25886c6-ee59-4343-ae8b-0405e7f70b38 Page Mode : UseOutlines Page Count : 89 Author : Cloudera, Inc. Keywords : Cloudera, JDBC Driver, Impala Subject : Cloudera JDBC Driver for ImpalaEXIF Metadata provided by EXIF.tools