Skip to main content

ODBC Driver for Arrow Flight SQL

You can use the ODBC driver for Arrow Flight SQL to connect to Dremio Cloud from ODBC client applications. This driver is licensed under GNU Library General Public License, Version 2.

Supported Operating Systems

You can use the driver on systems that run the following 64-bit operating systems:

  • Linux: RedHat/CentOS
  • Windows 10 and later
  • macOS
note

macOS on the M1 architecture is not natively supported. To run an application on macOS for M1 and configured to use this driver, run the following command in a terminal window, where <application> is the path of the application:

arch -x86_64 <application>

Supported Authentication Method

You can use personal access tokens for authenticating to Dremio Cloud. To generate one, see Personal Access Tokens.

Downloading and Installing

Downloading and Installing on Windows

note

The Arrow Flight SQL ODBC driver is not available for 32-bit Windows versions.

note

If you plan to use Microsoft Power BI Desktop April 2022 or later to connect to Dremio, you do not need to use this driver. Power BI Desktop April 2022 and later includes a connector that you can use to connect to Dremio. See Connecting from Microsoft Power BI.

To download and install the ODBC driver for Arrow Flight SQL:

  1. Download the Windows 64-bit version of the driver from the ODBC driver download page.
  2. Run the installer.
  3. (Optional) In the User Account Control page, click Yes. This page appears only if there is user account control configured on your Windows machine.
  4. In the Welcome to Dremio page, click Next.
  5. Click Install.
  6. In the Installation Complete page, click Next.
  7. In the Completing Arrow Flight SQL ODBC Driver Setup Wizard page, click Finish.

Next, configure the driver.

Downloading and Installing on Linux

To download and install the ODBC driver for Arrow Flight SQL:

  1. Download the Linux version of the driver from the ODBC driver download page.
  2. Run the following command to install the driver and automatically create the data source name (DSN) Arrow Flight SQL ODBC DSN:
Install Dremio ODBC driver
sudo yum localinstall <dremio-odbc-rpm-path>

Next, configure the driver.

Downloading and Installing on macOS

To download and install the ODBC driver for Arrow Flight SQL:

  1. Download the macOS version of the driver from the ODBC driver download page.
  2. Go to the download location and double-click the downloaded .dmg file.
  3. Double-click the .pkg file.
  4. In the Welcome to the ODBC Driver for Arrow Flight SQL Installer page, click Continue.
  5. In the Standard Install on "Macintosh HD" page, Click Install. Optionally, if you want to change the install location, click Change Install Location and navigate to the new location.
  6. In the Installer is trying to install new software dialog, specify your macOS password. Then, click Install Software.
  7. After the installation is complete, click Close.

Next, configure the driver.

Configuring

Configuring on Windows

caution

Do not follow these steps if you are using Microsoft Power BI Desktop to connect to Dremio. For the steps for configuring Power BI, see Connecting from Microsoft Power BI.

note

Before following these steps, generate a personal access token in Dremio Cloud. See Personal Access Tokens.

To configure a user DSN:

  1. Go to Start Menu > Window Administrative Tools. Click ODBC Data Sources (64-bit).
  2. In the ODBC Data Source Administrator (64-bit) dialog, click System DSN.
  3. Select Arrow Flight SQL ODBC DSN and click Configure.
  4. (Optional) Change the data source name.
  5. In the Host name field, data.dremio.cloud for the US control plane, or data.eu.dremio.cloud for the European control plane.
  6. In the Port field, specify 443.
  7. In the Authentication Type field, select Token Authentication.
  8. In the Authentication Token field, paste a personal access token.
  9. Click the Advanced tab.
  10. Ensure that the Use Encryption option is selected.

For additional parameters, see Connection Parameters.

If you ever need to enable tracing for troubleshooting problems with the driver, click the Tracing tab in the ODBC Data Source Administrator (64-bit) dialog, set the log-file path, and then click Start Tracing Now.

Configuring on Linux

note
  • Before configuring, ensure that unixODBC is installed.
  • In Dremio Cloud, generate a personal access token. See Personal Access Tokens.
  • If you want to base your configuration on examples, copy the content of the odbc.ini and odbcinst.ini files in the /opt/arrow-flight-sql/odbc-driver/conf directory and paste the content into your system /etc/odbc.ini and /etc/odbcinst.ini files.

To configure the properties in the odbc.ini file:

  1. For HOST, specify data.dremio.cloud for the US control plane, or data.eu.dremio.cloud for the European control plane.
  2. For PORT, specify 443.
  3. For TOKEN, specify a personal access token.
  4. Ensure that the value of SSL is 1.

For additional parameters, see Connection Parameters.

note

To find out unixODBC has created your odbc.ini and odbcinst.ini files, run this command: odbcinst -j

If you ever need to enable tracing for troubleshooting problems with the driver, see the help for unixODBC.

Configuring on macOS

note

Before configuring, follow these steps:

To configure a system DSN:

  1. Launch ODBC Manager.
  2. On the User DSN page, select Arrow Flight SQL ODBC DSN and click Configure.
  3. (Optional) Change the DSN.
  4. In the Host field, specify data.dremio.cloud for the US control plane, or data.eu.dremio.cloud for the European control plane.
  5. In the Port field, specify 443.
  6. Select the UID field and click Remove.
  7. Select the PWD field and click Remove.
  8. In the UseEncryption field, specify true.
  9. Click Add to add a line for a new parameter. Change keyword to TOKEN, Paste a personal access token as the value.

