Drill ODBC Driver
HPE Data Fabric provides a Drill ODBC driver that you can download and use on all platforms to connect BI tools, such as Tableau, to Drill.
Use the version of the driver that correlates with the version of the installed Drill server. Although older versions of the driver may be able to connect to an upgraded version of Drill, the older drivers do not include all the server features available in the newer drivers.
| Drill Version | ODBC Version |
| 1.16.0.100 - 1.20.3.100 | 1.5.1.1002 |
| 1.16.0, 1.16.1.0 | 1.3.22.1055 |
| 1.15.0 | 1.3.22.1055 |
| 1.14.0 | 1.3.22.1055 |
| 1.13.0 | 1.3.16.1049 |
| 1.12.0 | 1.3.15.1048 |
| 1.11.0 | 1.3.15.1046 |
| 1.10.0 | 1.3.8.1030 |
| Authentication types | Direct Connection | ZooKeeper Connection |
|---|---|---|
| MapR-SASL | + (64-bit Drill ODBC driver only) |
- |
| PLAIN | + | - |
| KERBEROS | + | - |
| NO AUTH | + | + |
With ZooKeeper authentication disabled, you can pick any authentication types (listed in the
preceding table) to pass authentication against Drillbit. To manage Zookeeper authentication,
use zookeeper.sessionRequireClientSASLAuth,
enforce.auth.enabled, and enforce.auth.schemes. See
ZooKeeper Documentation: ZooKeeper: Because Coordinating Distributed Systems is a
Zoo for more information.
Using MapR-SASL for Authentication on Windows
Drill is automatically configured with default security when you install Drill 1.11 and
later on a secure (version 6.x or later) cluster configured with the default security. To successfully
connect to Drill from a Windows ODBC client, the Data Fabric
client must be installed and a mapr user ticket must exist on the Windows
client in the %TEMP% directory or in the location specified by the $MAPR_TICKETFILE_LOCATION
environment variable.
The ODBC driver locates user tickets for the current Windows user in the default ticket location, %TEMP%, or in the location specified by the environment variable, $MAPR_TICKETFILE_LOCATION. See Tickets and Generating a MapR User Ticket for more information.
You can either copy a user ticket that was generated on the cluster into the default
location (%TEMP%), or you can run the maprlogin command to generate the
ticket on the Windows client.
mapr-clusters.conf file to the client machine. Copy the file from
/opt/mapr/conf/mapr-clusters.conf to
C:/opt/mapr/conf/mapr-clusters.conf on the client machine. Verify that
the cluster to which the client is connecting is listed as the first entry in the
mapr-clusters.conf file. Also, if the cluster is secure, verify that
secure=true for the cluster entry in the file.Example
mapr user, you must create a ticket
for the mapr user, as shown:$ maprlogin password -user mapr
[Password for user 'mapr' at cluster 'Cluster1':]
The credentials for the mapr user in Cluster1 are written to
/tmp/maprticket_1000.'C:\Users\TABETH~1\AppData\Local\Temp/maprticket_Tabetha Stephens'
To override this location, set the "MAPR_TICKETFILE_LOCATION" global variable for the Windows user.
Driver Limitations
When using MapR-SASL with JDBC or ODBC drivers, there is no way to specify the target
cluster name as part of the connection parameters. MapR-SASL reads the first entry in the
/opt/mapr/conf/mapr-clusters.conf file and assumes it is the target
cluster name.
For example, if the mapr-clusters.conf file has an entry for
'cluster1' followed by an entry for 'cluster2' and you
want to connect to a node in 'cluster2', authentication fails. As a
workaround, manually switch the order of entries in the mapr-clusters.conf
file.
Driver Issues
libcrypto.so ODBC driver library and
the libk5crypto.so system library:-
SQLDriverConnect = [iODBC][Driver Manager]/lib64/libk5crypto.so.3: \ undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b (0) SQLSTATE=00000 -
[unixODBC][Driver Manager]Can't open lib '/opt/mapr/drill/lib/64/libdrillodbc_sb64.so':\ file not found
- Remove the bundled crypto library from the ODBC driver
RPATH:
rm /opt/mapr/drill/lib/64/ThirdParty/libcrypto.so.1.1 - Make the dynamic linker load the system version of the crypto library with a higher priority than the bundled ODBC library. How this is done depends on the version of the dynamic linker.