The 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
.
Tip: To distribute query planning for ODBC and JDBC connections, configure secondary coordinator nodes for your deployment.
You can set up the JDBC driver in the following manner:
Note
Dremio’s JDBC Driver depends on the glibc (GNU C Library) implementation of libc. Hence, you must run the JDBC client on a system that includes GLIBC such as Ubuntu, Redhat, Centos, or macOS.
The following configuration establishes a direct connection to a Dremio coordinator node. Planning is done on the specified node.
jdbc:dremio:direct=<DREMIO_COORDINATOR>:31010[;schema=<OPTIONAL_SCHMEMA>]
The following configuration established a distributed connection to Dremio coordinator nodes through a Zookeeper quorum. Planning is distributed across the available coordinator nodes.
jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181[;schema=<OPTIONAL_SCHMEMA>]
Multiple Dremio Clusters in the same ZooKeeper Quorum
Cluster A
jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181/path/to/ClusterA
Cluster B
jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181/path/to/ClusterB
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.
Parameter | Value | Required | Description |
---|---|---|---|
ssl | true/false | [Optional] | If true, SSL is enabled. If not set or set to false, SSL is not enabled. |
trustStoreType | string | [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 . |
trustStore | string | [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. |
useSystemTrustStore | true/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. |
trustStorePassword | string | [Optional] | Password to the truststore. |
disableHostVerification | true/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) |
disableCertificateVerification | true/false | [Optional] | If true, Dremio does not verify the host certificate against the truststore. False by default. |
Parameter | Value | Required | Description |
---|---|---|---|
impersonation_target | string | [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. |