For additional parameters, see Connection Parameters.

If you ever need to enable tracing for troubleshooting problems with the driver, see the help for your driver manager.

Connection Parameters

Primary Connection Parameters

Use these parameters to configure basic connection details such as what data source to connect with.

note

The ODBC driver for Arrow Flight SQL does not support password-protected .pem/.crt files or multiple .crt certificates in a single .pem/.crt file.

NameTypeDescriptionDefault Value
Hoststringdata.dremio.cloud for the US control plane, data.eu.dremio.cloud for the European control plane.None
PortintegerSets the TCP port number that Dremio uses to listen to connections from Arrow Flight SQL ODBC clients.443
SchemastringProvides the name of the database schema to use by default when a schema is not specified in a query. However, this does not prevent queries from being issued for other schemas. Such queries must explicitly include the schema.None
TokenstringSets the personal access token to use when authenticating to Dremio. See Creating a Token for the steps to generate a personal access token.None

SSL connection parameters

Use the following parameters to configure SSL encryption and verification methods for regular connections.

NameTypeDescriptionDefault Value
useEncryptionintegerForces the client to use an SSL-encrypted connection to communicate with Dremio Cloud. Accepted values include:

true: The client communicates with Dremio Cloud only using SSL encryption. This is the only possible value.

false: The value cannot be false.
true
disableCertificateVerificationintegerSpecifies whether the driver should verify the host certificate against the trust store. Accepted values are:

false: The driver verifies the certificate against the trust store.

true: The driver does not verify the certificate against the trust store.
false
useSystemTrustStoreintegerControls whether to use a CA certificate from the system's trust store, or from a specified .pem file.

true: The driver verifies the connection using a certificate in the system trust store.

false: The driver verifies the connection using the .pem file specified by the trustedCerts parameter.
true on Windows and macOS, false on Linux (which does not have a system truststore)
trustedCertsstringThe full path of the .pem file containing certificates trusted by a CA, for the purpose of verifying the server. If this option is not set, then the driver defaults to using the trusted CA certificates .pem file installed by the driver.

The exact file path varies according to the operating system on which the driver is installed. The path for the Windows driver is different from the path set for the macOS driver.

The TLS connection fails if you do not specify a value when useEncryption is true and disableCertificateVerification is false.
N/A

Advanced Parameters

NameTypeDescriptionDefault Value
quotingstringSpecifies which type of character to use to delimit values in queries. The value can be BACK_TICK, BRACKET, or DOUBLE_QUOTE.DOUBLE_QUOTE
routing_tagstringWhen this parameter is set, the specified tag is associated with all queries executed within a session. Rules can check for the presence of a tag with the function "tag()". For more information, see Workload Management.N/A
stringColumnLengthstringThe maximum length of data in columns of the STRING datatype and of complex datatypes. The range is 1 to 2147483647.1024

Example of a Basic Connection String

Some BI client applications, such as Microsoft Excel, let you specify a connection string, rather than select a DSN, for connecting to Dremio Cloud. If you want to connect by using a connection string, you can use this example, basic connection string as a basis for your own:

Example connection string
host=data.dremio.cloud;port=443;useEncryption=1;disableCertificateVerification=1;token=<personal-access-token>

Supported Conversions from Dremio Datatypes to ODBC Datatypes

Dremio Data TypesSQL_C_BINARYSQL_C_BITSQL_C_CHARSQL_C_WCHARSQL_C_STINYINTSQL_C_UTINYINTSQL_C_SSHORTSQL_C_USHORTSQL_C_SLONGSQL_C_ULONGSQL_C_SBIGINTSQL_C_UBIGINTSQL_C_FLOATSQL_C_DOUBLESQL_C_NUMERICSQL_C_DATESQL_C_TIMESQL_C_TIMESTAMPSQL_C_GUIDSQL_C_INTERVAL_*
BOOLEANNYYYYYYYYYYYYYNInvalidInvalidInvalidInvalidN
VARBINARYYInvalidNNInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalid
DATENInvalidYYInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidYInvalidYInvalidInvalid
FLOATNYYYYYYYYYYYYYNInvalidInvalidInvalidInvalidN
DECIMALNNYYYYYYYYYYYYYInvalidInvalidInvalidInvalidN
DOUBLENYYYYYYYYYYYYYNInvalidInvalidInvalidInvalidN
INTERVAL (day to seconds)NNNNNNNNNNNNNNNNInvalidInvalidInvalidN
INTERVAL (years to months)NNNNNNNNNNNNNNNNInvalidInvalidInvalidN
INTNYYYYYYYYYYYYYNInvalidInvalidInvalidInvalidN
BIGINTNYYYYYYYYYYYYYNInvalidInvalidInvalidInvalidN
TIMENNYYInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidYYInvalidInvalid
TIMESTAMPNNYYInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidYYInvalidInvalid
VARCHARYYYYYYYYYYYYYYYYYYNInvalid
STRUCTNNYYInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalid
LISTNInvalidYYInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalidInvalid