Cloudera ODBC Driver For Impala Install Guide
Cloudera ODBC Driver For Impala Install Guide
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
[email protected]
US: 1-888-789-1488
Intl: 1-650-843-0595
www.cloudera.com
Release Information
Version: 2.6.13
The Cloudera ODBC Driver for Impala complies with the ODBC 3.80 data standard and adds
important functionality such as Unicode and 32- and 64-bit support for high-performance
computing environments.
ODBC 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 ODBC driver, which connects an application
to the database. For more information about ODBC, see Data Access Standards on the Simba
Technologies website: https://www.simba.com/resources/data-access-standards-glossary. For
complete information about the ODBC specification, see the ODBC API Reference from the
Microsoft documentation: https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-
api-reference.
The Installation and Configuration Guide is suitable for users who are looking 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 ODBC.
Windows Driver
Windows System Requirements
The Cloudera ODBC Driver for Impala is recommended for Impala versions 2.8 through 3.3, CDH
versions 6.0 through 6.3, and CDP versions 7.0 and 7.1.
Install the driver on client machines where the application is installed. Before installing the driver,
make sure that you have the following:
l Administrator rights on your machine.
l A machine that meets the following system requirements:
l One of the following operating systems:
l Windows 10 or 8.1
l Windows Server 2019, 2016, or 2012
l 100 MB of available disk space
l Visual C++ Redistributable for Visual Studio 2013 installed (with the same bitness as
the driver that you are installing).
You can download the installation packages at https://www.microsoft.com/en-
ca/download/details.aspx?id=40784.
You can install both versions of the driver on the same machine.
Alternatively, you can specify connection settings in a connection string or as driver-wide settings.
Settings in the connection string take precedence over settings in the DSN, and settings in the DSN
take precedence over driver-wide settings.
The following instructions describe how to create a DSN. For information about specifying settings
in a connection string, see "Using a Connection String" on page 54. For information about driver-
wide settings, see "Setting Driver-Wide Configuration Options on Windows" on page 22.
Note:
Make sure to select the ODBC Data Source Administrator that has the same bitness as the
client application that you are using to connect to Impala.
2. In the ODBC Data Source Administrator, click the Drivers tab, and then scroll down as
needed to confirm that the Cloudera ODBC Driver for Impala appears in the alphabetical list
of ODBC drivers that are installed on your system.
3. Choose one:
l To create a DSN that only the user currently logged into Windows can use, click the
User DSN tab.
l Or, to create a DSN that all users who log into Windows can use, click the System
DSN tab.
Note:
It is recommended that you create a System DSN instead of a User DSN. Some
applications load the data using a different user account, and might not be able to detect
User DSNs that are created under another user account.
4. Click Add.
5. In the Create New Data Source dialog box, select Cloudera ODBC Driver for Impala and
then click Finish. The Cloudera ODBC Driver for Impala DSN Setup dialog box opens.
6. In the Data Source Name field, type a name for your DSN.
7. Optionally, in the Description field, type relevant details about the DSN.
8. In the Host field, type the IP address or host name of the network load balancer (NLB) or
one of the Impala nodes if you are deployed without an NLB.
9. In the Port field, type the number of the TCP port that the Impala server uses to listen for
client connections.
Note:
10. In the Database field, type the name of the database schema to use when a schema is not
explicitly specified in a query.
Note:
You can still issue queries on other schemas by explicitly specifying the schema in the
query. To inspect your databases and determine the appropriate schema to use, type the
show databases command at the Impala command prompt.
11. In the Authentication area, configure authentication as needed. For more information, see
"Configuring Authentication on Windows" on page 9.
Note:
The default configuration of Impala requires the Cloudera ODBC Driver for Impala to be
configured to use the No Authentication mechanism.
12. Optionally, if the operations against Impala are to be done on behalf of a user that is
different than the authenticated user for the connection, type the name of the user to be
delegated in the Delegation UID field.
13. In the Transport Mode drop-down list, select the Thrift transport protocol to use in the
Thrift layer.
Note:
For information about how to determine which Thrift transport protocols your Impala
server supports, see "Authentication Options" on page 53.
14. To configure a connection through a proxy server, click Proxy Options. For more
information, see "Configuring a Proxy Connection on Windows" on page 15.
15. If the Transport Mode option is set to HTTP, then to configure HTTP options such as custom
headers, click HTTP Options. For more information, see "Configuring HTTP Options on
Windows" on page 16.
16. To configure client-server verification over SSL, click SSL Options. For more information, see
"Configuring SSL Verification on Windows" on page 16.
17. To configure advanced driver options, click Advanced Options. For more information, see
"Configuring Advanced Options on Windows" on page 17.
18. To configure server-side properties, click Advanced Options and then click Server Side
Properties. For more information, see "Configuring Server-Side Properties on Windows" on
page 19.
19. To configure logging behavior for the driver, click Logging Options. For more information,
see "Configuring Logging Options on Windows" on page 20.
20. To test the connection, click Test. Review the results as needed, and then click OK.
Note:
If the connection fails, then confirm that the settings in the Cloudera ODBC Driver for
Impala DSN Setup dialog box are correct. Contact your Impala server administrator as
needed.
21. To save your settings and close the Cloudera ODBC Driver for Impala DSN Setup dialog box,
click OK.
22. To close the ODBC Data Source Administrator, click OK.
For information about how to determine the type of authentication your Impala server requires,
see "Authentication Options" on page 53.
You can specify authentication settings in a DSN, in a connection string, or as driver-wide settings.
Settings in the connection string take precedence over settings in the DSN, and settings in the DSN
take precedence over driver-wide settings.
If cookie-based authentication is enabled in your Impala database, you can specify a list of
authentication cookies in the HTTPAuthCookies connection property. In this case, the driver
authenticates the connection once based on the provided authentication credentials. It then uses
the cookie generated by the server for each subsequent request in the same connection. For
more information, see "HTTPAuthCookies" on page 85.
Note:
Using No Authentication
For this authentication mechanism, you do not need to configure any additional settings.
Note:
The default configuration of Impala requires the Cloudera ODBC Driver for Impala to be
configured to use the No Authentication mechanism.
Using Kerberos
If the Use Only SSPI advanced option is disabled, then Kerberos must be installed and configured
before you can use this authentication mechanism. For information about configuring Kerberos
on your machine, see "Configuring Kerberos Authentication for Windows" on page 24. For
information about setting the Use Only SSPI advanced option, see "Configuring Advanced Options
on Windows" on page 17.
Note:
To use the Impala server host name as the fully qualified domain name for Kerberos
authentication, in the Host FQDN field, type _HOST.
5. In the Service Name field, type the service name of the Impala server.
6. Optionally, if you are using MIT Kerberos and a Kerberos realm is specified in the Realm
field, then choose one:
l To have the Kerberos layer canonicalize the server's service principal name, leave the
Canonicalize Principal FQDN check box selected.
l Or, to prevent the Kerberos layer from canonicalizing the server's service principal
name, clear the Canonicalize Principal FQDN check box.
7. To allow the driver to pass your credentials directly to the server for use in authentication,
select Delegate Kerberos Credentials.
8. If the Impala server is configured to use SSL, then click SSL Options to configure SSL for the
connection. For more information, see "Configuring SSL Verification on Windows" on page
16.
9. Optionally, in the Transport Buffer Size field, type the number of bytes to reserve in
memory for buffering unencrypted data from the network.
Note:
10. To save your settings and close the dialog box, click OK.
The Advanced Kerberos authentication mechanism allows concurrent connections within the
same process to use different Kerberos user principals.
This authentication mechanism is supported only when the driver is configured to handle
Kerberos authentication using MIT Kerberos:
When you use Advanced Kerberos authentication, you do not need to run the kinit command
to obtain a Kerberos ticket. Instead, you use a JSON file to map your Impala user name to a
Kerberos user principal name and a keytab that contains the corresponding keys. The driver
obtains Kerberos tickets based on the specified mapping. As a fallback, you can specify a keytab
that the driver uses by default if the mapping file is not available or if no matching keytab can be
found in the mapping file.
Note:
l For information about the schema of the mapping file and how the driver handles invalid
mappings, see "UPN Keytab Mapping File" on page 78.
l For information about how the driver searches for a keytab file if the keytab mapping and
default keytab file are invalid, see "Default Keytab File" on page 66.
Note:
To use the Impala server host name as the fully qualified domain name for Kerberos
authentication, in the Host FQDN field, type _HOST.
5. In the Service Name field, type the service name of the Impala server.
6. Optionally, if you are using MIT Kerberos and a Kerberos realm is specified in the Realm
field, then choose one:
l To have the Kerberos layer canonicalize the server's service principal name, leave the
Canonicalize Principal FQDN check box selected.
l Or, to prevent the Kerberos layer from canonicalizing the server's service principal
name, clear the Canonicalize Principal FQDN check box.
7. Select the Use Keytab check box.
Note:
If the check box is not available, make sure that MIT Kerberos is installed on your
machine.
8. In the User Name field, type an appropriate user name for accessing the Impala server.
9. Click Keytab Options and then do the following in the Keytab Options dialog box:
a. In the UPN Keytab Mapping File field, specify the full path to a JSON file that maps
your Impala user name to a Kerberos user principal name and a keytab file.
b. In the Default Keytab File field, specify the full path to a keytab file that the driver
can use if the mapping file is not available or if no matching keytab can be found in
the mapping file.
c. To save your settings and close the dialog box, click OK.
10. If the Impala server is configured to use SSL, then click SSL Options to configure SSL for the
connection. For more information, see "Configuring SSL Verification on Windows" on page
16.
11. Optionally, in the Transport Buffer Size field, type the number of bytes to reserve in
memory for buffering unencrypted data from the network.
Note:
12. To save your settings and close the dialog box, click OK.
Using SAML 2.0
This authentication mechanism enables you to authenticate via Single Sign-On using SAML 2.0
against supported servers.
Important:
In order to use SAML 2.0 for authentication, Transport Mode must be set to HTTP and SSL must
be enabled.
Note:
This authentication mechanism requires a user name but not a password. The user name labels
the session, facilitating database tracking.
Note:
5. To save your settings and close the dialog box, click OK.
Note:
This authentication mechanism should not be used with an Impala configuration that does not
have LDAP enabled.
4. In the Password field, type the password corresponding to the user name you typed above.
5. To save the password, select the Save Password (Encrypted) check box.
Important:
The password is obscured, that is, not saved in plain text. However, it is still possible for
the encrypted password to be copied and used.
6. If the Impala server is configured to use SSL, then click SSL Options to configure SSL for the
connection. For more information, see "Configuring SSL Verification on Windows" on page
16.
7. Optionally, in the Transport Buffer Size field, type the number of bytes to reserve in
memory for buffering unencrypted data from the network.
Note:
8. Optionally, to use SASL to handle authentication, select the Use Simple Authentication
and Security Layer (SASL) check box.
Note:
9. To save your settings and close the dialog box, click OK.
l Or, if the credentials are used by all users on the current Windows machine, select All
Users Of This Machine.
8. To save your settings and close the HTTP Proxy Options dialog box, click OK.
The following instructions describe how to configure HTTP options in a DSN. You can specify the
connection settings described below in a DSN, in a connection string, or as driver-wide settings.
Settings in the connection string take precedence over settings in the DSN, and settings in the DSN
take precedence over driver-wide settings.
Note:
The HTTP options are available only when the Transport Mode option is set to HTTP.
3. In the HTTP Path field, type the partial URL corresponding to the Impala server.
4. To create a custom HTTP header, click Add, then type appropriate values in the Key and
Value fields, and then click OK.
5. To edit a custom HTTP header, select the header from the list, then click Edit, then update
the Key and Value fields as needed, and then click OK.
6. To delete a custom HTTP header, select the header from the list, and then click Remove. In
the confirmation dialog box, click Yes.
7. To save your settings and close the HTTP Properties dialog box, click OK.
The following instructions describe how to configure SSL in a DSN. You can specify the connection
settings described below in a DSN, in a connection string, or as driver-wide settings. Settings in the
connection string take precedence over settings in the DSN, and settings in the DSN take
precedence over driver-wide settings.
Important:
If Check Certificate Revocation is enabled, make sure that the driver has access to the CRL/OCSP
server. When using a proxy between the driver and the CRL/OCSP server, make sure that the
proxy is properly configured.
If the proxy uses LDAP authentication, save the proxy credential to the Windows system. This is
because the driver does not display a credential dialog when checking the revocation. Therefore,
if the credential is not saved, the driver does not check revocation and returns an SSL error.
Important:
l If you are using the Windows trust store, make sure to import the trusted CA
certificates into the trust store.
l If the trusted CA supports certificate revocation, select the Check Certificate
Revocation check box.
6. From the Minimum TLS Version drop-down list, select the minimum version of TLS to use
when connecting to your data store.
7. To save your settings and close the SSL Options dialog box, click OK.
The following instructions describe how to configure advanced options in a DSN. You can specify
the connection settings described below in a DSN, in a connection string, or as driver-wide
settings. Settings in the connection string take precedence over settings in the DSN, and settings
in the DSN take precedence over driver-wide settings.
Important:
l When this option is enabled, the driver cannot execute parameterized queries.
l By default, the driver applies transformations to the queries emitted by an
application to convert the queries into an equivalent form in Impala SQL. If the
application is Impala-aware and already emits Impala SQL, then turning off the
translation avoids the additional overhead of query transformation.
3. To enable the driver to successfully run queries that contain transaction statements, select
the Ignore Transactions check box.
Note:
The transaction statements are not executed, because ODBC does not support them.
Enabling this option allows the driver to run the query without returning error messages.
4. To enable the driver to return SQL_WVARCHAR instead of SQL_VARCHAR for STRING and
VARCHAR columns, and SQL_WCHAR instead of SQL_CHAR for CHAR columns, select the
Use SQL Unicode Types check box.
5. To have the driver automatically attempt to reconnect to the server if communications are
lost, select Enable Auto Reconnect.
6. To have the driver restrict catalog queries to the current schema when no schema is
specified, or when the schema is specified with the wildcard character %, select Restrict
Metadata with Current Schema.
7. In the Rows Fetched Per Block field, type the number of rows to be fetched per block.
8. In the Socket Timeout field, type the number of seconds that the TCP socket waits for a
response from the server before timing out the request and returning an error message.
Note:
9. In the String Column Length field, type the maximum data length for STRING columns.
10. In the Async Exec Poll Interval field, type the time in milliseconds between each poll for the
query execution status.
11. To handle Kerberos authentication using the SSPI plugin instead of MIT Kerberos by
default, select one or both of the check boxes under the Use Only SSPI option:
l To configure the current DSN to use the SSPI plugin by default, select Enable For This
DSN.
l To configure all DSN-less connections to use the SSPI plugin by default, select Enable
For DSN-less Connections.
l To configure all connections that use the Cloudera ODBC Driver for Impala to use the
SSPI plugin by default, select both check boxes.
12. Optionally, if you want the driver to retry queries that fail, select the Enable Query Retry
check box and then do the following:
a. In the Max Retries field, type the maximum mumber of times that the driver retries
each query.
b. In the Result Set Cache Size field, type the maximum amount of memory that the
result set cache can occupy. Values must be specified in: B (bytes), KB (kilobytes), MB
(megabytes), or GB (gigabytes).
c. In the Retry Interval field, type the amount of time that the driver waits between
query retry attempts. Values must be specified in S (seconds) or MS (milliseconds).
13. To save your settings and close the Advanced Options dialog box, click OK.
Important:
This feature is not supported for earlier versions of Impala, where the SET statement can only be
executed from within the Impala shell.
The following instructions describe how to configure server-side properties in a DSN. You can
specify the connection settings described below in a DSN, in a connection string, or as driver-wide
settings. Settings in the connection string take precedence over settings in the DSN, and settings
in the DSN take precedence over driver-wide settings.
5. To configure the driver to convert server-side property key names to all lower-case
characters, select the Convert Key Name To Lower Case check box.
6. To save your settings and close the Server Side Properties dialog box, click OK.
Important:
Only enable logging or tracing long enough to capture an issue. Logging or tracing decreases
performance and can consume a large quantity of disk space.
The settings for logging apply to every connection that uses the Cloudera ODBC Driver for Impala,
so make sure to disable the feature after you are done using it. To configure logging for the
current connection, see "Configuring Logging for the Current Connection" on page 21.
FATAL Logs severe error events that lead the driver to abort.
ERROR Logs error events that might allow the driver to continue
running.
WARNING Logs events that might result in an error if action is not taken.
DEBUG Logs detailed information that is useful for debugging the driver.
3. In the Log Path field, specify the full path to the folder where you want to save log files.
4. If requested by Technical Support, type the name of the component for which to log
messages in the Log Namespace field. Otherwise, do not type a value in the field.
5. In the Max Number Files field, type the maximum number of log files to keep.
Note:
After the maximum number of log files is reached, each time an additional file is created,
the driver deletes the oldest log file.
6. In the Max File Size field, type the maximum size of each log file in megabytes (MB).
Note:
After the maximum file size is reached, the driver creates a new file and continues logging.
7. Click OK.
8. Restart your ODBC application to make sure that the new settings take effect.
The Cloudera ODBC Driver for Impala produces the following log files at the location you specify in
the Log Path field:
l A clouderaimpalaodbcdriver.log file that logs driver activity that is not specific to
a connection.
l A clouderaimpalaodbcdriver_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 you enable the UseLogPrefix connection property, the driver prefixes the log file name with
the user name associated with the connection and the process ID of the application through
which the connection is made. For more information, see "UseLogPrefix" on page 88.
You can configure logging for the current connection by setting the logging configuration
properties in the DSN or in a connection string. For information about the logging configuration
properties, see "Configuring Logging Options on Windows" on page 20. Settings in the connection
string take precedence over settings in the DSN, and settings in the DSN take precedence over
driver-wide settings.
Note:
If the LogLevel configuration property is passed in via the connection string or DSN, the rest of
the logging configurations are read from the connection string or DSN and not from the existing
driver-wide logging configuration.
To configure logging properties in the DSN, you must modify the Windows registry. For
information about the Windows registry, see the Microsoft Windows documentation.
Important:
Editing the Windows Registry incorrectly can potentially cause serious, system-wide problems
that may require re-installing Windows to correct.
To confirm the key names for each configuration option, see Driver Configuration
Options.
c. In the Edit String dialog box, in the Value Data field, type the value for the
configuration option.
4. Close the Registry Editor.
5. Restart your ODBC application to make sure that the new settings take effect.
Note:
Settings in the connection string take precedence over settings in the DSN, and settings in the
DSN take precedence over driver-wide settings.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Cloudera\Cloudera
ODBC Driver for Impala\Driver
l Otherwise, browse to the following registry key:
The Cloudera ODBC Driver for Impala supports Active Directory Kerberos on Windows. There are
two prerequisites for using Active Directory Kerberos on Windows:
l MIT Kerberos is not installed on the client Windows machine.
l The MIT Kerberos Hadoop realm has been configured to trust the Active Directory realm,
according to Apache's documentation, so that users in the Active Directory realm can
access services in the MIT Kerberos Hadoop realm.
MIT Kerberos
For information about Kerberos and download links for the installer, see the MIT Kerberos
website: http://web.mit.edu/kerberos/.
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 above.
3. Follow the instructions in the installer to complete the installation process.
4. When the installation completes, click Finish.
Settings for Kerberos are specified through a configuration file. You can set up the configuration
file as an .ini file in the default location, which is the C:\ProgramData\MIT\Kerberos5
directory, or as a .conf file in a custom location.
Note:
For more information on configuring Kerberos, refer to the MIT Kerberos documentation.
Note:
krb5cache is a file (not a directory) that is managed by the Kerberos software, and it
should not be created by the user. If you receive a permission error when you first use
Kerberos, make sure that the krb5cache file does not already exist as a file or a
directory.
If the authentication succeeds, then your ticket information appears in MIT Kerberos Ticket
Manager.
[Principal] is the Kerberos user principal to use for authentication. For example:
[email protected].
3. If the cache location KRB5CCNAME is not set or used, then use the -c option of the kinit
command to specify the location of the credential cache. In the command, the -c
argument must appear last. For example:
kinit -k -t C:\mykeytabs\myUser.keytab [email protected] -c
C:\ProgramData\MIT\krbcache
To obtain a ticket for a Kerberos principal using the default keytab file:
Note:
For information about configuring a default keytab file for your Kerberos configuration, refer to
the MIT Kerberos documentation.
[principal] is the Kerberos user principal to use for authentication. For example:
[email protected].
3. If the cache location KRB5CCNAME is not set or used, then use the -c option of the kinit
command to specify the location of the credential cache. In the command, the -c
argument must appear last. For example:
kinit -k -t C:\mykeytabs\myUser.keytab [email protected] -c
C:\ProgramData\MIT\krbcache
Note:
Make sure to select the ODBC Data Source Administrator that has the same bitness as the
client application that you are using to connect to Impala.
2. Click the Drivers tab and then find the Cloudera ODBC Driver for Impala in the list of ODBC
drivers that are installed on your system. The version number is displayed in the Version
column.
macOS Driver
macOS System Requirements
The Cloudera ODBC Driver for Impala is recommended for Impala versions 2.8 through 3.3, CDH
versions 6.0 through 6.3, and CDP 7.0 and 7.1.
Install the driver on client machines where the application is installed. Each client machine that
you install the driver on must meet the following minimum system requirements:
l macOS version 10.13 or 10.14 or 10.15
l 100MB of available disk space
l One of the following ODBC driver managers installed:
o iODBC 3.52.9 or later
o unixODBC 2.2.14 or later
Note:
6. To accept the installation location and begin the installation, click Install.
7. When the installation completes, click Close.
Next, configure the environment variables on your machine to make sure that the ODBC driver
manager can work with the driver. For more information, see "Configuring the ODBC Driver
Manager on Non-Windows Machines" on page 37.
Note:
Important:
Make sure to delete the text corresponding to Cloudera ODBC Driver for Impala. If the
wrong text is deleted, it may effect other drivers installed in the odbcinst.ini file.
The command returns information about the Cloudera ODBC Driver for Impala that is installed on
your machine, including the version number.
Linux Driver
For most Linux distributions, you can install the driver using the RPM file. If you are installing the
driver on a Debian machine, you must use the Debian package.
Install the driver on client machines where the application is installed. Each client machine that
you install the driver on must meet the following minimum system requirements:
l One of the following distributions:
o Red Hat® Enterprise Linux® (RHEL) 7 or 8
o CentOS 7
o SUSE Linux Enterprise Server (SLES) 12 or 15
o Debian 8 or 9
o Oracle Linux 7.5 or 7.6
o Ubuntu 18.04 or 20.04
l 50 MB of available disk space
l One of the following ODBC driver managers installed:
o iODBC 3.52.9 or later
o unixODBC 2.2.14 or later
l All of the following libsasl libraries installed:
o cyrus-sasl-2.1.22-7 or later
o cyrus-sasl-gssapi-2.1.22-7 or later
o cyrus-sasl-plain-2.1.22-7 or later
Note:
If the package manager in your Linux distribution cannot resolve the dependencies
automatically when installing the driver, then download and manually install the
packages.
To install the driver, you must have root access on the machine.
You can install both the 32-bit and 64-bit versions of the driver on the same machine.
To install the Cloudera ODBC Driver for Impala using the RPM File:
1. Log in as the root user.
2. Navigate to the folder containing the RPM package for the driver.
3. Depending on the Linux distribution that you are using, run one of the following commands
from the command line, where [RPMFileName] is the file name of the RPM package:
l If you are using Red Hat Enterprise Linux or CentOS, run the following command:
yum --nogpgcheck localinstall [RPMFileName]
l Or, if you are using SUSE Linux Enterprise Server, run the following command:
zypper install [RPMFileName]
The Cloudera ODBC Driver for Impala files are installed in the
/opt/cloudera/impalaodbc directory.
Note:
If the package manager in your Linux distribution cannot resolve the libsasl
dependencies automatically when installing the driver, then download and manually
install the packages.
Next, configure the environment variables on your machine to make sure that the ODBC driver
manager can work with the driver. For more information, see "Configuring the ODBC Driver
Manager on Non-Windows Machines" on page 37.
On 64-bit editions of Debian, you can execute both 32- and 64-bit applications. However, 64-bit
applications must use 64-bit drivers, and 32-bit applications must use 32-bit drivers. Make sure
that you use the version of the driver that matches the bitness of the client application:
l ClouderaImpalaODBC-32bit-[Version]-[Release]_i386.deb for the 32-bit
driver
l ClouderaImpalaODBC-[Version]-[Release]_amd64.deb for the 64-bit driver
[Version] is the version number of the driver, and [Release] is the release number for this
version of the driver.
You can install both versions of the driver on the same machine.
The Cloudera ODBC Driver for Impala files are installed in the
/opt/cloudera/impalaodbc directory.
Note:
If the package manager in your Ubuntu distribution cannot resolve the libsasl
dependencies automatically when installing the driver, then download and manually
install the packages required by the version of the driver that you want to install.
Next, configure the environment variables on your machine to make sure that the ODBC driver
manager can work with the driver. For more information, see "Configuring the ODBC Driver
Manager on Non-Windows Machines" on page 37.
To verify the driver version number on Linux using the command-line interface:
Depending on your package manager, at the command prompt, run one of the following
commands:
l
yum list | grep ClouderaImpalaODBC
l
rpm -qa | grep ClouderaImpalaODBC
l
dpkg -l | grep clouderaimpalaodbc
The command returns information about the Cloudera ODBC Driver for Impala that is installed on
your machine, including the version number.
To verify the driver version number on Linux using the binary file:
1. Navigate to the /lib subfolder in your driver installation directory. By default, the path to
this directory is: /opt/cloudera/impalaodbc/lib.
2. Open the driver's .so binary file in a text editor, and search for the text $driver_
version_sb$:. The driver's version number is listed after this text.
AIX Driver
AIX System Requirements
The Cloudera ODBC Driver for Impala is recommended for Impala versions 2.8 through 3.3, CDH
versions 6.0 through 6.3, and CDP 7.0 and 7.1.
Install the driver on client machines where the application is installed. Each machine that you
install the driver on must meet the following minimum system requirements:
l IBM AIX 7.1 or 7.2
l 150 MB of available disk space
l One of the following ODBC driver managers installed:
o iODBC 3.52.9 or later
o unixODBC 2.2.14 or later
To install the driver, you must have root access on the machine.
[Version] is the version number of the driver, and [Release] is the release number for this version
of the driver.
You can install both versions of the driver on the same machine.
The Cloudera ODBC Driver for Impala files are installed in the
/opt/cloudera/impalaodbc directory.
Next, configure the environment variables on your machine to make sure that the ODBC driver
manager can work with the driver. For more information, see "Configuring the ODBC Driver
Manager on Non-Windows Machines" on page 37.
The command returns information about the Cloudera ODBC Driver for Impala that is installed on
your machine, including the version number.
After configuring the ODBC driver manager, you can configure a connection and access your data
store through the driver.
macOS
If you are using a macOS machine, then set the DYLD_LIBRARY_PATH environment variable to
include the paths to the ODBC driver manager libraries. For example, if the libraries are installed in
/usr/local/lib, then run the following command to set DYLD_LIBRARY_PATH for the current
user session:
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
For information about setting an environment variable permanently, refer to the macOS shell
documentation.
Linux or AIX
If you are using a Linux or AIX machine, then set the LD_LIBRARY_PATH environment variable to
include the paths to the ODBC driver manager libraries. For example, if the libraries are installed in
/usr/local/lib, then run the following command to set LD_LIBRARY_PATH for the current
user session:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
For information about setting an environment variable permanently, refer to the Linux or AIX shell
documentation.
driver installation directory. If you store these configuration files elsewhere, then you must set the
environment variables described below so that the driver manager can locate the files.
For example, if your odbc.ini and odbcinst.ini files are located in /usr/local/odbc
and your cloudera.impalaodbc.ini file is located in /etc, then set the environment
variables as follows:
For iODBC:
export ODBCINI=/usr/local/odbc/odbc.ini
export ODBCINSTINI=/usr/local/odbc/odbcinst.ini
export CLOUDERAIMPALAINI=/etc/cloudera.impalaodbc.ini
For unixODBC:
export ODBCINI=/usr/local/odbc/odbc.ini
export ODBCSYSINI=/usr/local/odbc
export CLOUDERAIMPALAINI=/etc/cloudera.impalaodbc.ini
To locate the cloudera.impalaodbc.ini file, the driver uses the following search order:
1. If the CLOUDERAIMPALAINI environment variable is defined, then the driver searches for
the file specified by the environment variable.
2. The driver searches the directory that contains the driver library files for a file named
cloudera.impalaodbc.ini.
3. The driver searches the current working directory of the application for a file named
cloudera.impalaodbc.ini.
4. The driver searches the home directory for a hidden file named
.cloudera.impalaodbc.ini (prefixed with a period).
5. The driver searches the /etc directory for a file named cloudera.impalaodbc.ini.
You can specify connection settings in a DSN (in the odbc.ini file), in a connection string, or as
driver-wide settings (in the cloudera.impalaodbc.ini file). Settings in the connection string
take precedence over settings in the DSN, and settings in the DSN take precedence over driver-
wide settings.
The following instructions describe how to create a DSN by specifying connection settings in the
odbc.ini file. If your machine is already configured to use an existing odbc.ini file, then
update that file by adding the settings described below. Otherwise, copy the odbc.ini file from
the Setup subfolder in the driver installation directory to the home directory, and then update
the file as described below.
For information about specifying settings in a connection string, see "Configuring a DSN-less
Connection on a Non-Windows Machine" on page 41 and "Using a Connection String" on page 54.
For information about driver-wide settings, see "Setting Driver-Wide Configuration Options on a
Non-Windows Machine" on page 51.
Note:
If you are using a hidden copy of the odbc.ini file, you can remove the period (.) from
the start of the file name to make the file visible while you are editing it.
2. In the [ODBC Data Sources] section, add a new entry by typing a name for the DSN,
an equal sign (=), and then the name of the driver.
3. Create a section that has the same name as your DSN, and then specify configuration
options as key-value pairs in the section:
a. Set the Driver property to the full path of the driver library file that matches the
bitness of the application.
b. Set the Host property to the IP address or host name of the server.
For example:
Host=192.168.222.160
c. Set the Port property to the number of the TCP port that the server uses to listen
for client connections.
For example:
Port=21050
supported by the Cloudera ODBC Driver for Impala, see "Driver Configuration
Options" on page 62.
4. Save the odbc.ini configuration file.
Note:
If you are storing this file in its default location in the home directory, then prefix the file
name with a period (.) so that the file becomes hidden. If you are storing this file in
another location, then save it as a non-hidden file (without the prefix), and make sure
that the ODBCINI environment variable specifies the location. For more information, see
"Specifying the Locations of the Driver Configuration Files" on page 37.
For example, the following is an odbc.ini configuration file for macOS containing a DSN that
connects to an Impala server that does not require authentication:
[ODBC Data Sources]
Sample DSN=Cloudera ODBC Driver for Impala
[Sample DSN]
Driver=/opt/
cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
Host=192.168.222.160
Port=21050
As another example, the following is an odbc.ini configuration file for a 32-bit driver on a
Linux/AIX/Debian machine, containing a DSN that connects to an Impala server that does not
require authentication:
[ODBC Data Sources]
Sample DSN=Cloudera ODBC Driver for Impala 32-bit
[Sample DSN]
Driver=/opt/
cloudera/impalaodbc/lib/32/libclouderaimpalaodbc32.so
Host=192.168.222.160
Port=21050
You can now use the DSN in an application to connect to the data store.
If your machine is already configured to use an existing odbcinst.ini file, then update that file
by adding the settings described below. Otherwise, copy the odbcinst.ini file from the
Setup subfolder in the driver installation directory to the home directory, and then update the
file as described below.
Note:
If you are using a hidden copy of the odbcinst.ini file, you can remove the period (.)
from the start of the file name to make the file visible while you are editing it.
2. In the [ODBC Drivers] section, add a new entry by typing a name for the driver, an
equal sign (=), and then Installed.
For example:
[ODBC Drivers]
Cloudera ODBC Driver for Impala=Installed
3. Create a section that has the same name as the driver (as specified in the previous step),
and then specify the following configuration options as key-value pairs in the section:
a. Set the Driver property to the full path of the driver library file that matches the
bitness of the application.
For example:
Description=Cloudera ODBC Driver for Impala
Note:
If you are storing this file in its default location in the home directory, then prefix the file
name with a period (.) so that the file becomes hidden. If you are storing this file in
another location, then save it as a non-hidden file (without the prefix), and make sure
that the ODBCINSTINI or ODBCSYSINI environment variable specifies the location. For
more information, see "Specifying the Locations of the Driver Configuration Files" on page
37.
[ODBC Drivers]
Cloudera ODBC Driver for Impala=Installed
[Cloudera ODBC Driver for Impala]
Description=Cloudera ODBC Driver for Impala
Driver=/opt/
cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
As another example, the following is an odbcinst.ini configuration file for both the 32- and
64-bit drivers on Linux/AIX/Debian:
[ODBC Drivers]
Cloudera ODBC Driver for Impala 32-bit=Installed
Cloudera ODBC Driver for Impala 64-bit=Installed
[Cloudera ODBC Driver for Impala 32-bit]
Description=Cloudera ODBC Driver for Impala (32-bit)
Driver=/opt/
cloudera/impalaodbc/lib/32/libclouderaimpalaodbc32.so
[Cloudera ODBC Driver for Impala 64-bit]
Description=Cloudera ODBC Driver for Impala (64-bit)
Driver=/opt/
cloudera/impalaodbc/lib/64/libclouderaimpalaodbc64.so
You can now connect to your data store by providing your application with a connection string
where the Driver property is set to the driver name specified in the odbcinst.ini file, and all
the other necessary connection properties are also set. For more information, see "DSN-less
Connection String Examples" in "Using a Connection String" on page 54.
For instructions about configuring specific connection features, see the following:
l "Configuring Authentication on a Non-Windows Machine" on page 43
l "Configuring SSL Verification on a Non-Windows Machine" on page 48
l "Configuring Server-Side Properties on a Non-Windows Machine" on page 48
For detailed information about all the connection properties that the driver supports, see "Driver
Configuration Options" on page 62.
For information about how to determine the type of authentication your Impala server requires,
see "Authentication Options" on page 53.
You can set the connection properties for authentication in a connection string, in a DSN (in the
odbc.ini file), or as a driver-wide setting (in the cloudera.impalaodbc.ini file). Settings
in the connection string take precedence over settings in the DSN, and settings in the DSN take
precedence over driver-wide settings.
If cookie-based authentication is enabled in your Impala database, you can specify a list of
authentication cookies in the HTTPAuthCookies connection property. In this case, the driver
authenticates the connection once based on the provided authentication credentials. It then uses
the cookie generated by the server for each subsequent request in the same connection. For
more information, see "HTTPAuthCookies" on page 85.
Using No Authentication
For this authentication mechanism, you do not need to configure any additional settings.
Note:
The default configuration of Impala requires the Cloudera ODBC Driver for Impala to be
configured to use the No Authentication mechanism.
Using Kerberos
Kerberos must be installed and configured before you can use this authentication mechanism. For
more information, refer to the MIT Kerberos Documentation: http://web.mit.edu/kerberos/krb5-
latest/doc/.
3. Optionally, if you are using MIT Kerberos and a Kerberos realm is specified using the
KrbRealm connection attribute, then choose one:
l To have the Kerberos layer canonicalize the server's service principal name, leave the
ServicePrincipalCanonicalization attribute set to 1.
l Or, to prevent the Kerberos layer from canonicalizing the server's service principal
name, set the ServicePrincipalCanonicalization attribute to 0.
4. Set the KrbFQDN attribute to the fully qualified domain name of the Impala server host.
Note:
To use the Impala server host name as the fully qualified domain name for Kerberos
authentication, set KrbFQDN to _HOST.
5. Set the KrbServiceName attribute to the service name of the Impala server.
6. Optionally, set the TSaslTransportBufSize attribute to the number of bytes to
reserve in memory for buffering unencrypted data from the network.
Note:
This authentication mechanism allows concurrent connections within the same process to use
different Kerberos user principals.
When you use Advanced Kerberos authentication, you do not need to run the kinit command
to obtain a Kerberos ticket. Instead, you use a JSON file to map your Impala user name to a
Kerberos user principal name and a keytab that contains the corresponding keys. The driver
obtains Kerberos tickets based on the specified mapping. As a fallback, you can specify a keytab
that the driver uses by default if the mapping file is not available or if no matching keytab can be
found in the mapping file.
Note:
l For information about the schema of the mapping file and how the driver handles invalid
mappings, see "UPN Keytab Mapping File" on page 78.
l For information about how the driver searches for a keytab file if the keytab mapping and
default keytab file are invalid, see "Default Keytab File" on page 66.
l Or, 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 appropriate realm using the KrbRealm
attribute.
3. Optionally, if you are using MIT Kerberos and a Kerberos realm is specified using the
KrbRealm connection attribute, then choose one:
l To have the Kerberos layer canonicalize the server's service principal name, leave the
ServicePrincipalCanonicalization attribute set to 1.
l Or, to prevent the Kerberos layer from canonicalizing the server's service principal
name, set the ServicePrincipalCanonicalization attribute to 0.
4. Set the KrbFQDN attribute to the fully qualified domain name of the Impala server host.
Note:
To use the Impala server host name as the fully qualified domain name for Kerberos
authentication, set KrbFQDN to _HOST.
5. Set the KrbServiceName attribute to the service name of the Impala server.
6. Set the UseKeytab attribute to 1.
7. Set the UID attribute to an appropriate user name for accessing the Impala server.
8. Set the UPNKeytabMappingFile attribute to the full path to a JSON file that maps your
Impala user name to a Kerberos user principal name and a keytab file.
9. Set the DefaultKeytabFile attribute to the full path to a keytab file that the driver can
use if the mapping file is not available or if no matching keytab can be found in the mapping
file.
10. If the Impala server is configured to use SSL, then configure SSL for the connection. For
more information, see "Configuring SSL Verification on a Non-Windows Machine" on page
48.
11. Optionally, set the TSaslTransportBufSize attribute to the number of bytes to
reserve in memory for buffering unencrypted data from the network.
Note:
Using SAML 2.0
This authentication mechanism enables you to authenticate via Single Sign-On using SAML 2.0
against supported servers.
Important:
In order to use SAML 2.0 for authentication, the TransportMode attribute must be set to
HTTP and the SSL attribute must be set to 1.
Note:
This authentication mechanism requires a user name but does not require a password. The user
name labels the session, facilitating database tracking.
Note:
Note:
This authentication mechanism should not be used with an Impala configuration that does not
have LDAP enabled.
Note:
Note:
You can set the connection properties described below in a connection string, in a DSN (in the
odbc.ini file), or as a driver-wide setting (in the cloudera.impalaodbc.ini file). Settings
in the connection string take precedence over settings in the DSN, and settings in the DSN take
precedence over driver-wide settings.
You can set the connection properties described below in a connection string, in a DSN (in the
odbc.ini file), or as a driver-wide setting (in the cloudera.impalaodbc.ini file). Settings
in the connection string take precedence over settings in the DSN, and settings in the DSN take
precedence over driver-wide settings.
Important:
This feature is not supported for earlier versions of Impala, where the SET statement can only be
executed from within the Impala shell.
Note:
2. To disable the driver's default behavior of converting server-side property key names to all
lower-case characters, set the LCaseSspKeyName property to 0.
Important:
Only enable logging long enough to capture an issue. Logging decreases performance and can
consume a large quantity of disk space.
You can set the connection properties described below in a connection string, in a DSN (in the
odbc.ini file), or as a driver-wide setting (in the cloudera.impalaodbc.ini file). Settings
in the connection string take precedence over settings in the DSN, and settings in the DSN take
precedence over driver-wide settings.
To enable logging:
1. To specify the level of information to include in log files, set the LogLevel property to one
of the following numbers:
2. Set the LogPath key to the full path to the folder where you want to save log files.
3. Set the LogFileCount key to the maximum number of log files to keep.
Note:
After the maximum number of log files is reached, each time an additional file is created,
the driver deletes the oldest log file.
4. Set the LogFileSize key to the maximum size of each log file in bytes.
Note:
After the maximum file size is reached, the driver creates a new file and continues logging.
5. Optionally, to prefix the log file name with the user name and process ID associated with
the connection, set the UseLogPrefix property to 1.
6. Save the cloudera.impalaodbc.ini configuration file.
7. Restart your ODBC application to make sure that the new settings take effect.
The Cloudera ODBC Driver for Impala produces the following log files at the location you specify
using the LogPath key:
l A clouderaimpalaodbcdriver.log file that logs driver activity that is not specific to
a connection.
l A clouderaimpalaodbcdriver_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 you set the UseLogPrefix property to 1, then each file name is prefixed with [UserName]_
[ProcessID]_, where [UserName] is the user name associated with the connection and
[ProcessID] is the process ID of the application through which the connection is made. For more
information, see "UseLogPrefix" on page 88.
To disable logging:
1. Set the LogLevel key to 0.
2. Save the cloudera.impalaodbc.ini configuration file.
3. Restart your ODBC application to make sure that the new settings take effect.
Note:
Settings in the connection string take precedence over settings in the DSN, and settings in the
DSN take precedence over driver-wide settings.
For example, to enable SASL User Name authentication using "cloudera" as the user name,
type the following:
AuthMech=SASL User Name
UID=cloudera
For detailed information about all the configuration options supported by the driver, see
"Driver Configuration Options" on page 62.
3. Save the cloudera.impalaodbc.ini configuration file.
You can use the iodbctest and iodbctestw utilities to establish a test connection with your driver.
Use iodbctest to test how your driver works with an ANSI application, or use iodbctestw to test
how your driver works with a Unicode application.
Note:
There are 32-bit and 64-bit installations of the iODBC driver manager available. If you have only
one or the other installed, then the appropriate version of iodbctest (or iodbctestw) is available.
However, if you have both 32- and 64-bit versions installed, then you need to make sure that
you are running the version from the correct installation directory.
For more information about using the iODBC driver manager, see http://www.iodbc.org.
You can use the isql and iusql utilities to establish a test connection with your driver and your
DSN. isql and iusql can only be used to test connections that use a DSN. Use isql to test how your
driver works with an ANSI application, or use iusql to test how your driver works with a Unicode
application.
Note:
There are 32-bit and 64-bit installations of the unixODBC driver manager available. If you have
only one or the other installed, then the appropriate version of isql (or iusql) is available.
However, if you have both 32- and 64-bit versions installed, then you need to make sure that
you are running the version from the correct installation directory.
For more information about using the unixODBC driver manager, see http://www.unixodbc.org.
[DataSourceName] is the DSN that you are using for the connection.
Note:
For information about the available options, run isql or iusql without providing a DSN.
Authentication Options
Impala supports multiple authentication mechanisms. You must determine the authentication
type that your server is using. The authentication methods available in the Cloudera ODBC Driver
for Impala are as follows:
l No Authentication
l Kerberos
l SAML 2.0
l SASL User Name
l User Name And Password
Note:
l The default configuration of Impala requires the Cloudera ODBC Driver for Impala to be
configured to use the No Authentication mechanism.
l In addition to regular Kerberos authentication, the driver also supports an advanced
configuration of Kerberos authentication that allows concurrent connections within the
same process to use different Kerberos user principals.
In addition to authentication, you can configure the driver to connect over SSL or use SASL to
handle authentication.
The Impala server uses SASL (Simple Authentication and Security Layer) to support some of the
authentication methods. Kerberos is supported with the SASL GSSAPI mechanism. SASL User
Name and User Name And Password (with SASL enabled) are supported with the
SASL PLAIN mechanism.
l Kerberos l No Authentication
l SASL User Name l SAML 2.0
l User Name And Password (with SASL l User Name And Password (without
enabled) SASL enabled)
Note:
Thrift (the layer for handling remote process communication between the Cloudera ODBC Driver
for Impala and the Impala server) has a limitation where it cannot detect a mix of non-SASL and
SASL mechanisms being used between the driver and the server. If this happens, the driver will
appear to hang during connection establishment.
The connection strings in the following sections are examples showing the minimum set of
connection attributes that you must specify to successfully connect to the data source.
Depending on the configuration of the data source and the type of connection you are working
with, you might need to specify additional connection attributes. For detailed information about
all the attributes that you can use in the connection string, see "Driver Configuration Options" on
page 62.
[DataSourceName] is the DSN that you are using for the connection.
You can set additional configuration options by appending key-value pairs to the connection
string. Configuration options that are passed in using a connection string take precedence over
configuration options that are set in the DSN.
The following is the format of a DSN-less connection string that connects to an Impala server that
does not require authentication:
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;
If you are connecting to the server through SSL, then set the SSL property to 1. For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;SSL=1;
The following is the format of a DSN-less connection string that connects to an Impala server
requiring Kerberos authentication:
Driver=Cloudera ODBC Driver for Impala;Host=[Server];
Port=[PortNumber];AuthMech=Kerberos;KrbRealm=[Realm];
KrbFQDN=[DomainName];KrbServiceName=[ServiceName];
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=Kerberos;KrbRealm=CLOUDERA;
KrbFQDN=localhost.localdomain;KrbServiceName=impala;
If you are connecting to the server through SSL, then set the SSL property to 1. For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=Kerberos;KrbRealm=CLOUDERA;
KrbFQDN=localhost.localdomain;KrbServiceName=impala;SSL=1;
The following is the format of a DSN-less connection string that connects to an Impala server using
Advanced Kerberos authentication:
Driver=Cloudera ODBC Driver for Impala;Host=[Server];
Port=[PortNumber];AuthMech=Kerberos;KrbRealm=[Realm];
KrbFQDN=[DomainName];KrbServiceName=[ServiceName];
UseKeytab=1;UID=[YourUserName];
UPNKeytabMappingFile=[MappingFile];
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=Kerberos;KrbRealm=CLOUDERA;
KrbFQDN=localhost.localdomain;KrbServiceName=impala;
UseKeytab=1;UID=cloudera;
UPNKeytabMappingFile=C:\Temp\cloudera.keytab;
If you are connecting to the server through SSL, then set the SSL property to 1. For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=Kerberos;KrbRealm=CLOUDERA;
KrbFQDN=localhost.localdomain;KrbServiceName=impala;
UseKeytab=1;UID=cloudera;
UPNKeytabMappingFile=C:\Temp\cloudera.keytab;SSL=1;
The following is the format of a DSN-less connection string that connects to an Impala server using
SAML 2.0 authentication:
Driver=Cloudera ODBC Driver for Impala;Host=[Server];
Port=[PortNumber];AuthMech=SAML_2.0;TransportMode=http;HttpPath=
[URL];SSL=1
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=SAML_
2.0;TransportMode=http;HttpPath=cliservice;SSL=1
The following is the format of a DSN-less connection string that connects to an Impala server
requiring User Name authentication. By default, the driver uses anonymous as the user name.
Driver=Cloudera ODBC Driver for Impala;Host=[Server];
Port=[PortNumber];AuthMech=SASL User Name;
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=SASL User Name;
If you are connecting to the server through SSL, then set the SSL property to 1. For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=SASL User Name;SSL=1;
Connecting to an Impala Server with LDAP Authentication or other User Name and Password
Authentication Enabled
The following is the format of a DSN-less connection string that connects to an Impala server with
LDAP authentication, or another form of username/password authentication, enabled:
Driver=Cloudera ODBC Driver for Impala;Host=[Server];
Port=[PortNumber];AuthMech=User Name and Password;UID=
[UserName];
PWD=[Password];
For example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=User Name and
Password;UID=cloudera;PWD=cloudera;
If you are connecting to the LDAP-enabled server through SSL, then set the SSL property to 1. For
example:
Driver=Cloudera ODBC Driver for Impala;Host=192.168.222.160;
Port=21050;AuthMech=User Name and
Password;UID=cloudera;PWD=cloudera;SSL=1;
Features
For more information on the features of the Cloudera ODBC Driver for Impala, see the following:
l "Data Types" on page 58
l "Catalog and Schema Support" on page 59
l "SQL Translation" on page 60
l "Server-Side Properties" on page 60
l "Active Directory" on page 60
l "Write-back" on page 60
l "Security and Authentication" on page 61
Data Types
The Cloudera ODBC Driver for Impala supports many common data formats, converting between
Impala data types and SQL data types.
ARRAY SQL_VARCHAR
BIGINT SQL_BIGINT
BOOLEAN SQL_BOOLEAN
CHAR SQL_CHAR
Note: Note:
Only available in CDH 5.2 or later. SQL_WCHAR is returned instead if the Use
SQL Unicode Types configuration option
(the UseUnicodeSqlCharacterTypes
key) is enabled.
DATE SQL_DATE
Note:
DECIMAL SQL_DECIMAL
Note:
DOUBLE SQL_DOUBLE
Note:
FLOAT SQL_REAL
INT SQL_INTEGER
MAP SQL_VARCHAR
SMALLINT SQL_SMALLINT
STRUCT SQL_VARCHAR
TIMESTAMP SQL_TIMESTAMP
TINYINT SQL_TINYINT
VARCHAR SQL_VARCHAR
Note: Note:
SQL Translation
The Cloudera ODBC Driver for Impala can parse queries locally before 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 ODBC 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.
Server-Side Properties
The Cloudera ODBC Driver for Impala allows you to set server-side properties via a DSN. Server-
side properties specified in a DSN affect only the connection that is established using the DSN.
For more information about setting server-side properties when using the Windows driver, see
"Configuring Server-Side Properties on Windows" on page 19. For information about setting
server-side properties when using the driver on a non-Windows platform, see "Configuring Server-
Side Properties on a Non-Windows Machine" on page 48.
Active Directory
The Cloudera ODBC Driver for Impala supports Active Directory Kerberos on Windows. There are
two prerequisites for using Active Directory Kerberos on Windows:
l MIT Kerberos is not installed on the client Windows machine.
l The MIT Kerberos Hadoop realm has been configured to trust the Active Directory realm,
according to Apache's documentation, so that users in the Active Directory realm can
access services in the MIT Kerberos Hadoop realm.
Write-back
The Cloudera ODBC Driver for Impala supports translation for the following syntax:
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.
Note:
In this documentation, "SSL" refers to both TLS (Transport Layer Security) and SSL (Secure
Sockets Layer). The driver supports TLS 1.0, 1.1, and 1.2. The SSL version used for the
connection is the highest version that is supported by both the driver and the server.
The driver provides mechanisms that enable 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 information about determining the appropriate authentication mechanism to use
based on the Impala server configuration, see "Authentication Options" on page 53. For detailed
driver configuration instructions, see "Configuring Authentication on Windows" on page 9 or
"Configuring Authentication on a Non-Windows Machine" on page 43.
Additionally, the driver supports SSL connections with or without 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 Verification on Windows" on page 16 or "Configuring SSL
Verification on a Non-Windows Machine" on page 48.
When creating or configuring a connection from a Windows machine, the fields and buttons are
available in the following dialog boxes:
l Cloudera ODBC Driver for Impala DSN Setup
l Advanced Options
l Keytab Options
l Server Side Properties
l SSL Options
When using a connection string, configuring driver-wide settings, or configuring a connection from
a non-Windows machine, use the key names provided.
Note:
Settings in the connection string take precedence over settings in the DSN, and settings in the
DSN take precedence over driver-wide settings.
l "Password" on page 72
l "Port" on page 73
Description
This option specifies whether a CA-issued SSL certificate name must match the host name of the
Impala server.
Note:
The key for this option used to be CAIssuedCertNamesMismatch, and is still recognized by
the driver under that key. If both keys are defined, AllowHostNameCNMismatch will take
precedence.
l Enabled (1): The driver allows a CA-issued SSL certificate name to not match the host name
of the Impala server.
l Disabled (0): The CA-issued SSL certificate name must match the host name of the Impala
server.
Note:
Description
This option specifies whether the driver allows a connection to an Impala server that uses a self-
signed certificate.
l Enabled (1): The driver authenticates the Impala server even if the server is using a self-
signed certificate.
l Disabled (0): The driver does not allow self-signed certificates from the server.
Note:
AsyncExecPollInterval 10 No
Description
The time in milliseconds between each poll for the query execution status.
"Asynchronous execution" refers to the fact that the RPC call used to execute a query against
Impala is asynchronous. It does not mean that ODBC asynchronous operations are supported.
Authentication Flow
Key Name Default Value Required
Auth_Flow browser No
Description
This property specifies the type of authentication flow that the driver uses when the Mechanism
option is set to SAML_2.0. Currently, the only supported value is browser.
Note:
The browser work flow is only supported in a GUI desktop environment on Windows, Linux, and
macOS.
Description
This option specifies whether the Kerberos layer canonicalizes the host FQDN in the server’s
service principal name.
l Enabled (1): The Kerberos layer canonicalizes the host FQDN in the server’s service principal
name.
l Disabled (0): The Kerberos layer does not canonicalize the host FQDN in the server’s service
principal name.
Note:
l This option only affects MIT Kerberos, and is ignored when using Active Directory
Kerberos.
l This option can only be disabled if the Kerberos Realm or KrbRealm key is specified.
Description
This option specifies whether the driver checks to see if a certificate has been revoked while
retrieving a certificate chain from the Windows Trust Store.
This option is only applicable if you are using a CA certificate from the Windows Trust Store (see
"Use System Trust Store" on page 82).
l Enabled (1): The driver checks for certificate revocation while retrieving a certificate chain
from the Windows Trust Store.
l Disabled (0): The driver does not check for certificate revocation while retrieving a certificate
chain from the Windows Trust Store.
Note:
Note:
Description
This option specifies whether the driver converts server-side property key names to all lower-case
characters.
l Enabled (1): The driver converts server-side property key names to all lower-case
characters.
l Disabled (0): The driver does not modify the server-side property key names.
Database
Key Name Default Value Required
Schema default No
Description
The name of the database schema to use when a schema is not explicitly specified in a query. You
can still issue queries on other schemas by explicitly specifying the schema in the query.
Note:
To inspect your databases and determine the appropriate schema to use, at the Impala
command prompt, type show databases.
DefaultKeytabFile None No
Description
The full path to the keytab file that the driver uses to obtain the ticket for Kerberos
authentication.
Note:
l This option is applicable only when the authentication mechanism is set to Kerberos
(AuthMech=Kerberos) and the Use Keytab option is enabled (UseKeytab=1).
l If the UPN Keytab Mapping File option (the UPNKeytabMappingFile key) is set to a
JSON file with a valid mapping to a keytab, then that keytab takes precedence.
If you do not set this option but the Use Keytab option is enabled (UseKeytab=1), then the
MIT Kerberos library will search for a keytab using the following search order:
l The file specified by the KRB5_KTNAME environment variable.
l The default_keytab_name setting in the [libdefaults] section of the Kerberos
configuration file (krb5.conf/krb5.ini).
l The default keytab file specified in the MIT Kerberos library. Typically, the default file is
C:\Windows\krb5kt for Windows platforms and /etc/krb5.keytab for non-
Windows platforms.
Delegation UID
Key Name Default Value Required
DelegationUID None No
Description
If a value is specified for this setting, the driver delegates all operations against Impala to the
specified user, rather than to the authenticated user for the connection.
Description
This option specifies whether the driver attempts to automatically reconnect to the server when a
communication link error occurs.
l Enabled (1): The driver attempts to reconnect.
l Disabled (0): The driver does not attempt to reconnect.
Description
This option specifies whether the driver automatically retries queries that are sent to the server
but fail.
l Enabled (1): The driver retries failed queries.
l Disabled (0): The driver only submits each query once.
Enable SSL
Key Name Default Value Required
Description
This option specifies whether the client uses an SSL encrypted connection to communicate with
the Impala server.
l Enabled (1): The client communicates with the Impala server using SSL.
l Disabled (0): SSL is disabled.
SSL is configured independently of authentication. When authentication and SSL are both
enabled, the driver performs the specified authentication method over an SSL connection.
HTTP Path
Key Name Default Value Required
HTTPPath None No
Description
The driver forms the HTTP address to connect to by appending the HTTP Path value to the host
and port specified in the DSN or connection string. For example, to connect to the HTTP address
http://localhost:21050/gateway/sandbox/impala/version, you would set HTTP
Path to /gateway/sandbox/impala/version.
Host
Key Name Default Value Required
Description
Host FQDN
Key Name Default Value Required
KrbFQDN _HOST No
Description
When the value of Host FQDN is _HOST, the driver uses the Impala server host name as the fully
qualified domain name for Kerberos authentication.
Ignore Transactions
Key Name Default Value Required
Description
This option specifies whether the driver should simulate transactions, or return an error.
l Enabled (1): The driver simulates transactions, enabling queries that contain transaction
statements to be run successfully. The transactions are not executed.
l Disabled (0): The driver returns an error if it attempts to run a query that contains
transaction statements.
Note:
Log Level
Key Name Default Value Required
Description
Use this property to enable or disable logging in the driver and to specify the amount of detail
included in log files.
Important:
l Only enable logging long enough to capture an issue. Logging decreases performance and
can consume a large quantity of disk space.
l When logging with connection strings and DSNs, this option only applies to per-
connection logs.
When logging is enabled, the driver produces the following log files at the location you specify in
the Log Path (LogPath) property:
l A clouderaimpalaodbcdriver.log file that logs driver activity that is not specific to
a connection.
l A clouderaimpalaodbcdriver_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 you enable the UseLogPrefix connection property, the driver prefixes the log file name with
the user name associated with the connection and the process ID of the application through
which the connection is made. For more information, see "UseLogPrefix" on page 88.
Log Path
Key Name Default Value Required
Description
The full path to the folder where the driver saves log files when logging is enabled.
Important:
When logging with connection strings and DSNs, this option only applies to per-connection logs.
Max File Size
Key Name Default Value Required
LogFileSize 20971520 No
Description
The maximum size of each log file in bytes. After the maximum file size is reached, the driver
creates a new file and continues logging.
If this property is set using the Windows UI, the entered value is converted from megabytes (MB)
to bytes before being set.
Important:
When logging with connection strings and DSNs, this option only applies to per-connection logs.
Max Number Files
Key Name Default Value Required
LogFileCount 50 No
Description
The maximum number of log files to keep. After the maximum number of log files is reached, each
time an additional file is created, the driver deletes the oldest log file.
Important:
When logging with connection strings and DSNs, this option only applies to per-connection logs.
Maximum Retries
Key Name Default Value Required
MaxNumQueryRetries 5 No
Description
The maximum number of times that the driver retries a failed query, when query retry is enabled.
Mechanism
Key Name Default Value Required
Description
Select one of the following settings, or set the key to the authentication name:
l No Authentication (No Authentication or 0)
l Kerberos (Kerberos or 1)
l SASL User Name (SASL User Name or 2)
l User Name And Password (User Name and Password or 3)
l SAML_2.0 (SAML_2.0)
Minimum TLS
Key Name Default Value Required
Description
The minimum version of TLS/SSL that the driver allows the data store to use for encrypting
connections. For example, if TLS 1.1 is specified, TLS 1.0 cannot be used to encrypt connections.
l TLS 1.0 (1.0): The connection must use at least TLS 1.0.
l TLS 1.1 (1.1): The connection must use at least TLS 1.1.
l TLS 1.2 (1.2): The connection must use at least TLS 1.2.
Password
Key Name Default Value Required
Description
The password corresponding to the user name that you provided in the User Name field (the UID
key).
Port
Key Name Default Value Required
Description
The number of the TCP port that the Impala server uses to listen for client connections.
Proxy Host
Key Name Default Value Required
Description
The host name or IP address of a proxy server that you want to connect through.
Proxy Port
Key Name Default Value Required
Description
The number of the port that the proxy server uses to listen for client connections.
Proxy Password
Key Name Default Value Required
Description
Proxy Username
Key Name Default Value Required
Description
The user name that you use to access the proxy server.
Realm
Key Name Default Value Required
KrbRealm NULL No
Description
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.
Description
This option specifies whether the driver should restrict catalog function results to tables and views
in the current schema if a catalog function call is made without specifying a schema, or if the
schema is specified as the wildcard character %.
Note:
Restricting results to the tables and views in the current schema may improve the performance
of catalog calls that do not specify a schema.
l Enabled (1): The driver restricts catalog function results to the current schema if a schema is
not specified.
l Disabled (0): The driver does not restrict catalog function results to the current schema if a
schema is not specified.
ResultSetCacheSize 20MB No
Description
The maximum amount of memory that the result set cache for the current connection can occupy.
Values must be specified in: B (bytes), KB (kilobytes), MB (megabytes), or GB (gigabytes).
When query retries are enabled, the driver temporarily caches result sets. For more information
about this feature, see "Enable Query Retry" on page 67.
For information about setting a maximum total cache size for all concurrent connections, see
"GlobalResultSetCache" on page 85.
Retry Interval
Key Name Default Value Required
QueryRetryInterval 5S No
Description
The amount of time that the driver waits between query retry attempts, when query retry is
enabled. Values can be specified in S (seconds) or MS (milliseconds).
RowsFetchedPerBlock 10000 No
Description
Valid values for this setting include any positive 32-bit integer. However, testing has shown that
performance gains are marginal beyond the default value of 10000 rows.
N/A Selected No
Description
This option is available only in the Windows driver. It appears in the Cloudera ODBC Driver for
Impala DSN Setup dialog box.
Important:
The password is obscured (not saved in plain text). However, it is still possible for the encrypted
password to be copied and used.
Service Name
Key Name Default Value Required
KrbServiceName impala No
Description
Socket Timeout
Key Name Default Value Required
SocketTimeout 30 No
Description
The number of seconds that the TCP socket waits for a response from the server before timing out
the request and returning an error message.
When this option is set to 0, the TCP socket does not time out any requests.
String Column Length
Key Name Default Value Required
StringColumnLength 32767 No
Description
TSaslTransportBufSize 1000 No
Description
The number of bytes to reserve in memory for buffering unencrypted data from the network.
Note:
Transport Mode
Key Name Default Value Required
Description
Select one of the following settings, or set the key to the number or string corresponding to the
desired setting:
l Binary (0 or binary)
l SASL (1 or sasl)
l HTTP (2 or http)
Note:
l If this property is specified, it takes precedence over the Use SASL property (UseSASL).
l If this property is not specified and the Use SASL property is specified, the Use
SASL property takes precedence over the default value of this property.
For more information, see "Use Simple Authentication and Security Layer (SASL)" on page 81.
Trusted Certificates
Key Name Default Value Required
Description
The full path of the .pem file containing trusted CA certificates, for verifying the server when using
SSL.
If this option is not set, then the driver defaults to using the trusted CA certificates .pem file
installed by the driver. To use the trusted CA certificates in the .pem file, set the
UseSystemTrustStore property to 0 or clear the Use System Trust Store check box in the SSL
Options dialog.
Important:
If you are connecting from a Windows machine and the Use System Trust Store option is
enabled, the driver uses the certificates from the Windows trust store instead of your specified
.pem file.
For more information, see "Use System Trust Store" on page 82.
UPN Keytab Mapping File
Key Name Default Value Required
UPNKeytabMappingFile None No
Description
The full path to a JSON file that maps your Impala user name to a Kerberos user principal name
and a keytab file.
Note:
This option is applicable only when the authentication mechanism is set to Kerberos
(AuthMech=Kerberos) and the Use Keytab option is enabled (UseKeytab=1).
The mapping in the JSON file must be written using the following schema, where [UserName] is the
Impala user name, [KerberosUPN] is the Kerberos user principal name, and [Keytab] is the full
path to the keytab file:
{
"[UserName]": {
"principal" : "[KerberosUPN]",
"keytab": "[Keytab]"
},
... }
For example, the following file maps the Impala user name cloudera to the cloudera@CLOUDERA
Kerberos user principal name and the C:\Temp\cloudera.keytab file:
{
"cloudera": {
"principal" : "cloudera@CLOUDERA",
"keytab": "C:\Temp\cloudera.keytab"
},
... }
If parts of the mapping are invalid or not defined, then the following occurs:
l If the mapping file fails to specify a Kerberos user principal name, then the driver uses the
Impala user name as the Kerberos user principal name.
l If the mapping file fails to specify a keytab file, then the driver uses the keytab file that is
specified in the Default Keytab File setting.
l If the entire mapping file is invalid or not defined, then the driver does both of the actions
described above.
Use Keytab
Key Name Default Value Required
Description
This option specifies whether the driver obtains the ticket for Kerberos authentication by using a
keytab.
l Enabled (1): The driver uses a keytab to obtain a ticket before authenticating the
connection using Kerberos.
l Disabled (0): The driver does not attempt to obtain the Kerberos ticket, and assumes that a
valid ticket is already available in the credentials cache.
Note:
This option is applicable only when the authentication mechanism is set to Kerberos
(AuthMech=Kerberos).
If you enable this option but do not set the Default Keytab File option (the
DefaultKeytabFile key), then the MIT Kerberos library will search for a keytab file using the
following search order:
1. The file specified by the KRB5_KTNAME environment variable.
2. The default_keytab_name setting in the [libdefaults] section of the Kerberos
configuration file (krb5.conf/krb5.ini).
3. The default keytab file specified in the MIT Kerberos library. Typically, the default file is
C:\Windows\krb5kt for Windows platforms.
Description
This option specifies whether the driver uses native Impala SQL queries, or converts the queries
emitted by an application into an equivalent form in Impala SQL. If the application is Impala-aware
and already emits Impala SQL, then enable this option to avoid the extra overhead of query
transformation.
l Enabled (1): The driver does not transform the queries emitted by an application, and
executes Impala SQL queries directly.
l Disabled (0): The driver transforms the queries emitted by an application and converts
them into an equivalent form in Impala SQL.
Important:
When this option is enabled, the driver cannot execute parameterized queries.
Description
This option specifies how the driver handles Kerberos authentication: either with the SSPI plugin
or with MIT Kerberos.
l Enable For This DSN (1 in the DSN entry in the registry): The driver handles Kerberos
authentication in the DSN connection by using the SSPI plugin instead of MIT Kerberos by
default.
l Enable For DSN-less Connections (1 in the driver configuration section of the registry): The
driver handles Kerberos authentication in DSN-less connections by using the SSPI plugin
instead of MIT Kerberos by default.
If you want all connections that use the Cloudera ODBC Driver for Impala to use the SSPI
plugin by default, then enable Use Only SSPI for both DSN and DSN-less connections.
l Disabled (0): The driver uses MIT Kerberos to handle Kerberos authentication, and only
uses the SSPI plugin if the GSSAPI library is not available.
Important:
Use Proxy
Key Name Default Value Required
Description
This option specifies whether the driver uses a proxy server to connect to the data store.
l Enabled (1): The driver connects to a proxy server based on the information provided in the
Proxy Host, Proxy Port, Proxy Username, and Proxy Password fields or the ProxyHost,
ProxyPort, ProxyUID, and ProxyPWD keys.
l Disabled (0): The driver connects directly to the Impala server.
Note:
Description
This option specifies whether the driver uses SASL to handle authentication.
l Enabled (1): The driver uses SASL to handle authentication.
l Disabled (0): The driver does not use SASL.
This option is configurable only when you are using the User Name And Password authentication
mechanism. If the driver is configured to use the other authentication mechanisms, then it uses
the default setting for the Use Simple Authentication and Security Layer (SASL) option.
Note:
Description
This option specifies the SQL types to be returned for string data types.
l Enabled (1): The driver returns SQL_WVARCHAR for STRING and VARCHAR columns, and
returns SQL_WCHAR for CHAR columns.
l Disabled (0): The driver returns SQL_VARCHAR for STRING and VARCHAR columns, and
returns SQL_CHAR for CHAR columns.
Description
This option specifies whether to use a CA certificate from the system trust store, or from a
specified .pem file.
l Enabled (1): The driver verifies the connection using a certificate in the system trust store.
l Disabled (0): The driver verifies the connection using a specified .pem file. For information
about specifying a .pem file, see "Trusted Certificates" on page 78.
Important:
If you are connecting from a Windows machine and you want to specify a .pem file containing
trusted CA certificates, this option must be disabled. For more information, see "Trusted
Certificates" on page 78.
Note:
User Name
Key Name Default Value Required
Description
The user name that you use to access the Impala server.
DelegationUserIDCase
Key Name Default Value Required
DelegationUserIDCase Unchanged No
Description
This option specifies whether the driver changes the Delegation UID (or DelegationUID) value
to all upper-case or all lower-case. The following values are supported:
l Upper: Change the delegated user name to all upper-case.
l Lower: Change the delegated user name to all lower-case.
l Unchanged: Do not modify the delegated user name.
For more information about delegating a user name, see "Delegation UID" on page 67.
DisableOptimizedEncodingConverter
Key Name Default Value Required
DisableOptimizedEncodingConverter false No
Description
This driver-wide option controls which data encoding converter the driver uses.
Note:
Important:
This option applies to every connection that uses the Cloudera ODBC Driver for Impala. For
more information, see "Setting Driver-Wide Configuration Options on Windows" on page 22 or
"Setting Driver-Wide Configuration Options on a Non-Windows Machine" on page 51.
Driver
Key Name Default Value Required
Description
On Windows, the name of the installed driver (Cloudera ODBC Driver for Impala).
On other platforms, the name of the installed driver as specified in odbcinst.ini, or the
absolute path of the driver shared object file.
GlobalResultSetCache
Key Name Default Value Required
GlobalResultSetCache 200MB No
Description
The maximum total amount of memory that can be occupied by result set caches across
concurrent connections. Values must be specified in: B (bytes), KB (kilobytes), MB (megabytes), or
GB (gigabytes).
For example, when this property is set to the default value of 200MB, if you have 3 concurrent
Impala connections, the total amount of memory consumed by the 3 result set caches for those
connections cannot exceed 200MB.
These result set caches are used only when query retries are enabled. For more information about
this feature, see "Enable Query Retry" on page 67.
For information about setting a maximum cache size for the current connection only, see "Result
Set Cache Size" on page 75.
HTTPAuthCookies
Key Name Default Value Required
HTTPAuthCookies None No
Description
If cookie-based authentication is enabled in your server, the driver authenticates the connection
once based on the provided authentication credentials. It then uses the cookie generated by the
server for each subsequent request in the same connection.
http.header.
Key Name Default Value Required
http.header. None No
Description
Set a custom HTTP header by using the following syntax, where [HeaderKey] is the name of the
header to set and [HeaderValue] is the value to assign to the header:
http.header.[HeaderKey]=[HeaderValue]
For example:
http.header.AUTHENTICATED_USER=john
After the driver applies the header, the http.header. prefix is removed from the DSN entry, leaving
an entry of [HeaderKey]=[HeaderValue]
The example above would create the following custom HTTP header:
AUTHENTICATED_USER: john
Note:
MaxCatalogNameLen
Key Name Default Value Required
MaxCatalogNameLen 0 No
Description
The maximum number of characters that can be returned for catalog names.
This option can be set to any integer from 0 to 65535, inclusive. To indicate that there is no
maximum length or that the length is unknown, set this option to 0.
MaxColumnNameLen
Key Name Default Value Required
MaxColumnNameLen 0 No
Description
The maximum number of characters that can be returned for column names.
This option can be set to any integer from 0 to 65535, inclusive. To indicate that there is no
maximum length or that the length is unknown, set this option to 0.
MaxSchemaNameLen
Key Name Default Value Required
MaxSchemaNameLen 256 No
Description
The maximum number of characters that can be returned for schema names.
This option can be set to any integer from 0 to 65535, inclusive. To indicate that there is no
maximum length or that the length is unknown, set this option to 0.
MaxTableNameLen
Key Name Default Value Required
MaxTableNameLen 0 No
Description
The maximum number of characters that can be returned for table names.
This option can be set to any integer from 0 to 65535, inclusive. To indicate that there is no
maximum length or that the length is unknown, set this option to 0.
SSOWebServerTimeout
Key Name Default Value Required
SSOWebServerTimeout 120 No
Description
The length of time, in seconds, for which the driver waits for a browser response before timing
out. If set to 0, the driver waits for an indefinite amount of time.
Note:
SSP_
Key Name Default Value Required
SSP_ None No
Description
Set a server-side property by using the following syntax, where [SSPKey] is the name of the server-
side property and [SSPValue] is the value for that property:
SSP_[SSPKey]=[SSPValue]
For example:
SSP_MEM_LIMIT=1000000000
SSP_REQUEST_POOL=myPool
After the driver applies the server-side property, the SSP_ prefix is removed from the DSN entry,
leaving an entry of [SSPKey]=[SSPValue].
Important:
This property is supported only for connections to Impala 2.0 or later. In earlier versions of
Impala, the SET statement can only be executed from within the Impala shell.
Note:
UseLogPrefix
Key Name Default Value Required
UseLogPrefix 0 No
Description
This option specifies whether the driver includes a prefix in the names of log files so that the files
can be distinguished by user and application.
For example, if you are connecting as a user named "jdoe" and using the driver in an
application with process ID 7836, the generated log files would be named jdoe_7836_
clouderaimpalaodbcdriver.log and jdoe_7836_
clouderaimpalaodbcdriver_connection_[Number].log, where [Number] is a
number that identifies each connection-specific log file.
l 0: The driver does not include the prefix in log file names.
To configure this option for the Windows driver, you create a value for it in one of the following
registry keys:
Use UseLogPrefix as the value name, and either 0 or 1 as the value data.
To configure this option for a non-Windows driver, you must use the
cloudera.impalaodbc.ini file.
ODBC compliance levels are Core, Level 1, and Level 2. These compliance levels are defined in the
ODBC Specification published with the Interface SDK from Microsoft.
Interfaces include both the Unicode and non-Unicode versions. For more information, see
"Unicode Function Arguments" in the ODBC Programmer's Reference:
http://msdn.microsoft.com/en-us/library/ms716246%28VS.85%29.aspx.
Conformance Conformance
INTERFACES INTERFACES
Level Level
Conformance Conformance
INTERFACES INTERFACES
Level Level
Core SQLGetFunctions
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.