On this page

    Dremio JDBC Driver

    The legacy Dremio JDBC driver is included as a part of Dremio installations under <DREMIO_HOME>/jars/jdbc-driver/. The main JAR Class is com.dremio.jdbc.Driver.


    It is recommended to use the JDBC driver for Arrow Flight SQL, rather than this legacy JDBC driver.


    A new version of the JDBC driver is made available with every release of Dremio software. However, this doesn’t mean changes or new features were introduced in a driver release. Only when actual changes are made to a driver will the JDBC driver release notes be published.


    Tip: To distribute query planning for JDBC connections, configure secondary coordinator nodes for your deployment.


    You can set up the JDBC driver in the following manner:

    • Connect directly to the Dremio server
    • Connect to the Dremio server via Zookeeper

    Connecting directly to Dremio

    The following configuration establishes a direct connection to a Dremio coordinator node. Planning is done on the specified node.


    Connecting to ZooKeeper

    The following configuration establishes a distributed connection to Dremio coordinator nodes through a Zookeeper quorum. Planning is distributed across the available coordinator nodes.


    Multiple Dremio Clusters in the same ZooKeeper Quorum

    Cluster A


    Cluster B


    JDBC Parameters for Dremio Wire Encryption

    If you are setting up encrypted communication between your ODBC/JDBC client applications and the Dremio server, use the SSL JDBC connection parameters and fully qualified host name to configure the JDBC connection string and connect to Dremio.

    ssltrue/false[Optional]If true, SSL is enabled. If not set or set to false, SSL is not enabled.
    trustStoreTypestring[Optional]Default: JKS The trustStore type. Allowed values are : JKS PKCS12

    If the useSystemTrustStore option is set to true (on Windows only), the allowed values are: Windows-MY Windows-ROOT
    Import the certificate into the Trusted Root Certificate Authorities and set trustStoreType=Windows-ROOT.
    Also import the certificate into Trusted Root Certificate Authorities or Personal and set trustStoreType=Windows-MY.
    trustStorestring[Optional]Path to the truststore.
    If not provided, the default Java truststore is used (usually $JAVA_HOME/lib/security/cacerts) and the trustStorePassword parameter is ignored.
    useSystemTrustStoretrue/false[Optional]By default, the value is true. Bypasses trustStoreType and automatically picks the correct Truststore based on the operating system: Keychain on MacOS, Local Machine and Current User Certificate Stores on Windows, and default truststore on other systems.
    trustStorePasswordstring[Optional]Password to the truststore.
    disableHostVerificationtrue/false[Optional]If true, Dremio does not verify that the host in the certificate is the host we are connecting to. False by default.

    (Hostname verification follows the specification in RFC2818)
    disableCertificateVerificationtrue/false[Optional]If true, Dremio does not verify the host certificate against the truststore. False by default.

    Advanced JDBC Driver Properties

    impersonation_targetstring[Optional]When inbound impersonation is configured, impersonation_target is used for authorization, so it must have permission to the queried datasets, and impersonation_target appears as the identity that submitted the queries. The username used to establish the connection must be mapped to impersonation_target in the impersonation policy for the Dremio service, otherwise, the connection fails with an authorization error. In the policy, the user used to establish the connection is the proxy_principle and impersonation_target is its target_principle. For more information on configuring policies, see Inbound Impersonation.