On this page

    ODBC Driver for Arrow Flight SQL

    Starting with Dremio v22.0, you can use the ODBC driver for Arrow Flight SQL to connect to Dremio from ODBC client applications.

    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 installed on macOS for M1 and configured to use this driver, run this command in a terminal window, where <application> is the path of the application:

    arch -x86_64 <application>
    

    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 are not recommended 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:

      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

    To configure the System DSN:

    alert:

    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:

    If you want to use a personal access token (PAT), rather than a password, for authenticating to Dremio, generate a PAT. See Personal Access Tokens for the steps.

    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. In the HOST field, specify the hostname of the server or its IP address.
    5. In the PORT field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
    6. In the UID field, specify the username to use when connecting to Dremio.
    7. In the PWD field, specify either a password or a personal access token.
    8. In the UseEncryption field, specify one of these values:
      • true, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications. (For information about encrypting communication, see Arrow Flight Encryption.)
      • false, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.

    For additional parameters, see Connection Parameters.

    Configuring on Linux

    note:

    • Before configuring, ensure that unixODBC is installed.

    • If you want to use a personal access token (PAT), rather than a password, for authenticating to Dremio, generate a PAT. See Personal Access Tokens for the steps.

    • 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. In the HOST field, specify the hostname of the server or its IP address.
    2. In the PORT field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
    3. In the UID field, specify the username to use when connecting to Dremio.
    4. In the PWD field, specify either a password or a personal access token.
    5. In the UseEncryption field, specify one of these values:
      • true, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications. (For information about encrypting communication, see Arrow Flight Encryption.)
      • false, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.

    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
    

    Configuring on macOS

    note:

    Before configuring, follow these steps:

    • Ensure that ODBC Manager is installed.

    • If you want to use a personal access token (PAT), rather than a password, for authenticating to Dremio, generate a PAT. See Personal Access Tokens for the steps.

    1. Launch ODBC Manager.
    2. On the System DSN page, select Arrow Flight SQL ODBC DSN and click Configure.
    3. (Optional) Change the DSN.
    4. In the Host field, specify the hostname of the server or its IP address.
    5. In the Port field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
    6. In the UID field, specify the username to use when connecting to Dremio.
    7. In the PWD field, specify either a password or a personal access token.
    8. In the UseEncryption field, specify one of these values:
      • true, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications. (For information about encrypting communication, see Arrow Flight Encryption.)
      • false, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.

    For additional parameters, see Connection Parameters.

    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
    HoststringSets the IP address or hostname for the Dremio server.

    If you specify an IP address and you set the SSL connection parameter useEncryption to true, ensure that the /etc/hosts/ file includes an entry to map the IP address to the host.

    None
    PortintegerSets the TCP port number that Dremio uses to listen to connections from Arrow Flight SQL ODBC clients.32010
    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 otsher schemas. Such queries must explicitly include the schema.None
    UIDstringSets the username to use when authenticating to Dremio.None
    PWDstringSets the password to use when authenticating to Dremio. If you would prefer to use a personal access token (PAT), rather than a password, for authenticating to Dremio, generate a PAT. See Personal Access Tokens for the steps.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 the Dremio server. Accepted values include:

    true: The client communicates with the Dremio server only using SSL encryption. This is the default value. Therefore, communication between the client application and your Dremio server must be encrypted if you do not override this default value. For information about encrypting communication, see Arrow Flight Encryption.
    false: SSL encryption is disabled with the client. If you specify this value, ensure that encryption of communication between the client application and yor Dremio server is not configured.

    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_queuestringSpecifies the queue to route queries to during a session.

    Direct Routing is used to specify the exact queue and execution cluster to run queries on for a given ODBC session. With Direct Routing, workload-management (WLM) rules are not considered; instead, queries are routed directly to the specified queue. For more information, see Workload Management.

    N/A
    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. The default is 1024.

    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