dremiojs 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.eslintrc.json +14 -0
  2. package/.prettierrc +7 -0
  3. package/README.md +59 -0
  4. package/dremiodocs/dremio-cloud/cloud-api-reference.md +748 -0
  5. package/dremiodocs/dremio-cloud/dremio-cloud-about.md +225 -0
  6. package/dremiodocs/dremio-cloud/dremio-cloud-admin.md +3754 -0
  7. package/dremiodocs/dremio-cloud/dremio-cloud-bring-data.md +6098 -0
  8. package/dremiodocs/dremio-cloud/dremio-cloud-changelog.md +32 -0
  9. package/dremiodocs/dremio-cloud/dremio-cloud-developer.md +1147 -0
  10. package/dremiodocs/dremio-cloud/dremio-cloud-explore-analyze.md +2522 -0
  11. package/dremiodocs/dremio-cloud/dremio-cloud-get-started.md +300 -0
  12. package/dremiodocs/dremio-cloud/dremio-cloud-help-support.md +869 -0
  13. package/dremiodocs/dremio-cloud/dremio-cloud-manage-govern.md +800 -0
  14. package/dremiodocs/dremio-cloud/dremio-cloud-overview.md +36 -0
  15. package/dremiodocs/dremio-cloud/dremio-cloud-security.md +1844 -0
  16. package/dremiodocs/dremio-cloud/sql-docs.md +7180 -0
  17. package/dremiodocs/dremio-software/dremio-software-acceleration.md +1575 -0
  18. package/dremiodocs/dremio-software/dremio-software-admin.md +884 -0
  19. package/dremiodocs/dremio-software/dremio-software-client-applications.md +3277 -0
  20. package/dremiodocs/dremio-software/dremio-software-data-products.md +560 -0
  21. package/dremiodocs/dremio-software/dremio-software-data-sources.md +8701 -0
  22. package/dremiodocs/dremio-software/dremio-software-deploy-dremio.md +3446 -0
  23. package/dremiodocs/dremio-software/dremio-software-get-started.md +848 -0
  24. package/dremiodocs/dremio-software/dremio-software-monitoring.md +422 -0
  25. package/dremiodocs/dremio-software/dremio-software-reference.md +677 -0
  26. package/dremiodocs/dremio-software/dremio-software-security.md +2074 -0
  27. package/dremiodocs/dremio-software/dremio-software-v25-api.md +32637 -0
  28. package/dremiodocs/dremio-software/dremio-software-v26-api.md +36757 -0
  29. package/jest.config.js +10 -0
  30. package/package.json +25 -0
  31. package/src/api/catalog.ts +74 -0
  32. package/src/api/jobs.ts +105 -0
  33. package/src/api/reflection.ts +77 -0
  34. package/src/api/source.ts +61 -0
  35. package/src/api/user.ts +32 -0
  36. package/src/client/base.ts +66 -0
  37. package/src/client/cloud.ts +37 -0
  38. package/src/client/software.ts +73 -0
  39. package/src/index.ts +16 -0
  40. package/src/types/catalog.ts +31 -0
  41. package/src/types/config.ts +18 -0
  42. package/src/types/job.ts +18 -0
  43. package/src/types/reflection.ts +29 -0
  44. package/tests/integration_manual.ts +95 -0
  45. package/tsconfig.json +19 -0
@@ -0,0 +1,3277 @@
1
+ # Dremio Software - Client Applications
2
+
3
+
4
+
5
+ ---
6
+
7
+ # Source: https://docs.dremio.com/current/client-applications/
8
+
9
+ Version: current [26.x]
10
+
11
+ On this page
12
+
13
+ # Connect Client Applications to Dremio
14
+
15
+ You can connect to Dremio from a variety of client applications. Connections are established using JDBC or ODBC.
16
+
17
+ Dremio supports a broad range of clients including the following applications:
18
+
19
+ * [Alteryx Designer](/current/client-applications/alteryx-designer)
20
+ * [DataGrip](/current/client-applications/datagrip)
21
+ * [DBeaver](/current/client-applications/dbeaver)
22
+ * [DbVisualizer](/current/client-applications/dbvisualizer)
23
+ * [Domo](/current/client-applications/domo)
24
+ * [IBM Cognos Analytics](/current/client-applications/cognos)
25
+ * [Looker](/current/client-applications/looker)
26
+ * [Microsoft Excel](/current/client-applications/microsoft-excel/)
27
+ * [Microsoft Excel PowerPivot](/current/client-applications/microsoft-excel/microsoft-excel-powerpivot)
28
+ * [Microsoft Power BI](/current/client-applications/microsoft-power-bi)
29
+ * [Microstrategy Workstation](/current/client-applications/microstrategy)
30
+ * [Preset](/current/client-applications/preset)
31
+ * [SAP Business Objects](/current/client-applications/business-objects)
32
+ * [Superset](/current/client-applications/superset)
33
+ * [Tableau](/current/client-applications/tableau)
34
+
35
+ ## Drivers
36
+
37
+ * [Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver)
38
+ * [Dremio JDBC (Legacy)](/current/client-applications/drivers/jdbc)
39
+ * [Arrow Flight SQL ODBC](/current/client-applications/drivers/arrow-flight-sql-odbc-driver)
40
+
41
+ ## Developing Custom Applications
42
+
43
+ To create a connection to Dremio and run queries, you can use [Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver). You can also use [PyArrow](/current/developer/python).
44
+
45
+ ## Client Encryption
46
+
47
+ Transport Layer Security (TLS) communication is supported for encrypting communication between JDBC client applications and Dremio servers. See the configuration of client TLS for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#legacy-jdbc-and-power-bi-clients-with-legacy-odbc-driver-enterprise) for more information.
48
+
49
+ Transport Layer Security (TLS) communication is enabled by default for Arrow Flight client applications. See the configuration of Arrow Flight encryption for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#arrow-flight-encryption-enterprise-edition-only) for more information. If you want to connect via unencrypted connections, you must explicitly disable `useEncryption` by setting it to `false` in the [connection parameters](/current/client-applications/drivers/arrow-flight-sql-odbc-driver/#ssl-connection-parameters) for the Arrow Flight SQL ODBC driver.
50
+
51
+ Was this page helpful?
52
+
53
+ [Previous
54
+
55
+ Wikis and Tags](/current/data-products/govern/wikis-tags)[Next
56
+
57
+ Alteryx Designer](/current/client-applications/alteryx-designer)
58
+
59
+ * Drivers
60
+ * Developing Custom Applications
61
+ * Client Encryption
62
+
63
+ ---
64
+
65
+ # Source: https://docs.dremio.com/current/client-applications/alteryx-designer
66
+
67
+ Version: current [26.x]
68
+
69
+ On this page
70
+
71
+ # Alteryx Designer
72
+
73
+ You can use Alteryx Designer to quickly prepare, blend, conform, and analyze data from datasets in Dremio.
74
+
75
+ ## Supported Versions
76
+
77
+ Alteryx Designer 10.6+
78
+
79
+ ## Prerequisites
80
+
81
+ * Ensure that your operating system is 64-bit Windows 10 or later.
82
+ * Download, install, and configure the [Arrow Flight SQL ODBC driver](/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
83
+ * If you want to authenticate to Dremio by using a personal access token (PAT), rather than by using a password, generate a PAT. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for the steps.
84
+
85
+ ## Selecting Dremio as a Data Source
86
+
87
+ 1. In Alteryx Designer, select **File** > **New Workflow**.
88
+ 2. Drag the **Input Data** tool from the tool palette on to the workflow canvas.
89
+ 3. In the configuration properties for Input Data, click the arrow on the right side of the **Connect a File or Database** field.
90
+ 4. In the Data connections dialog, follow these steps:
91
+
92
+ a. Select **Recent** and click **Clear List** in the top-right corner if there are any entries on the page.
93
+
94
+ b. Select **Data Sources**.
95
+
96
+ c. Scroll down to the option **Generic connection**.
97
+
98
+ d. Click either **ODBC** or **OleDB**.
99
+ 5. If you clicked **ODBC**, follow these steps in the ODBC Connection dialog:
100
+
101
+ a. In the **Data Source Name** field, select the data source name for the Arrow Flight SQL ODBC driver.
102
+
103
+ b. Specify the username to use for the connection to Dremio.
104
+
105
+ c. Specify either a password or a personal access token to use with the username.
106
+
107
+ d. Click **OK**.
108
+ 6. If you clicked **OleDB**, follow these steps in the Data Link Properties dialog:
109
+
110
+ a. On the **Provider** tab, select **Microsoft OLE DB Provider for ODBC Drivers**.
111
+
112
+ b. Click **Next>>**.
113
+
114
+ c. For step 1 on the **Connection** tab, select **Use data source name**, and then select the data source name for the Arrow Flight SQL ODBC driver.
115
+
116
+ d. For step 2 on the **Connection** tab, specify the username to use for connections to Dremio, then specify either a password or a personal access token to use with the username.
117
+
118
+ e. (Optional) Click **Test Connection** to find out whether the info you specified on this tab is correct.
119
+
120
+ f. Click **OK**.
121
+
122
+ You can now browse and query datasets that are in Dremio.
123
+
124
+ warning
125
+
126
+ If you are using an Arrow Flight SQL ODBC driver, it only supports a single connection, and to load multiple tables (or datasets), you should do it sequentially. Otherwise, if you try to do it in parallel, the driver raises an error.
127
+
128
+ Was this page helpful?
129
+
130
+ [Previous
131
+
132
+ Connect Client Applications](/current/client-applications/)[Next
133
+
134
+ Apache Superset](/current/client-applications/superset)
135
+
136
+ * Supported Versions
137
+ * Prerequisites
138
+ * Selecting Dremio as a Data Source
139
+
140
+ ---
141
+
142
+ # Source: https://docs.dremio.com/current/client-applications/superset
143
+
144
+ Version: current [26.x]
145
+
146
+ On this page
147
+
148
+ # Apache Superset
149
+
150
+ You can use [Superset](https://superset.apache.org/) to query and visualize data.
151
+
152
+ ## Supported Versions
153
+
154
+ * Superset 1.5.3 and later
155
+ * Dremio SQLAlchemy connector 3.0.2 and later
156
+
157
+ ## Supported Authentication Methods
158
+
159
+ * Use the username and password of an account in your Dremio cluster.
160
+ * Use the username of an account in your Dremio cluster and a personal access token (PAT) created in Dremio. To create a PAT, follow the steps in [Creating a PAT](/current/security/authentication/personal-access-tokens#creating-a-pat). After you obtain a PAT, it is recommended that you URL-encode it. To encode it locally on your system, you can follow these steps:
161
+ 1. In a browser window, right-click an empty area of the page and select **Inspect** or **Inspect Element**, depending on your browser.
162
+ 2. In the top bar of the inspection pane, click **Console**.
163
+ 3. Type `encodeURIComponent("<PAT>")`, where `<PAT>` is the personal access token. The URL-encoded PAT appears in red on the next line. You can highlight it and copy it to your clipboard.
164
+
165
+ ## Prerequisites
166
+
167
+ If you installed Superset according to [the instructions for installing from scratch](https://superset.apache.org/docs/installation/installing-superset-from-scratch), install the Dremio SQLAlchemy Connector on the system or in the VM where Apache Superset is running. Instructions are in the [sqlalchemy\_dremio repository](https://github.com/narendrans/sqlalchemy_dremio) in GitHub.
168
+
169
+ ## Creating a Connection
170
+
171
+ 1. If you are using a version of Superset earlier than 2.1.0, follow these steps:
172
+ 1. Select **Data** > **Databases** in the menu bar at the top of the screen.
173
+ 2. Click the **Database** button in the top-right corner of the screen.
174
+ 2. If you are using version 2.1.0 or later of Superset, follow these steps:
175
+ 1. Click **Datasets** in the menu bar at the top of the screen.
176
+ 2. Click the plus (+) icon in the top-right corner.
177
+ 3. Select **Data** > **Connect database**.
178
+ 3. In the **Connect a Database** dialog, follow these steps:
179
+ 1. Select **Other** from the **Supported Databases** field.
180
+ 2. In the **Display Name** field, name the new connection.
181
+ 3. If you want to authenticate by using a username and password, specify in the **SQLAlchemy URI** field a URI that is in this format:
182
+ Format of URIs with username and password authentication
183
+
184
+ ```
185
+ dremio+flight://<username>:<password>@<host>:<port>/<schema>[?option1=value[&,...]]
186
+ ```
187
+
188
+ * `<username>`: The username of the Dremio account to use.
189
+ * `<password>`: The password of the Dremio account to use.
190
+ * `<host>`: The hostname or IP address of the coordinator node of the Dremio cluster.
191
+ * `<port>`: The port to connect to on the coordinator node. Unless explicitly changed on the node, the port is 32010.
192
+ * `<schema>`: The name of the database schema to use by default when a schema is not given in a query. Providing a schema is optional. Specifying a schema does not prevent queries from being issued for other schemas; such queries must explicitly include the schema.
193
+ * `[?option1=value[&,...]]`: One or more optional properties, separated by ampersands (`&`). See SSL Connection Properties and Advanced Properties.Example URI with username and password authentication
194
+
195
+ ```
196
+ dremio+flight://myUserID:myPassword@myHost:32010/Samples?UseEncryption=false
197
+ ```
198
+ 4. If you want to authenticate by using a personal access token, specify in the **SQLAlchemy URI** field a URI that is in this format:
199
+ Format of URIs with PAT authentication
200
+
201
+ ```
202
+ dremio+flight://<username>:<PAT>@<host>:<port>/<schema>[?option1=value[&,...]]
203
+ ```
204
+
205
+ * `<username>`: The username of the Dremio account to use.
206
+ * `<PAT>`: The URL-encoded personal access token that you obtained from Dremio Cloud. See Supported Authentication Methods.
207
+ * `<host>`: The hostname or IP address of the coordinator node of the Dremio cluster.
208
+ * `<port>`: The port to connect to on the coordinator node. Unless explicitly changed on the node, the port is 32010.
209
+ * `<schema>`: The name of the database schema to use by default when a schema is not given in a query. Providing a schema is optional. Specifying a schema does not prevent queries from being issued for other schemas; such queries must explicitly include the schema.
210
+ * `[?option=value[;...]]`: One or more optional properties, separated by semicolons. See SSL Connection Properties and Advanced Properties.Example URI with PAT authentication
211
+
212
+ ```
213
+ dremio+flight://myUserID:myPAT@myHost:32010/Samples?UseEncryption=false
214
+ ```
215
+ 5. Test the connection. If the test fails, check the syntax and values in the connection URI.
216
+ 6. Click **Connect**.
217
+
218
+ ## SSL Connection Parameters
219
+
220
+ Use the following parameters to configure SSL encryption and verification methods:
221
+
222
+ | Name | Type | Description | Default Value |
223
+ | --- | --- | --- | --- |
224
+ | UseEncryption | integer | Forces the client to use an SSL-encrypted connection to communicate with Dremio. Accepted values: `true`, the client communicates with Dremio by using SSL encryption; `false`, the client does not communicate with Dremio by using SSL encryption. | true |
225
+ | disableCertificateVerification | integer | Specifies whether to verify the host certificate against the trust store. Accepted values: `false`, verifies the certificate against the trust store; `true`, does not verify the certificate against the trust store. | false |
226
+ | trustedCerts | string | The 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, defaults to using the trusted CA certificates .pem file. The TLS connection fails if you do not specify a value when UseEncryption is true and disableCertificateVerification is false. | N/A |
227
+
228
+ ## Advanced Parameters
229
+
230
+ | Name | Type | Description | Default Value |
231
+ | --- | --- | --- | --- |
232
+ | routing\_queue | string | Specifies 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](/current/admin/workloads/workload-management). | N/A |
233
+ | routing\_tag | string | When 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](/current/admin/workloads/workload-management). | N/A |
234
+
235
+ Was this page helpful?
236
+
237
+ [Previous
238
+
239
+ Alteryx Designer](/current/client-applications/alteryx-designer)[Next
240
+
241
+ DataGrip](/current/client-applications/datagrip)
242
+
243
+ * Supported Versions
244
+ * Supported Authentication Methods
245
+ * Prerequisites
246
+ * Creating a Connection
247
+ * SSL Connection Parameters
248
+ * Advanced Parameters
249
+
250
+ ---
251
+
252
+ # Source: https://docs.dremio.com/current/client-applications/datagrip
253
+
254
+ Version: current [26.x]
255
+
256
+ On this page
257
+
258
+ # DataGrip
259
+
260
+ You can run SQL from [DataGrip](https://www.jetbrains.com/datagrip/) to explore your data through Dremio. DataGrip supports connections to Dremio through the Arrow Flight SQL JDBC driver.
261
+
262
+ ## Supported Versions
263
+
264
+ Dremio connectivity is supported from DataGrip running on Windows, macOS, or Linux. It is recommended that you use the latest available version of DataGrip.
265
+
266
+ ## Supported Authentication Methods
267
+
268
+ You can authenticate your connection to Dremio using your Dremio username and password.
269
+
270
+ ## Prerequisites
271
+
272
+ Download the [Arrow Flight SQL JDBC driver](https://www.dremio.com/drivers/jdbc/).
273
+
274
+ ## Connecting to Dremio
275
+
276
+ Follow the steps below to connect to Dremio:
277
+
278
+ 1. Create a project in DataGrip (see [Quick start with DataGrip](https://www.jetbrains.com/help/datagrip/quick-start-with-datagrip.html#step-1-configure-initial-settings) for more information).
279
+ 2. Open the Database Explorer, click the **+** icon, then click **Driver and Data Source**.
280
+
281
+ ![Add Driver and Data Source](/assets/images/dg-driver-source-0b823e7e7af753e19313c89b47140f8d.png)
282
+ 3. Select the **Drivers** tab, then click **+** to add a new driver.
283
+ 4. Fill in the following details for the new driver:
284
+
285
+ * **Name:** Provide a name to identify the driver in DataGrip (e.g., Arrow Flight SQL 10).
286
+ * **Driver Files:** Click **+**, click **Custom JARs…**, then select the Arrow Flight SQL driver (*flight-sql-jdbc-driver-10.0.0.jar*) from the location where you downloaded it.
287
+ * **Class:** org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver
288
+
289
+ ![Driver Details](/assets/images/dg-driver-source2-5efa292a301626acfeaa8e13d81e8396.png)
290
+ 5. At the bottom of the Data Sources and Drivers panel, click **Create Data Source**.
291
+ 6. Ensure that the driver you just created is selected under **Project Data Sources**.
292
+ 7. For Authentication, select **User & Password**, and provide the Dremio username and password to send for authentication.
293
+ 8. For URL, follow the guidance under [Connecting to Databases](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver/#connecting-to-databases).
294
+
295
+ The following is an example URL for a local Dremio installation that does not use an encrypted flight port:
296
+
297
+ Example Flight SQL URL
298
+
299
+ ```
300
+ jdbc:arrow-flight-sql://localhost:32010?useEncryption=false
301
+ ```
302
+ 9. Click **Test Connection** to confirm a valid connection to Dremio.
303
+
304
+ ![Test Connection](/assets/images/dg-driver-source3-5be4a9ef9beb1668d0d4d361bd617d1b.png)
305
+ 10. Click **OK** to save driver and data source.
306
+ 11. Run a simple query to see how results are displayed in DataGrip.
307
+
308
+ ![Run a Query](/assets/images/dg-driver-source4-1477039a90516d3ca920b129d560e68f.png)
309
+
310
+ note
311
+
312
+ When querying tables and views in Dremio, ensure you are using the fully qualified path. For example, `SELECT * FROM Samples."samples.dremio.com"."NYC-taxi-trips"`.
313
+
314
+ Was this page helpful?
315
+
316
+ [Previous
317
+
318
+ Apache Superset](/current/client-applications/superset)[Next
319
+
320
+ DBeaver](/current/client-applications/dbeaver)
321
+
322
+ * Supported Versions
323
+ * Supported Authentication Methods
324
+ * Prerequisites
325
+ * Connecting to Dremio
326
+
327
+ ---
328
+
329
+ # Source: https://docs.dremio.com/current/client-applications/dbeaver
330
+
331
+ Version: current [26.x]
332
+
333
+ On this page
334
+
335
+ # DBeaver
336
+
337
+ You can run SQL from [DBeaver](https://dbeaver.io/) to explore your data in your data lakes and relational databases through Dremio and the Arrow Flight SQL JDBC driver.
338
+
339
+ note
340
+
341
+ If you want to use DBeaver with the legacy JDBC driver, see the instructions [here](/current/client-applications/dbeaver-legacy/).
342
+
343
+ ## Supported Authentication Methods
344
+
345
+ You can use your Dremio username and password, or you can use a personal access token (PAT) that you obtained from Dremio.
346
+
347
+ ## Prerequisites
348
+
349
+ * Download the [Arrow Flight SQL JDBC driver](https://www.dremio.com/drivers/jdbc/).
350
+ * If you want to authenticate your connection to Dremio by using a personal access token, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat) for the steps to obtain one.
351
+
352
+ ## Connecting to Dremio
353
+
354
+ 1. In DBeaver, add the JDBC driver as a new driver. You need to do this only once, and can skip this step if DBeaver already lists this driver in its Driver Manager dialog:
355
+
356
+ a. In the menubar, select **Database** > **Driver Manager**.
357
+
358
+ b. In the Driver Manager dialog, click **New**.
359
+
360
+ c. In the Settings section, follow these steps:
361
+
362
+ 1. In the **Name** field, specify a name for the driver, such as "Arrow Flight SQL JDBC".
363
+ 2. In the **Driver Type** field, ensure that **Generic** is the selected driver type.
364
+ 3. In the **Class Name** field, specify `org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver`.
365
+ 4. In the **URL Template** field, specify `jdbc:arrow-flight-sql://{host}:{port}`.
366
+ 5. In the **Default Port** field, specify `32010`.
367
+
368
+ d. In the Libraries section, click **Add File** and select the `.jar` file for the Arrow Flight SQL JDBC.
369
+
370
+ e. Click **OK**.
371
+ 2. Create a connection to Dremio that uses the driver:
372
+
373
+ a. Select **Database** > **New Connection from JDBC URL**.
374
+
375
+ b. In the Create New Connection from JDBC URL dialog, type `jdbc:arrow-flight-sql://<hostname>:32010`, where `<hostname>` is the hostname of your coordinator node. DBeaver lists the driver in the **Drivers** field.
376
+
377
+ c. Select the driver and click **Next**.
378
+
379
+ d. In the Connect to a Database dialog, provide your authentication credentials by following either of these sets of steps:
380
+
381
+ * To use a personal access token that you obtained from Dremio:
382
+
383
+ 1. In the **Username** field, specify the username for which the PAT was generated.
384
+ 2. In the **Password** field, paste your personal access token.
385
+ * To use your Dremio username and password:
386
+
387
+ 1. In the **Username** field, specify your username.
388
+ 2. In the **Password** field, your password.
389
+
390
+ e. If connections to Dremio Software will not be encrypted, add the `useEncryption` property as a driver property, and set the value to `false`. The default for this property is `true`.
391
+
392
+ f. (Optional) Click **Test Connection**. If the connection works, the **Connection Test** dialog opens and indicates that DBeaver is able to connect to Dremio. The connection is not held open. Click **OK**.
393
+
394
+ g. Click **Finish**.
395
+
396
+ Was this page helpful?
397
+
398
+ [Previous
399
+
400
+ DataGrip](/current/client-applications/datagrip)[Next
401
+
402
+ DbVisualizer](/current/client-applications/dbvisualizer)
403
+
404
+ * Supported Authentication Methods
405
+ * Prerequisites
406
+ * Connecting to Dremio
407
+
408
+ ---
409
+
410
+ # Source: https://docs.dremio.com/current/client-applications/dbvisualizer
411
+
412
+ Version: current [26.x]
413
+
414
+ On this page
415
+
416
+ # DbVisualizer
417
+
418
+ [DbVisualizer](https://www.dbvis.com/) is a SQL runner that works with any JDBC-compliant data source. You can run SQL from it to explore your data in your data lakes and relational databases through Dremio and the Arrow Flight SQL JDBC driver.
419
+
420
+ ## Supported Versions
421
+
422
+ You can use any version of DbVisualizer, as long as you use Dremio 21 or later.
423
+
424
+ ## Supported Authentication Methods
425
+
426
+ You can use your Dremio username and password, or you can use a personal access token (PAT) that you obtained from Dremio.
427
+
428
+ ## Prerequisites
429
+
430
+ * Download the [Arrow Flight SQL JDBC driver](https://www.dremio.com/drivers/jdbc/).
431
+ * If you want to authenticate your connection to Dremio by using a personal access token, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat) for the steps to obtain one.
432
+
433
+ ## Connecting to Dremio
434
+
435
+ 1. Add the Arrow Flight SQL JDBC driver to DbVisualizer's Driver Manager. You need to do this only once, and can skip this step if DbVisualizer already lists this driver in its Driver Manager dialog:
436
+
437
+ a. Select **Tools** > **Driver Manager**.
438
+
439
+ b. Above the **Driver Name** list of the **Driver Manager** dialog, click the plus (+) symbol.
440
+
441
+ c. In the **Name** field, name the driver.
442
+
443
+ d. Under **Driver artifacts and jar files**, click the plus icon, browse to the `.jar` file that you downloaded, select it, and click **Open**. DbVisualizer loads the `.jar` file.
444
+
445
+ e. If you are not using TLS encryption for connections to Dremio, turn off encryption:
446
+
447
+ 1. Click **Properties** next to **Driver Settings**.
448
+ 2. Click the plus icon to add a new property.
449
+ 3. Name the parameter `useEncryption` and set the value to `false`.
450
+ 4. Click **Apply**.
451
+
452
+ f. Close the **Driver Manager** dialog.
453
+ 2. Create a connection to Dremio:
454
+
455
+ a. In the menubar, select **Database** > **Create Database Connection**.
456
+
457
+ b. Double-click **Custom** at the bottom of the **Driver Name** list.
458
+
459
+ c. Name the connection.
460
+
461
+ d. In the **Settings Format** field, select **Database URL**.
462
+
463
+ e. Click in the **Driver Type** field and then double-click the name that you gave to the Arrow Flight SQL JDBC driver.
464
+
465
+ f. In the **Database URL** field, specify a URL in this format, where `host` is the hostname of your coordinator node: `jdbc:arrow-flight-sql://{host}:32010`
466
+
467
+ g. In the **Database Userid** and **Database Password** fields, specify your authentication credentials:
468
+
469
+ * To use a personal access token that you obtained from Dremio:
470
+
471
+ 1. In the **Database Userid** field, specify the username for which the PAT was generated.
472
+ 2. In the **Database Password** field, paste your personal access token.
473
+ * To use your Dremio username and password:
474
+
475
+ 1. In the **Database Userid** field, specify your username.
476
+ 2. In the **Database Password** field, your password.
477
+
478
+ h. If you are not using TLS encryptions for connections to Dremio, click the **Properties** tab and ensure that the property `useEncryption` is listed and that the value is `false`. Then, click the **Connection** tab.
479
+
480
+ f. Click **Finish**.
481
+
482
+ DbVisualizer creates the connection and opens it.
483
+
484
+ note
485
+
486
+ If you want to use DbVisualizer with the legacy JDBC driver, see the instructions [here](/current/client-applications/dbvisualizer-legacy/).
487
+
488
+ Was this page helpful?
489
+
490
+ [Previous
491
+
492
+ DBeaver](/current/client-applications/dbeaver)[Next
493
+
494
+ Domo](/current/client-applications/domo)
495
+
496
+ * Supported Versions
497
+ * Supported Authentication Methods
498
+ * Prerequisites
499
+ * Connecting to Dremio
500
+
501
+ ---
502
+
503
+ # Source: https://docs.dremio.com/current/client-applications/domo
504
+
505
+ Version: current [26.x]
506
+
507
+ On this page
508
+
509
+ # Domo
510
+
511
+ [Domo](https://www.domo.com/) is a cloud-based platform designed to provide direct, simplified, real-time access to business data for decision makers across the company with minimal IT involvement.
512
+
513
+ ## Supported Authentication Methods
514
+
515
+ * Use the username and password of an account in your Dremio cluster.
516
+ * Use a username and a personal access token (PAT). To create one, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat).
517
+
518
+ ## Creating a Cloud Integration with Dremio Software
519
+
520
+ 1. Click the **Data** tab to open the Datasets page.
521
+ 2. Click the **Federated** tab to open the **Amplify existing cloud warehouses** dialog.
522
+ 3. Next to **Native integration**, click **Dremio**.
523
+ 4. In the **Cloud integrations** dialog, click **Add new integration**.
524
+ 5. In step 1 of the **Connect a Dremio cloud integration** wizard, follow these sub-steps:
525
+ 1. In the **Integration name** field, specify a unique name for the integration.
526
+ 2. (Optional) In the **Integration description** field, briefly describe the integration.
527
+ 3. Select **Dremio Software** as the connection type.
528
+ 6. Click **Next**.
529
+ 7. In step 2 of the wizard, follow these sub-steps:
530
+ 1. In the **Dremio connection URL** field, specify the following connection URL:
531
+
532
+ Connection URL
533
+
534
+ ```
535
+ jdbc:dremio:direct=<hostname>:<port>;ssl=<true-or-false>
536
+ ```
537
+
538
+ `ssl`: Specifies whether to encrypt communication with the Dremio cluster. Set to `true` only if encryption for communication with JDBC clients is configured in the cluster. See the configuration of client TLS for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#legacy-jdbc-and-power-bi-clients-with-legacy-odbc-driver-enterprise) for more information.
539
+ 2. In the **Username** field, specify the username of the Dremio account that you want to use for authenticating to Dremio.
540
+ 3. In the **Password** field, specify either the password for the Dremio account or a PAT.
541
+ 8. Click **Next**.
542
+ 9. Select the tables that you want to use with Domo through this integration.
543
+ 10. Click **Create Datasets**.
544
+
545
+ Datasets are created from the tables, though no data is moved or copied. Datasets in Domo are connections to data in data sources.
546
+
547
+ Was this page helpful?
548
+
549
+ [Previous
550
+
551
+ DbVisualizer](/current/client-applications/dbvisualizer)[Next
552
+
553
+ IBM Cognos Analytics](/current/client-applications/cognos)
554
+
555
+ * Supported Authentication Methods
556
+ * Creating a Cloud Integration with Dremio Software
557
+
558
+ ---
559
+
560
+ # Source: https://docs.dremio.com/current/client-applications/cognos
561
+
562
+ Version: current [26.x]
563
+
564
+ On this page
565
+
566
+ # IBM Cognos Analytics
567
+
568
+ You can run SQL from [Cognos Analytics](https://www.ibm.com/products/cognos-analytics) to explore your data through Dremio. Cognos Analytics Dynamic Query supports connections to Dremio through the Dremio JDBC driver.
569
+
570
+ ## Supported Versions
571
+
572
+ To find out which versions of Dremio are supported with IBM Cognos 11.2.x, see [DQM testing of vendor-supported client driver versions for each Cognos Analytics 11.2.x release](https://www.ibm.com/support/pages/node/6441017#11.2.4fp2r).
573
+
574
+ To find out which versions of Dremio are supported with IBM Cognos 12.0.x, see [DQM testing of vendor-supported client driver versions for each Cognos Analytics 12.0.x release](https://www.ibm.com/support/pages/node/6989513#12.0.2r).
575
+
576
+ ## Supported Authentication Methods
577
+
578
+ You can use your Dremio username and password, a personal access token (PAT), or an access token from an identity provider that supports OpenID.
579
+
580
+ If you want to use a PAT, follow these steps before creating a connection to your Dremio cluster from Cognos:
581
+
582
+ 1. Ensure that your Dremio administrator has followed the steps in [Enabling the Use of PATs](/current/security/authentication/personal-access-tokens/#enabling-the-use-of-pats).
583
+ 2. [Create a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat).
584
+
585
+ If you want to use an access token from an identity provider that supports OpenID, ensure that your Dremio administrator has followed the steps in [OpenID Authentication](/current/security/authentication/identity-providers/oidc).
586
+
587
+ ## Creating a Connection
588
+
589
+ 1. Launch Cognos Analytics.
590
+ 2. Navigate to **Manage** > **Data Server Connections**.
591
+ 3. Click **Add Data Server** and select **Dremio** as the type of connection.
592
+ 4. In the **JDBC URL** field, specify the URL for the Dremio coordinator by using this template:
593
+
594
+ JDBC URL template
595
+
596
+ ```
597
+ jdbc:dremio:direct=<DREMIO_COORDINATOR>:31010[;schema=<OPTIONAL_SCHEMA>]
598
+ ```
599
+ 5. Follow one of these steps to configure a method for authenticating to Dremio:
600
+
601
+ * If you want to connect to Dremio by using a username and a password, specify the username and password.
602
+ * If you want to connect to Dremio by using a personal access token (PAT), specify `$token` as the username and paste the PAT into the **Password** field.
603
+ * If you want to connect to Dremio by using access tokens, select a Cognos namespace which has been configured to use OpenID Connect.
604
+ 6. Save the connection definition.
605
+ 7. Click **Test** to confirm that the connection succeeds.
606
+
607
+ Was this page helpful?
608
+
609
+ [Previous
610
+
611
+ Domo](/current/client-applications/domo)[Next
612
+
613
+ Looker](/current/client-applications/looker)
614
+
615
+ * Supported Versions
616
+ * Supported Authentication Methods
617
+ * Creating a Connection
618
+
619
+ ---
620
+
621
+ # Source: https://docs.dremio.com/current/client-applications/looker
622
+
623
+ Version: current [26.x]
624
+
625
+ On this page
626
+
627
+ # Looker
628
+
629
+ You can use [Looker](https://looker.com/) to query and visualize data by means of Dremio.
630
+
631
+ ## Supported Authentication Methods
632
+
633
+ There are two methods of authenticating that you can choose from when you connect from Looker to Dremio:
634
+
635
+ * Use a username and password for your Dremio cluster.
636
+ * Use a personal access token (PAT) obtained from Dremio. To create a PAT, follow the steps in [Creating a PAT](/current/security/authentication/personal-access-tokens#creating-a-pat).
637
+
638
+ ## Creating a Connection
639
+
640
+ 1. Log into Looker.
641
+ 2. In the menu bar at the top of the page, select **Admin**, and then select **Connections** under **Database**.
642
+ 3. Click the **Add Connection** button in the top-right corner of the page to open the Connection Settings page for creating a connection.
643
+ 4. Specify a name for the connection.
644
+ 5. In the **Dialect** field, select **Dremio 11+**.
645
+ 6. In the **Remote Host:Port** fields, specify the hostname or IP address of your Dremio cluster, as well as the port to connect to. By default, the port number is 31010.
646
+ 7. In the **Database** field, specify any value. Though Looker requires a value in this field, Dremio does not use the value.
647
+ 8. In the **Username** and **Password** fields, specify your authentication credentials:
648
+
649
+ * If you want to authenticate by using a Dremio username and a password, specify them in the **Username** and **Password** fields.
650
+ * If you want to authenticate by using a personal access token, specify these values:
651
+
652
+ + In the **Username** field, specify your Dremio username.
653
+ + In the **Password** field, paste the personal access token.
654
+ 9. If your Dremio cluster is configured to use TLS, ensure that the **SSL** check box is selected.
655
+ 10. Click **Test These Settings** at the bottom of the page to check that the information that you specified is all valid.
656
+ 11. Click **Add Connection** if the test of the connection is successful.
657
+
658
+ The new connection is listed on the Connections page.
659
+
660
+ Was this page helpful?
661
+
662
+ [Previous
663
+
664
+ IBM Cognos Analytics](/current/client-applications/cognos)[Next
665
+
666
+ Microsoft Excel](/current/client-applications/microsoft-excel/)
667
+
668
+ * Supported Authentication Methods
669
+ * Creating a Connection
670
+
671
+ ---
672
+
673
+ # Source: https://docs.dremio.com/current/client-applications/microsoft-excel/
674
+
675
+ Version: current [26.x]
676
+
677
+ On this page
678
+
679
+ # Microsoft Excel
680
+
681
+ ## Supported Versions
682
+
683
+ warning
684
+
685
+ Microsoft Excel version 16.95 (25030928) for Mac introduces a change that causes Excel to crash when using the Arrow Flight SQL ODBC driver. The crash occurs immediately after authentication, before the query/source selection dialog appears. This issue only affects Excel 16.95 on macOS. Excel on Windows is not impacted. See Hiding the SQL Tables Listing for a fix.
686
+
687
+ Microsoft Excel in Microsoft 365
688
+
689
+ ## Prerequisites
690
+
691
+ * Ensure that you are using Dremio v22.0 or later.
692
+ * Ensure that your operating system is 64-bit Windows 10 or later.
693
+ * Download, install, and configure the [Arrow Flight SQL ODBC driver](/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
694
+ * If you want to authenticate to Dremio by using a personal access token (PAT), rather than by using a password, generate a PAT. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for the steps.
695
+
696
+ ## Connecting to Dremio
697
+
698
+ 1. In Excel, select **Data** from the menu bar.
699
+ 2. Click **Get Data**.
700
+ 3. Select **From Other Sources** > **From ODBC**.
701
+ 4. In the From ODBC dialog, select the data source name that you specified when you configured the Arrow Flight SQL ODBC driver.
702
+ 5. Specify the username to use for the connection to Dremio.
703
+ 6. Specify either a password or a personal access token to use with the username
704
+ 7. In the Navigator dialog, select a dataset.
705
+ 8. Click **Load**.
706
+
707
+ ## Hiding the SQL Tables Listing
708
+
709
+ You can prevent Excel from crashing by enabling the `hideSQLTablesListing` flag to hide the list of available sources in the query/source selection dialog. This flag can be used for Mac computers with an Apple silicon or an Intel processor.
710
+
711
+ To set the configuration:
712
+
713
+ 1. Go to the **System DSN** tab of the ODBC Manager.
714
+ 2. Click **Configure**.
715
+ 3. Change the value of the `hideSQLTablesListing` keyword to `true`.
716
+ 4. Click **OK**.
717
+
718
+ ## Using the Extended Flight SQL Buffer
719
+
720
+ Apple Silicon Not Supported
721
+
722
+ The Extended Flight SQL Buffer feature was designed for Apple Silicon processors, but the Arrow Flight SQL ODBC driver is not supported on Apple Silicon M1, M2, and M3 processors. This feature is no longer available.
723
+
724
+ Was this page helpful?
725
+
726
+ [Previous
727
+
728
+ Looker](/current/client-applications/looker)[Next
729
+
730
+ Microsoft Excel PowerPivot](/current/client-applications/microsoft-excel/microsoft-excel-powerpivot)
731
+
732
+ * Supported Versions
733
+ * Prerequisites
734
+ * Connecting to Dremio
735
+ * Hiding the SQL Tables Listing
736
+ * Using the Extended Flight SQL Buffer
737
+
738
+ ---
739
+
740
+ # Source: https://docs.dremio.com/current/client-applications/microsoft-power-bi/
741
+
742
+ Version: current [26.x]
743
+
744
+ On this page
745
+
746
+ # Microsoft Power BI
747
+
748
+ Connect [Microsoft Power BI](https://www.microsoft.com/en-us/power-platform/products/power-bi) to visualize your data and create reports.
749
+
750
+ You can connect Power BI to Dremio in one of the following ways:
751
+
752
+ * Configure a reusable connection to use in Power BI Desktop, Power BI Gateway, or Power BI Service. Power BI Service can connect to Dremio through DirectQuery or through Power BI Gateway.
753
+ * Connect to a specific dataset by downloading the `.pbids` file from Dremio and opening it in Power BI Desktop.
754
+
755
+ ## Supported Authentication Methods
756
+
757
+ From Power BI, you can authenticate to Dremio with one of the following methods:
758
+
759
+ * **Username and password**: Use your Dremio credentials.
760
+ * **Personal access token (PAT)**: For details, see [Personal Access Tokens](/current/security/authentication/personal-access-tokens/).
761
+ * **Single sign-on (SSO) through OAuth 2.0**: For steps on how to configure SSO, see Enable SSO to Dremio from Power BI.
762
+
763
+ ## Connect to Dremio from Power BI
764
+
765
+ The Power BI connector for Dremio now supports connectivity through the open-source [Arrow Database Connectivity (ADBC) driver](https://arrow.apache.org/docs/format/ADBC.html), which Dremio highly recommends using to connect to Dremio. To enable reports to use ADBC, see Enable Connectivity with ADBC.
766
+
767
+ Existing connections will continue to work, but we recommend using the embedded ADBC driver for all new reports and migrating existing reports to ADBC to benefit from improved performance and supportability.
768
+
769
+ To connect to Dremio from Power BI Desktop:
770
+
771
+ 1. Click **Get data**, search for `Dremio`, select **Dremio Software**, and click **Connect**.
772
+ 2. In the Dremio Software dialog, follow these steps:
773
+
774
+ a. Use the Flight SQL ADBC driver and in the **Server** field specify your Dremio hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
775
+
776
+ b. (Optional) Complete the other fields in the dialog as you normally would.
777
+
778
+ c. Under **Data Connectivity mode**, select either **Import** or **DirectQuery**. Click **OK**.
779
+
780
+ d. For **Authentication Method**, select **Basic** or **Key**.
781
+
782
+ * **Basic**: Enter your Dremio username and password.
783
+ * **Key**: Paste in the personal access token you obtained from Dremio. For details, see [Personal Access Tokens](/current/security/authentication/personal-access-tokens/).
784
+ 3. Click **Connect**.
785
+
786
+ note
787
+
788
+ Creating Dataflows through Power BI Service is also supported. To create a dataflow, click **New** > **Dataflow**. For the data source connection, follow the steps above.
789
+
790
+ ### Create a Live Connection to a Dataset from Dremio
791
+
792
+ You can generate a Microsoft Power BI Data Source (`.pbids`) file that represents a live connection to a dataset that is in Dremio. No actual data is stored in this file, and you can think of it as a shortcut to a Power BI Desktop session with a preconfigured view of your data.
793
+
794
+ note
795
+
796
+ The `.pbids` file download option must be enabled for users to have access to this feature. To enable this feature, see Enable the `.pbids` file download.
797
+
798
+ To create a live connection to a dataset:
799
+
800
+ 1. In Dremio, navigate to the dataset.
801
+ 2. Click the ellipsis (**...**) next to the dataset name.
802
+ 3. Select **Download .pbids file**.
803
+ 4. Open the downloaded file in Power BI Desktop.
804
+ 5. Authenticate using your preferred method.
805
+
806
+ ## Power BI Gateway
807
+
808
+ To enable Power BI users to connect to Dremio via Power BI Gateway:
809
+
810
+ 1. Install and configure [Power BI Gateway](https://docs.microsoft.com/en-us/power-bi/connect-data/service-gateway-onprem) on a machine that can connect to your Dremio cluster.
811
+ 2. In the Power BI Gateway configuration, add Dremio as a data source using the same connection details as above.
812
+
813
+ ## Advanced Configuration
814
+
815
+ ### Enable Connectivity with ADBC
816
+
817
+ Dremio supports connectivity through Arrow Database Connectivity (ADBC). To enable this for Power BI Service, see the following options.
818
+
819
+ #### Enable the ADBC Option for a New Connection
820
+
821
+ 1. In Power BI Desktop, click **Get data**.
822
+ 2. In the Get Data dialog, locate and select **Dremio Software**, and click **Connect**.
823
+ 3. In the Dremio Software dialog, in the **Server** field, specify your hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
824
+ 4. (Optional) Complete the other fields in the dialog as you normally would.
825
+ 5. Click **OK**.
826
+ 6. Authenticate using your preferred method, and click **Connect**.
827
+
828
+ #### Enable the ADBC Option for an Existing Connection
829
+
830
+ 1. In Power BI Desktop, go to **Data source settings**, select your source, and click **Change source**.
831
+ 2. In the Dremio Software dialog, update the **Server** field by adding the `adbc://` prefix before the hostname. Example: `adbc://acme-company.dremio.com`. If you're unable to edit the source this way, click **Transform data**, then click **Advanced Editor** in the **Home** tab. In the dialog that appears, update the hostname/server with the `adbc://` prefix, and click **Done**.
832
+ 3. Click **OK**.
833
+ 4. Reauthenticate using your preferred method, and click **Connect**.
834
+
835
+ ### Enable the `.pbids` File Download in the Dremio Console
836
+
837
+ To enable the `.pbids` file download feature:
838
+
839
+ 1. In Dremio, go to **Admin** > **Settings**.
840
+ 2. In the **Support** section, enable **Allow downloading of .pbids files**.
841
+ 3. Click **Save**.
842
+
843
+ ### Enable SSO to Dremio from Power BI
844
+
845
+ SSO is supported only for datasets that use DirectQuery.
846
+
847
+ note
848
+
849
+ SSO only works for reports created using the Dremio Cloud connector in Power BI Desktop. Reports created with the Dremio Software connector cannot use SSO by simply changing credentials, they must be converted first.
850
+
851
+ To convert existing reports from the Dremio Software connector to the Dremio Cloud connector, you'll need to modify the connection in Power BI's Advanced Editor to change the function from `Dremio.Databases` to `DremioCloud.DatabasesByServerV370`.
852
+
853
+ Prerequisites: Configure Dremio for Microsoft Entra ID
854
+
855
+ Before enabling SSO for Power BI reports, Dremio must be configured to use Microsoft Entra ID (Azure AD) as an identity provider.
856
+
857
+ **Required configuration:**
858
+
859
+ * Set `services.coordinator.web.auth.type` to the Microsoft Entra ID / OIDC provider type configured for your deployment (for example, `azuread`)
860
+ * Provide the required OIDC or Azure AD configuration file (`azuread.json` or equivalent)
861
+ * Deploy configuration files to all coordinator nodes
862
+ * Restart Dremio cluster after applying changes
863
+
864
+ For complete setup steps, see [Configure Microsoft Entra ID](/current/security/authentication/identity-providers/microsoft-entra-id/).
865
+
866
+ note
867
+
868
+ All authentication setup must be done through configuration files before enabling SSO in Power BI.
869
+
870
+ The following steps configure the Power BI side of SSO. These steps assume your Dremio deployment is already configured to authenticate users via Microsoft Entra ID.
871
+
872
+ To enable SSO for Power BI reports:
873
+
874
+ #### Enable SSO for a DirectQuery Report
875
+
876
+ To enable SSO for a report that uses DirectQuery:
877
+
878
+ 1. In Power BI Service, open the workspace to which you published the report.
879
+ 2. Find the dataset that is associated with the report, click the three dots next to its name, and select **Settings**.
880
+ 3. In the settings for the dataset, expand **Data source credentials**.
881
+ 4. Click **Edit credentials**.
882
+ 5. For **Authentication method**, select **OAuth2**.
883
+ 6. In the **Privacy level setting for this data source** field, ensure that **Private** is selected.
884
+ 7. Select the check box **Report viewers can only access this data source with their own Power BI identities using DirectQuery**.
885
+ 8. Click **Sign in**.
886
+
887
+ #### Enable SSO for Reports with Power BI Gateway
888
+
889
+ To enable SSO when you are using Power BI Gateway:
890
+
891
+ 1. In Power BI Service, open the workspace to which you published the report.
892
+ 2. Find the dataset that is associated with the report, click the three dots next to its name, and select **Settings**.
893
+ 3. In the settings for the dataset, expand **Gateway connection**.
894
+ 4. Recreate your data source by following these steps:
895
+
896
+ 1. Select the **Maps to** field.
897
+ 2. Select **Manually add to gateway**.
898
+ 3. For **Data Source Name**, enter a name for the data source.
899
+ 4. For **Data Source Type**, select **Dremio Software**.
900
+ 5. For **Server**, enter your Dremio hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
901
+ 6. For **Authentication Method**, select **OAuth2**.
902
+ 7. Click **Add**.
903
+ 5. In the **Data source credentials** section, click **Edit credentials**.
904
+ 6. For **Authentication method**, select **OAuth2**.
905
+ 7. In the **Privacy level setting for this data source** field, ensure that **Private** is selected.
906
+ 8. Select the check box **Report viewers can only access this data source with their own Power BI identities using DirectQuery**.
907
+ 9. Click **Sign in**.
908
+
909
+ note
910
+
911
+ SSO requires the OAuth2 authentication method. Basic authentication and personal access tokens do not support SSO when used through Power BI Gateway.
912
+
913
+ ## Arrow Database Connectivity (ADBC) Limitations
914
+
915
+ * ADBC is not enabled by default. It must be enabled by the owner of the report.
916
+ * NativeQuery is not supported.
917
+ * Metadata calls are not cached.
918
+ * Power BI Desktop occasionally caches errors that might affect future connection attempts until the cache is cleared.
919
+ * Complex data types such as `MAP` and `INTERVAL` are not supported.
920
+ * When using DirectQuery, chaining functions is supported, but some complex scenarios may not work as expected. Complex optional parameters for functions are not supported.
921
+
922
+ ## Troubleshoot Power BI
923
+
924
+ ### Cached Data Issues
925
+
926
+ If you have previously installed older versions of Power BI Desktop, cached data may interfere with the newer versions of the Flight SQL drivers resulting in connection errors.
927
+
928
+ #### Problem
929
+
930
+ For example, when using Flight SQL ADBC, cached connection data in Power BI could cause the following errors:
931
+
932
+ * `ADBC: IOError [] [FlightSQL] [FlightSQL] unresolved address (Unavailable; GetObjects(GetDBSchemas))`
933
+ * `ADBC: IOError [] [FlightSQL] [FlightSQL] connection error: desc = "transport: authentication handshake failed: credentials: cannot check peer: missing selected ALPN property. If you upgraded from a grpc-go version earlier than 1.67, your TLS connections may have stopped working due to ALPN enforcement. For more details, see: https://github.com/grpc/grpc-go/issues/434" (Unavailable; GetObjects(GetDBSchemas))"`
934
+
935
+ #### Solution
936
+
937
+ Clear the Power BI Desktop cache and any cached data source permissions involving Dremio connections by following these steps:
938
+
939
+ 1. [Clear Power BI Desktop Caches](https://community.fabric.microsoft.com/t5/Desktop/How-to-clear-cache-in-Power-BI-Desktop/m-p/853389#M409501).
940
+ 2. In Power BI Desktop, go to **File** > **Options and Settings** > **Data Source Settings**.
941
+ 3. Select **Global Permissions**.
942
+ 4. Clear all cached connections by clicking **Clear All Permissions**, or select specific Dremio data sources and click **Clear Permissions**.
943
+
944
+ After completing these steps, try reconnecting to Dremio using the instructions above.
945
+
946
+ ### Large Result Sets
947
+
948
+ #### Problem
949
+
950
+ When fetching data from Dremio with ADBC you may see the following error:
951
+
952
+ * `Unexpected error: [FlightSQL] grpc: received message larger than max (43747370 vs. 16777216) (ResourceExhausted; DoGet: endpoint 0: [])`
953
+
954
+ #### Solution
955
+
956
+ By default, the ADBC driver accepts only messages up to 16 MiB in size. This can be fixed by updating the Power BI M expression to customize the connection as follows:
957
+
958
+ ```
959
+ let
960
+ Source = DremioCloud.DatabasesByServerV370("your-server-here", [
961
+ MaxMessageSize = 67108864 // 64 MiB
962
+ ])
963
+ in
964
+ Source
965
+ ```
966
+
967
+ Replace `your-server-here` with your actual Dremio server address. The `MaxMessageSize` parameter sets the maximum message size in bytes (67108864 = 64 MiB).
968
+
969
+ Was this page helpful?
970
+
971
+ [Previous
972
+
973
+ Microsoft Excel PowerPivot](/current/client-applications/microsoft-excel/microsoft-excel-powerpivot)[Next
974
+
975
+ Microstrategy Workstation](/current/client-applications/microstrategy)
976
+
977
+ * Supported Authentication Methods
978
+ * Connect to Dremio from Power BI
979
+ + Create a Live Connection to a Dataset from Dremio
980
+ * Power BI Gateway
981
+ * Advanced Configuration
982
+ + Enable Connectivity with ADBC
983
+ + Enable the `.pbids` File Download in the Dremio Console
984
+ + Enable SSO to Dremio from Power BI
985
+ * Arrow Database Connectivity (ADBC) Limitations
986
+ * Troubleshoot Power BI
987
+ + Cached Data Issues
988
+ + Large Result Sets
989
+
990
+ ---
991
+
992
+ # Source: https://docs.dremio.com/current/client-applications/microstrategy
993
+
994
+ Version: current [26.x]
995
+
996
+ On this page
997
+
998
+ # Microstrategy Workstation
999
+
1000
+ [MicroStrategy Workstation](https://www2.microstrategy.com/producthelp/Current/Workstation/en-us/Content/home_workstation.htm) makes it easy to build compelling visualizations and interactive dossiers in a matter of minutes and then easily share those dossiers with others.
1001
+
1002
+ ## Supported Versions
1003
+
1004
+ Microstrategy Workstation 2021 Update 9 and later.
1005
+
1006
+ ## Supported Authentication Methods
1007
+
1008
+ * Use a Dremio username and password.
1009
+ * Use a Dremio username and a personal access token (PAT) that you obtained from Dremio.
1010
+
1011
+ ## Prerequisites
1012
+
1013
+ * Install the latest version of Dremio's legacy JDBC driver:
1014
+ 1. [Download the driver](https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar).
1015
+ 2. Move the `.jar` file to one of these locations:
1016
+ + On Windows: `C:\Program Files (x86)\Common Files\MicroStrategy\JDBC`
1017
+ + On Linux: `/opt/mstr/MicroStrategy/install/JDBC`
1018
+ * If you want to authenticate your connection to Dremio by using a PAT, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat) for the steps to obtain one.
1019
+ * In Microstrategy Workstation, select **Help** > **Enable New Data Import Experience**.
1020
+
1021
+ ## Creating an Environment-level Integration with Dremio
1022
+
1023
+ You can create an integration with Dremio that can be used in more than one dossier.
1024
+
1025
+ 1. In Microstrategy Workstation, connect to the environment that you plan to use.
1026
+ 2. Under **Administration** on the left side of the screen, click the + sign to the right of **Data Sources**.
1027
+ 3. In the Data Source Types dialog, click **Dremio**.
1028
+ 4. In the Add Data Source - Dremio dialog, follow these steps:
1029
+ 1. In the **Name** field, specify a name for the integration.
1030
+ 2. (Optional) In the **Description** field, describe the integration.
1031
+ 3. In the **Database Version** field, ensure that **Dremio** is selected.
1032
+ 4. In the **Default Database Connection** field, either select an existing connection to a Dremio cluster, or select **Add New Database Connection**.
1033
+ 5. If you selected **Add New Database Connection**, follow these steps in the Create New Database Connection dialog:
1034
+ 1. In the **Name** field, specify a name for the connection.
1035
+ 2. In the **Basic** section, follow these steps:
1036
+ 1. In the **Host Name** field, specify the IP address or hostname of the coordinator node of the Dremio cluster that you want to use this connection with.
1037
+ 2. In the **Port Number** field, specify the port number to use. The default port number is 31010.
1038
+ 3. In the **Authentication Mode** field, ensure that **Standard** is selected.
1039
+ 4. In the **Default Database Login** field, either select an existing set of authentication credentials for the Dremio Cluster, or click **Add New Database Login** to add a new set.
1040
+ 5. If you clicked **Add New Database Login** in the previous step, specify the name to associate with the credentials, and then follow either of these steps:
1041
+ * Specify the username and password of the Dremio account to use.
1042
+ * Specify the username of the Dremio account to use and a PAT, which you can paste into the **Password** field.
1043
+ 3. (Optional) In the **Advanced** section, set additional properties for Microstrategy Workstation to use when connecting to Dremio. See [Optional Advanced JDBC Driver Properties](/current/client-applications/drivers/jdbc/#optional-advanced-jdbc-driver-properties) for a list of the properties that you can use.
1044
+ 4. (Optional) In the **Security** section, toggle on the **Use TLS Encryption** switch if the Dremio cluster is configured to encrypt communication between it and JDBC clients. For more information, see the configuration of client TLS for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#legacy-jdbc-and-power-bi-clients-with-legacy-odbc-driver-enterprise).
1045
+ 5. (Optional) In the **Properties** section, specify non-default values for various properties of the connection.
1046
+ 6. Click **Save**.
1047
+ 6. In the Add Data Source - Dremio dialog, follow these steps:
1048
+ 1. (Optional) Click **Test** to find out whether Microstrategy Workstation can connect to the Dremio cluster by using the database connection. If the test fails, ensure that the connection is configured correctly.
1049
+ 2. Click **Save**.
1050
+
1051
+ You can now select this database connection when you create dossiers.
1052
+
1053
+ Was this page helpful?
1054
+
1055
+ [Previous
1056
+
1057
+ Microsoft Power BI](/current/client-applications/microsoft-power-bi/)[Next
1058
+
1059
+ Preset](/current/client-applications/preset)
1060
+
1061
+ * Supported Versions
1062
+ * Supported Authentication Methods
1063
+ * Prerequisites
1064
+ * Creating an Environment-level Integration with Dremio
1065
+
1066
+ ---
1067
+
1068
+ # Source: https://docs.dremio.com/current/client-applications/preset
1069
+
1070
+ Version: current [26.x]
1071
+
1072
+ On this page
1073
+
1074
+ # Preset
1075
+
1076
+ You can use [Preset](https://preset.io/), a cloud service for Superset, to query and visualize data.
1077
+
1078
+ ## Supported Authentication Methods
1079
+
1080
+ * Use the username and password of an account in your Dremio cluster.
1081
+ * Use the username of an account in your Dremio cluster and a personal access token (PAT) created in Dremio. To create a PAT, follow the steps in [Creating a PAT](/current/security/authentication/personal-access-tokens#creating-a-pat). After you obtain a PAT, it is recommended that you URL-encode it. To encode it locally on your system, you can follow these steps:
1082
+ 1. In a browser window, right-click an empty area of the page and select **Inspect** or **Inspect Element**, depending on your browser.
1083
+ 2. In the top bar of the inspection pane, click **Console**.
1084
+ 3. Type `encodeURIComponent("<PAT>")`, where `<PAT>` is the personal access token. The URL-encoded PAT appears in red on the next line. You can highlight it and copy it to your clipboard.
1085
+
1086
+ ## Creating a Connection
1087
+
1088
+ 1. Click **Settings** in the top-right corner, and select **Database Connections** under **Data**.
1089
+ 2. Click the **+Database** button in the top-right corner.
1090
+ 3. Select **Other** from the **Supported Databases** field of the Connect a Database dialog.
1091
+ 4. In the **Display Name** field, specify any name you prefer.
1092
+ 5. In the **Connect a Database** dialog, follow these steps:
1093
+ 1. Select **Other** from the **Supported Databases** field.
1094
+ 2. In the **Display Name** field, name the new connection.
1095
+ 3. If you want to authenticate by using a username and password, specify in the **SQLAlchemy URI** field a URI that is in this format:
1096
+
1097
+ Format of URIs with username and password authentication
1098
+
1099
+ ```
1100
+ dremio://<username>:<password>@<host>:<port>[/option=value[;...]]
1101
+ ```
1102
+
1103
+ * `<username>`: The username of the Dremio account to use.
1104
+ * `<password>`: The password of the Dremio account to use.
1105
+ * `<host>`: The hostname or IP address of the coordinator node of the Dremio cluster.
1106
+ * `<port>`: The port to connect to on the coordinator node. Unless explicitly changed on the node, the port is 31010.
1107
+ * `[/option=value[;...]]`: One or more optional properties, separated by semicolons. See SSL Connection Properties and Advanced Properties.Example URI with username and password authentication
1108
+
1109
+ ```
1110
+ dremio://myUserID:myPassword@myHost:31010/ssl=true;schema=Samples;routing_tag=thisTag
1111
+ ```
1112
+ 4. If you want to authenticate by using a personal access token, specify in the **SQLAlchemy URI** field a URI that is in this format:
1113
+
1114
+ Format of URIs with PAT authentication
1115
+
1116
+ ```
1117
+ dremio://<username>:<PAT>@<host>:<port>[/option=value[;...]]
1118
+ ```
1119
+
1120
+ * `<username>`: The username of the Dremio account to use.
1121
+ * `<PAT>`: The personal access token to use.
1122
+ * `<host>`: The hostname or IP address of the coordinator node of the Dremio cluster.
1123
+ * `<port>`: The port to connect to on the coordinator node. Unless explicitly changed on the node, the port is 31010.
1124
+ * `[/option=value[;...]]`: One or more optional properties, separated by semicolons. See SSL Connection Properties and Advanced Properties.Example URI with PAT authentication
1125
+
1126
+ ```
1127
+ dremio://myUserID:myPAT@myHost:31010/ssl=true;schema=Samples;routing_tag=thisTag
1128
+ ```
1129
+ 5. Test the connection. If the test fails, check the syntax and values in the connection URI.
1130
+ 6. Click **Connect**.
1131
+
1132
+ ## SSL Connection Properties
1133
+
1134
+ Use the following properties to configure SSL encryption and verification methods:
1135
+
1136
+ | Name | Type | Description | Default Value |
1137
+ | --- | --- | --- | --- |
1138
+ | UseEncryption | integer | Forces the client to use an SSL-encrypted connection to communicate with Dremio. Accepted values: `true`, the client communicates with Dremio by using SSL encryption; `false`, the client does not communicate with Dremio by using SSL encryption. | true |
1139
+ | disableCertificateVerification | integer | Specifies whether to verify the host certificate against the trust store. Accepted values: `false`, verifies the certificate against the trust store; `true`, does not verify the certificate against the trust store. | false |
1140
+ | trustedCerts | string | The 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, defaults to using the trusted CA certificates .pem file.The TLS connection fails if you do not specify a value when UseEncryption is true and disableCertificateVerification is false. | N/A |
1141
+
1142
+ ## Advanced Properties
1143
+
1144
+ | Name | Type | Description | Default Value |
1145
+ | --- | --- | --- | --- |
1146
+ | routing\_queue | string | Specifies 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 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](/current/admin/workloads/workload-management). | N/A |
1147
+ | routing\_tag | string | When this property 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](/current/admin/workloads/workload-management). | N/A |
1148
+
1149
+ Was this page helpful?
1150
+
1151
+ [Previous
1152
+
1153
+ Microstrategy Workstation](/current/client-applications/microstrategy)[Next
1154
+
1155
+ SAP Business Objects](/current/client-applications/business-objects)
1156
+
1157
+ * Supported Authentication Methods
1158
+ * Creating a Connection
1159
+ * SSL Connection Properties
1160
+ * Advanced Properties
1161
+
1162
+ ---
1163
+
1164
+ # Source: https://docs.dremio.com/current/client-applications/business-objects
1165
+
1166
+ Version: current [26.x]
1167
+
1168
+ On this page
1169
+
1170
+ # SAP Business Objects
1171
+
1172
+ ## Prerequisites
1173
+
1174
+ Dremio Business Objects integration requires:
1175
+
1176
+ * SAP Business Objects 4.0+
1177
+ * Download, install, and configure the [Arrow Flight SQL ODBC driver](/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
1178
+
1179
+ ## Connecting to a Dremio cluster using Information Design Tool
1180
+
1181
+ 1. Open Information Design Tool and a new project.
1182
+ 2. Create a new Relational Connection using the Generic ODBC3 datasource driver.
1183
+ 3. Select the Arrow Flight SQL ODBC DSN and test the connection.
1184
+
1185
+ Dremio schemas and tables are now available.
1186
+
1187
+ ## Using Dremio datasets in Web Intelligence Reports
1188
+
1189
+ 1. In Information Design Tool, publish the Dremio connection to a repository.
1190
+ 2. Create a new Data Foundation.
1191
+ 3. Create a new Business Layer.
1192
+ 4. Publish the universe to a repository.
1193
+ 5. Open a web browser, go to Web Intelligence tool and select the published universe.
1194
+ 6. Configure the query.
1195
+
1196
+ Your Dremio dataset is ready to be used in Web Intelligence.
1197
+
1198
+ Was this page helpful?
1199
+
1200
+ [Previous
1201
+
1202
+ Preset](/current/client-applications/preset)[Next
1203
+
1204
+ Tableau](/current/client-applications/tableau)
1205
+
1206
+ * Prerequisites
1207
+ * Connecting to a Dremio cluster using Information Design Tool
1208
+ * Using Dremio datasets in Web Intelligence Reports
1209
+
1210
+ ---
1211
+
1212
+ # Source: https://docs.dremio.com/current/client-applications/tableau
1213
+
1214
+ Version: current [26.x]
1215
+
1216
+ On this page
1217
+
1218
+ # Tableau
1219
+
1220
+ Connect [Tableau](https://www.tableau.com/) to Dremio to derive powerful insights from your data and create real-time dashboards.
1221
+
1222
+ You can connect your Tableau application to Dremio in one of two ways:
1223
+
1224
+ * Configure a reusable connection in Tableau Desktop, Tableau Server, or Tableau Cloud.
1225
+ * Connect to a specific dataset by downloading the `.tds` file from Dremio and opening it in Tableau Desktop.
1226
+
1227
+ ## Supported Tableau Versions
1228
+
1229
+ | Product | Supported Versions |
1230
+ | --- | --- |
1231
+ | Tableau Desktop | 2022.1 and later |
1232
+ | Tableau Server | 2022.1 and later |
1233
+ | Tableau Cloud | Latest version deployed by Tableau |
1234
+
1235
+ ## Supported Authentication Methods
1236
+
1237
+ From Tableau, you can authenticate to Dremio with a username and password, or with a [personal access token (PAT)](/current/security/authentication/personal-access-tokens/#creating-a-pat) that can be obtained from the Dremio console.
1238
+
1239
+ You can also configure single sign-on (SSO) through OAuth 2.0. For steps on how to configure SSO, see Enabling SSO to Dremio from Tableau.
1240
+
1241
+ ## Tableau Desktop
1242
+
1243
+ Tableau Desktop includes a native connector that you can use to connect to Dremio.
1244
+
1245
+ ### Prerequisites for Using the Dremio JDBC Driver (Legacy)
1246
+
1247
+ To connect to Dremio, you'll also need to install the Dremio JDBC driver. Download the Dremio JDBC driver and copy it to Tableau Desktop's `Drivers` folder.
1248
+
1249
+ Download driver for macOS by running this command in a Terminal window
1250
+
1251
+ ```
1252
+ curl -L https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar -o ~/Library/Tableau/Drivers/dremio-jdbc-driver-LATEST.jar
1253
+ ```
1254
+
1255
+ Download driver for Windows by running this command in a PowerShell window
1256
+
1257
+ ```
1258
+ Invoke-WebRequest -Uri "https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar" -OutFile "C:\Program Files\Tableau\Drivers\dremio-jdbc-driver-LATEST.jar"
1259
+ ```
1260
+
1261
+ ### Prerequisites for Using the Arrow Flight SQL JDBC Driver
1262
+
1263
+ The Tableau Desktop 2025.1+ connector for Dremio supports Arrow Flight SQL JDBC in place of the Dremio JDBC driver (Legacy). To change the driver, download the Arrow Flight SQL JDBC driver, copy it to Tableau Desktop's `Drivers` folder, and select the **Use Arrow Flight SQL Driver (preview)** option in the **Advanced** tab of the connection dialog.
1264
+
1265
+ Download driver for macOS by running this command in a Terminal window
1266
+
1267
+ ```
1268
+ curl -L https://repo1.maven.org/maven2/org/apache/arrow/flight-sql-jdbc-driver/18.3.0/flight-sql-jdbc-driver-18.3.0.jar -o ~/Library/Tableau/Drivers/flight-sql-jdbc-driver-18.3.0.jar
1269
+ ```
1270
+
1271
+ Download driver for Windows by running this command in a PowerShell window
1272
+
1273
+ ```
1274
+ Invoke-WebRequest -Uri "https://repo1.maven.org/maven2/org/apache/arrow/flight-sql-jdbc-driver/18.3.0/flight-sql-jdbc-driver-18.3.0.jar" -OutFile "C:\Program Files\Tableau\Drivers\flight-sql-jdbc-driver-18.3.0.jar"
1275
+ ```
1276
+
1277
+ ### Steps for Connecting
1278
+
1279
+ To create a Dremio source in Tableau Desktop:
1280
+
1281
+ 1. Open Tableau Desktop. Under the **To a Server** section in the **Connect** panel, click **More**.
1282
+ 2. Select **Dremio**. The **Dremio** connection dialog opens.
1283
+ 3. In the connection dialog, for the **Product** field, select **Dremio Software**.
1284
+ 4. For the **Server** field, specify the hostname or IP address of your Dremio coordinator node.
1285
+ 5. In the **Port** field, specify the port, if it differs from the default port, which is `31010`.
1286
+ 6. In the **Authentication** field, select **Username and Password** or **OAuth 2.0**.
1287
+ * If you selected **Username and Password**, in the **Username** and **Password** fields, specify your Dremio credentials. If you have a personal access token, specify your username and then paste the token into the **Password** field.
1288
+ * If you selected **OAuth 2.0**, specify one of these URLs in the **Dremio Authorization Server** field, replacing `<dremio-host>` with the hostname or IP address for your Dremio coordinator node:
1289
+ + If your Dremio cluster does not use SSL: `http://<dremio-host>:9047`
1290
+ + If your Dremio cluster does use SSL: `https://<dremio-host>:9047`
1291
+ 7. (Optional) If your Dremio cluster is configured for secure connections, select the **Require SSL** option.
1292
+ 8. (Optional for Tableau 2025.1+) If you are using the Arrow Flight SQL JDBC driver, in the **Advanced** tab, select the **Use Arrow Flight SQL Driver (preview)** option. Ensure that you have the Arrow Flight SQL JDBC driver downloaded.
1293
+ 9. (Optional) In the **Advanced** tab, specify the **Engine**, **Queue**, and **Tag**. For information about how these values are used, see [Workload Management](/current/admin/workloads/workload-management/).
1294
+ 10. Click **Sign In**.
1295
+
1296
+ ### Creating a Live Connection to a Dataset from Dremio
1297
+
1298
+ You can generate a Tableau Datasource (`.tds`) file that represents a live connection to a dataset that is in Dremio. No actual data is stored in this file, and you can think of it as a shortcut to a Tableau session with a preconfigured view of your data.
1299
+
1300
+ note
1301
+
1302
+ * The `.tds` file download option must be enabled for users to have access to this feature. To enable this feature, see Enabling the .tds file download.
1303
+
1304
+ To download a `.tds` file:
1305
+
1306
+ 1. On the Datasets page in Dremio, find the dataset you want to work with and open the Details panel for the dataset.
1307
+ 2. Click the button that displays the Tableau logo. Dremio downloads a `.tds` file to your system.
1308
+ 3. Open the `.tds` file.
1309
+ 4. Authenticate using your username and password. To authenticate using SSO, follow these steps:
1310
+ 1. Sign into your identity provider. You are taken to the sign-in screen only the first time that you log into Dremio during a session in Tableau.
1311
+ 2. Click **Accept** in the Authorize App dialog. This dialog appears only the first time that you authenticate from Tableau through your identity provider.
1312
+
1313
+ ## Tableau Server
1314
+
1315
+ Tableau Server includes a native connector that you can use to connect to Dremio.
1316
+
1317
+ ### Prerequisites for Using the Dremio JDBC Driver (Legacy)
1318
+
1319
+ To connect to Dremio, you'll need to install the Dremio JDBC driver. Download the Dremio JDBC driver and copy it to the `Drivers` folder.
1320
+
1321
+ Download driver for Windows by running this command in a PowerShell window
1322
+
1323
+ ```
1324
+ Invoke-WebRequest -Uri "https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar" -OutFile "C:\Program Files\Tableau\Drivers\dremio-jdbc-driver-LATEST.jar"
1325
+ ```
1326
+
1327
+ Download driver for Linux by running this command in a command-line window
1328
+
1329
+ ```
1330
+ curl -L https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar -o /opt/tableau/tableau_driver/jdbc/dremio-jdbc-driver-LATEST.jar
1331
+ ```
1332
+
1333
+ ### Prerequisites for Using the Arrow Flight SQL JDBC Driver
1334
+
1335
+ The Tableau Server 2025.1+ connector for Dremio supports Arrow Flight SQL JDBC in place of the Dremio JDBC driver (Legacy). To change the driver, download the Arrow Flight SQL JDBC driver, copy it to the `Drivers` folder, and select the **Use Arrow Flight SQL Driver (preview)** option in the **Advanced** tab of the connection dialog.
1336
+
1337
+ Download driver for Windows by running this command in a PowerShell window
1338
+
1339
+ ```
1340
+ Invoke-WebRequest -Uri "https://repo1.maven.org/maven2/org/apache/arrow/flight-sql-jdbc-driver/16.1.0/flight-sql-jdbc-driver-16.1.0.jar" -OutFile "C:\Program Files\Tableau\Drivers\flight-sql-jdbc-driver-16.1.0.jar"
1341
+ ```
1342
+
1343
+ Download driver for Linux by running this command in a command-line window
1344
+
1345
+ ```
1346
+ curl -L https://repo1.maven.org/maven2/org/apache/arrow/flight-sql-jdbc-driver/16.1.0/flight-sql-jdbc-driver-16.1.0.jar -o /opt/tableau/tableau_driver/jdbc/flight-sql-jdbc-driver-16.1.0.jar
1347
+ ```
1348
+
1349
+ ### Steps for Connecting
1350
+
1351
+ To create a Dremio source in Tableau Server:
1352
+
1353
+ 1. In a web browser, navigate to your Tableau Server site.
1354
+ 2. In your workbook, click **Add a Data Source**. Alternatively, you can [publish an existing data source](https://help.tableau.com/current/pro/desktop/en-us/publish_datasources.htm) to Tableau Server.
1355
+ 3. In the **Connect to Data** dialog, select **Dremio** under the **Connectors** tab.
1356
+ 4. In the connection dialog, for the **Product** field, select **Dremio Software**.
1357
+ 5. For the **Server** field, specify the hostname or IP address of your Dremio coordinator node.
1358
+ 6. For **Port**, enter the port if it differs from the default `31010` port.
1359
+ 7. In the **Authentication** field, select **Username and Password** or **OAuth 2.0**.
1360
+ * If you selected **Username and Password**, in the **Username** and **Password** fields, specify your Dremio credentials. If you have a personal access token, specify your username and then paste the token into the **Password** field.
1361
+ * If you selected **OAuth 2.0**, specify one of these URLs in the **Dremio Authorization Server** field, replacing `<dremio-host>` with the hostname or IP address for your Dremio coordinator node:
1362
+ + If your Dremio cluster does not use SSL: `http://<dremio-host>:9047`
1363
+ + If your Dremio cluster does use SSL: `https://<dremio-host>:9047`
1364
+ 8. (Optional) If your Dremio cluster is configured for secure connections, select the **Require SSL** option.
1365
+ 9. (Optional for Tableau 2025.1+) If you are using the Arrow Flight SQL JDBC driver, in the **Advanced** tab, select the **Use Arrow Flight SQL Driver (preview)** option. Ensure that you have the Arrow Flight SQL JDBC driver downloaded.
1366
+ 10. (Optional) In the **Advanced** tab, you can specify the **Engine**, **Queue**, and **Tag**.
1367
+ 11. Click **Sign In**.
1368
+
1369
+ ## Tableau Cloud
1370
+
1371
+ Tableau Cloud includes a native connector that you can use to connect to Dremio.
1372
+
1373
+ note
1374
+
1375
+ The Tableau Cloud 2025.1 connector for Dremio has an option to use the [Arrow Flight SQL JDBC](/cloud/sonar/client-apps/drivers/arrow-flight-sql-jdbc) driver in place of the Dremio JDBC driver to power the connection to Dremio. In the **Advanced** tab, select the **Use Arrow Flight SQL Driver (preview)** option.
1376
+
1377
+ ### Steps for Connecting
1378
+
1379
+ To create a Dremio source in Tableau Cloud:
1380
+
1381
+ 1. In a web browser, navigate to your Tableau Cloud site.
1382
+ 2. Click **New** > **Published Data Source** to create a reusable data source or **Data** > **Add a Data Source** from within a workbook. Alternatively, you can [publish an existing data source](https://help.tableau.com/current/pro/desktop/en-us/publish_datasources.htm) to Tableau Cloud.
1383
+ 3. In the **Connect to Data** dialog, select **Dremio** under the **Connectors** tab.
1384
+ 4. In the connection dialog, for the **Product** field, select **Dremio Software**.
1385
+ 5. For the **Server** field, specify the hostname or IP address of your Dremio coordinator node.
1386
+ 6. In the **Port** field, enter the port if it differs from the default `31010` port.
1387
+ 7. In the **Authentication** field, select **Username and Password** or **OAuth 2.0**.
1388
+ * If you selected **Username and Password**, in the **Username** and **Password** fields, specify your Dremio credentials. If you have a personal access token, specify your username and then paste the token into the **Password** field.
1389
+ * If you selected **OAuth 2.0**, specify one of these URLs in the **Dremio Authorization Server** field, replacing `<dremio-host>` with the hostname or IP address for your Dremio coordinator node:
1390
+ + If your Dremio cluster does not use SSL: `http://<dremio-host>:9047`
1391
+ + If your Dremio cluster does use SSL: `https://<dremio-host>:9047`
1392
+ 8. (Optional for Tableau 2025.1+) If you are using the Arrow Flight SQL JDBC driver, in the **Advanced** tab, select the **Use Arrow Flight SQL Driver (preview)** option.
1393
+ 9. (Optional) If your Dremio cluster is configured for secure connections, select the **Require SSL** option.
1394
+ 10. (Optional) In the **Advanced** tab, you can specify the **Engine**, **Queue**, and **Tag**.
1395
+ 11. Click **Sign In**.
1396
+ 12. If you're authenticating using SSO (OAuth 2.0), follow these steps:
1397
+ 1. Sign into your identity provider. You are taken to the sign-in screen only the first time that you log into Dremio during a session in Tableau Cloud.
1398
+ 2. Click **Accept** in the Authorize App dialog. This dialog appears only the first time that you authenticate from Tableau Cloud through your identity provider.
1399
+
1400
+ ## Advanced Configuration
1401
+
1402
+ ### Enabling the `.tds` File Download in the Dremio console
1403
+
1404
+ `ADMIN` privileges are required to make updates to this setting.
1405
+
1406
+ To enable users to download `.tds` files for datasets in Dremio, follow these steps:
1407
+
1408
+ 1. Click the Settings icon in the left sidebar of a project.
1409
+ 2. Select **Project Settings**.
1410
+ 3. Select **BI Applications**.
1411
+ 4. Select the **Tableau** tab.
1412
+ 5. Toggle the **Enable Tableau Desktop** setting on.
1413
+
1414
+ After the organization administrator completes these steps, refresh your browser window.
1415
+
1416
+ ### Enabling SSO to Dremio from Tableau Enterprise
1417
+
1418
+ SSO using OAuth 2.0 is supported by Tableau Desktop 2022.3 or later, Tableau Server, and Tableau Cloud.
1419
+
1420
+ Users of Tableau Desktop will use SSO authentication whether connecting directly to Dremio or connecting through a `.tds` file downloaded from Dremio. If you want to use SSO to authenticate when connecting to Dremio through a `.tds` file, ensure that SSO is enabled and configured for your Dremio cluster before the file is downloaded.
1421
+
1422
+ To enable SSO to Dremio from Tableau, ensure that your Dremio cluster has SSO configured with [Microsoft Entra ID](/current/security/authentication/identity-providers/microsoft-entra-id) or an [OIDC identity provider](/current/security/authentication/identity-providers/oidc) and follow these steps:
1423
+
1424
+ 1. For Tableau Server only, follow the configuration steps.
1425
+ 2. Follow the steps to enable SSO to Dremio from Tableau.
1426
+
1427
+ #### Configuring SSO for Tableau Server
1428
+
1429
+ To configure SSO using [OAuth for Tableau Server](https://tableau.github.io/connector-plugin-sdk/docs/oauth), follow these steps:
1430
+
1431
+ 1. Run the following command in the Tableau Services Manager (TSM) command line. Set a value for the `<tableau-server-domain-name-or-ip>`parameter, which is the domain name or IP of your Tableau Server deployment:
1432
+
1433
+ Configure OAuth for Tableau Server
1434
+
1435
+ ```
1436
+ tsm configuration set -k oauth.config.clients -v "[{\"oauth.config.id\":\"dremio\", \"oauth.config.client_id\":\"https\:\/\/connectors.dremio.app\/tableau\", \"oauth.config.client_secret\":\"test-client-secret\", \"oauth.config.redirect_uri\":\"https://<tableau-server-domain-name-or-ip>/auth/add_oauth_token\"}]" --force-keys
1437
+ ```
1438
+ 2. To apply the changes to Tableau Server, run the command `tsm pending-changes apply`.
1439
+
1440
+ #### Configuring Dremio
1441
+
1442
+ To enable SSO authentication to Dremio from Tableau:
1443
+
1444
+ 1. In the Dremio console, click the Settings icon and select the BI Applications page.
1445
+ 2. On the BI Applications page, click **Tableau**.
1446
+ 3. Ensure that **Enable single sign-on for Tableau** is toggled on.
1447
+ 4. **For Tableau Server only:** In the **Redirect URIs** field, paste in the redirect URI for your Tableau Server. If you have set up more than one Tableau Server, you can add multiple URIs, separating them with commas. Each URI uses this format, where `<tableau-server>` is the hostname or IP address of Tableau Server:
1448
+
1449
+ Redirect URI for Tableau Server
1450
+
1451
+ ```
1452
+ https://<tableau-server>/auth/add_oauth_token
1453
+ ```
1454
+
1455
+ #### Configuring an Identity Provider
1456
+
1457
+ Register an additional redirect URI: `https://<dremio-host>:xxxx/oauth/callback` or `http://<dremio-host>:xxxx/oauth/callback` in the SSO application configured in your identity provider. See the configuration instructions for [Microsoft Entra ID](/current/security/authentication/identity-providers/microsoft-entra-id#configuring-microsoft-entra-id) or [OpenID Identity Providers](/current/security/authentication/identity-providers/oidc#configuring-openid) for additional information.
1458
+
1459
+ ### Customizing the Connection String
1460
+
1461
+ To add JDBC parameters to the JDBC URL that Tableau generates for connections to Dremio using the parameters from the connection dialog, see [Use a Properties file to customize a JDBC connection](https://help.tableau.com/current/pro/desktop/en-us/connect_customize.htm#use-a-properties-file-to-customize-a-jdbc-connection) in the Tableau documentation.
1462
+
1463
+ ### Manually Installing the Dremio Connector
1464
+
1465
+ If you are previewing a feature that hasn't been released or you have been provided a `.taco` file with a fix that hasn't been released, you can manually install this version of the Dremio connector for temporary use.
1466
+
1467
+ To manually install the connector:
1468
+
1469
+ 1. Download the [`dremio.taco` file](https://download.dremio.com/tableau-connector/).
1470
+ 2. Move the `dremio.taco` file:
1471
+
1472
+ Copy dremio.taco file on macOS
1473
+
1474
+ ```
1475
+ cp <download-location>/dremio.taco ~/Library/Tableau/Connectors/
1476
+ ```
1477
+
1478
+ Copy dremio.taco file on Windows
1479
+
1480
+ ```
1481
+ copy C:\<download-location>\dremio.taco "C:\Program Files\Tableau\Connectors"
1482
+ ```
1483
+
1484
+ Move dremio.taco file for Linux (Tableau Server only)
1485
+
1486
+ ```
1487
+ mv <download-location>/dremio.taco /opt/tableau/connectors/dremio.taco
1488
+ ```
1489
+ 3. (Optional) If a new version of the Dremio JDBC driver is required, download it and copy it to Tableau Desktop's `Drivers` folder by running the following command:
1490
+
1491
+ Download driver for macOS
1492
+
1493
+ ```
1494
+ curl https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar -o -l ~/Library/Tableau/Drivers/dremio-jdbc-driver-LATEST.jar
1495
+ ```
1496
+
1497
+ Download driver for Windows
1498
+
1499
+ ```
1500
+ Invoke-WebRequest -Uri "https://download.dremio.com/jdbc-driver/dremio-jdbc-driver-LATEST.jar" -OutFile "C:\Program Files\Tableau\Drivers\dremio-jdbc-driver-LATEST.jar"
1501
+ ```
1502
+
1503
+ For Linux, download the driver from the [download site](https://download.dremio.com/jdbc-driver/?_ga=2.148321079.1016122501.1667783452-235854462.1630284576&_gac=1.263316990.1664550761.CjwKCAjwp9qZBhBkEiwAsYFsb0x4InlcRP7Rv4XsjamZQHhJILHJWOtBOu30xZC1QwvEXF8cPFs1HhoCB-kQAvD_BwE) and move it by using this command:
1504
+ Download driver for Linux (Tableau Server only)
1505
+
1506
+ ```
1507
+ mv <download-location>/dremio-jdbc-driver-LATEST.jar /opt/tableau/tableau_driver/jdbc/dremio-jdbc-driver-LATEST.jar
1508
+ ```
1509
+ 4. Now you can connect to Dremio from Tableau Desktop or Tableau Server.
1510
+
1511
+ ### Exporting a Dremio Dataset with SSL Placeholder
1512
+
1513
+ If you have SSL enabled on Dremio, and you want to export a `.tds` file to use in a Tableau application for quickly connecting to a dataset,
1514
+ you can do so by add the support key `export.tableau.extra-native-connection-properties` and set the value to `SSL=true`.
1515
+ This property allows you to set the JDBC connection string when exporting a `.tds` file. The default is an empty string. This is the only property currently supported for `export.tableau.extra-native-connection-properties`, and `true` is the only supported value.
1516
+
1517
+ To know how to set the `export.tableau.extra-native-connection-properties` support key, see [Support Keys](/current/help-support/support-settings/#support-keys).
1518
+
1519
+ #### Changing the Hostname
1520
+
1521
+ You can use the `export.bi.hostname` support key to change the default hostname of the SQL endpoint for generating TDS files.
1522
+
1523
+ To know how to set the `export.bi.hostname` support key, see [Support Keys](/current/help-support/support-settings/#support-keys).
1524
+
1525
+ #### Example: SSL setting
1526
+
1527
+ In the following example, SSL is enabled in the **dremio.conf** file. See [Using Wire Encryption](/current/what-is-dremio/architecture/encrypting-dremio/#odbcjdbc-client-encryption--enterprise-edition-only)
1528
+ for more information.
1529
+
1530
+ Example SSL settings for generating a self-signed certificate with JDBC Dremio config
1531
+
1532
+ ```
1533
+ services.coordinator.client-endpoint.ssl.enabled: true
1534
+ services.coordinator.client-endpoint.ssl.auto-certificate.enabled: true
1535
+ ```
1536
+
1537
+ #### Example: export.tableau.extra-native-connection-properties value
1538
+
1539
+ Example SSL property value
1540
+
1541
+ ```
1542
+ SSL=true
1543
+ ```
1544
+
1545
+ ## Limitations
1546
+
1547
+ * When using Tableau with Dremio, avoid using periods in space or dataset names. Due to differences in hierarchy support, periods in paths are treated as separators, resulting in errors when navigating or selecting spaces or datasets with periods in their names.
1548
+
1549
+ Was this page helpful?
1550
+
1551
+ [Previous
1552
+
1553
+ SAP Business Objects](/current/client-applications/business-objects)[Next
1554
+
1555
+ ThoughtSpot](/current/client-applications/thoughtspot)
1556
+
1557
+ * Supported Tableau Versions
1558
+ * Supported Authentication Methods
1559
+ * Tableau Desktop
1560
+ + Prerequisites for Using the Dremio JDBC Driver (Legacy)
1561
+ + Prerequisites for Using the Arrow Flight SQL JDBC Driver
1562
+ + Steps for Connecting
1563
+ + Creating a Live Connection to a Dataset from Dremio
1564
+ * Tableau Server
1565
+ + Prerequisites for Using the Dremio JDBC Driver (Legacy)
1566
+ + Prerequisites for Using the Arrow Flight SQL JDBC Driver
1567
+ + Steps for Connecting
1568
+ * Tableau Cloud
1569
+ + Steps for Connecting
1570
+ * Advanced Configuration
1571
+ + Enabling the `.tds` File Download in the Dremio console
1572
+ + Enabling SSO to Dremio from Tableau Enterprise
1573
+ + Customizing the Connection String
1574
+ + Manually Installing the Dremio Connector
1575
+ + Exporting a Dremio Dataset with SSL Placeholder
1576
+ * Limitations
1577
+
1578
+ ---
1579
+
1580
+ # Source: https://docs.dremio.com/current/client-applications/thoughtspot
1581
+
1582
+ Version: current [26.x]
1583
+
1584
+ On this page
1585
+
1586
+ # ThoughtSpot
1587
+
1588
+ You can use [ThoughtSpot](https://www.thoughtspot.com/) to search directly against your data in Dremio for live analytics and actionable insights.
1589
+
1590
+ ## Supported Versions
1591
+
1592
+ Dremio supports ThoughtSpot cloud 8.3 and ThoughtSpot software 7.2.1.
1593
+
1594
+ ## Supported Authentication Methods
1595
+
1596
+ You can use your Dremio username and password.
1597
+
1598
+ ## Creating a Connection
1599
+
1600
+ note
1601
+
1602
+ While you're using the connection, the data fields that you create, modify, and delete in Dremio are reflected as table columns in ThoughtSpot. To account for new or outdated fields, you will need to go back into the data connection to check or uncheck the columns that you want added or removed on the Select Tables page.
1603
+
1604
+ 1. Log into ThoughtSpot.
1605
+ 2. Go to **Data** > **Connections** > **Add Connection**.
1606
+ 3. On the Choose Your Data Warehouse page, specify your data connection details:
1607
+
1608
+ a. In the **Name your connection** field, enter a name.
1609
+
1610
+ b. (Optional) In the **Describe your connection** field, enter a brief description.
1611
+
1612
+ c. For the **Choose your data warehouse** field, select **Dremio**.
1613
+ 4. Click **Continue**.
1614
+ 5. On the Dremio Connection Details page, specify your account credentials:
1615
+
1616
+ a. To provide your Dremio username and password for authentication, select **Use Service Account**.
1617
+
1618
+ b. In the **Host** field, enter the IP address for one of the coordinator nodes in your cluster.
1619
+
1620
+ c. In the **Port** field, enter 31010.
1621
+
1622
+ d. In the **User** field, enter your username.
1623
+
1624
+ e. In the **Password** field, enter your password.
1625
+ 6. Click **Continue**.
1626
+ 7. On the Select Tables page, you can see all the data tables and views from Dremio. To select tables and columns from that list, select a table and check the boxes next to the columns for that table.
1627
+ 8. Click **Create Connection**.
1628
+ 9. In the **Create Connection** dialog, click **Confirm**.
1629
+
1630
+ Was this page helpful?
1631
+
1632
+ [Previous
1633
+
1634
+ Tableau](/current/client-applications/tableau)[Next
1635
+
1636
+ Drivers](/current/client-applications/drivers/)
1637
+
1638
+ * Supported Versions
1639
+ * Supported Authentication Methods
1640
+ * Creating a Connection
1641
+
1642
+ ---
1643
+
1644
+ # Source: https://docs.dremio.com/current/client-applications/drivers/
1645
+
1646
+ Version: current [26.x]
1647
+
1648
+ # Drivers
1649
+
1650
+ Dremio provides Arrow Flight SQL ODBC and JDBC drivers:
1651
+
1652
+ * [Arrow Flight SQL ODBC](/current/client-applications/drivers/arrow-flight-sql-odbc-driver)
1653
+ * [Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver)
1654
+
1655
+ Dremio also supports the [Dremio JDBC driver (Legacy)](/current/client-applications/drivers/jdbc).
1656
+
1657
+ Was this page helpful?
1658
+
1659
+ [Previous
1660
+
1661
+ ThoughtSpot](/current/client-applications/thoughtspot)[Next
1662
+
1663
+ Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver)
1664
+
1665
+ ---
1666
+
1667
+ # Source: https://docs.dremio.com/current/client-applications/dbvisualizer-legacy
1668
+
1669
+ Version: current [26.x]
1670
+
1671
+ On this page
1672
+
1673
+ # DbVisualizer
1674
+
1675
+ You can use the legacy Dremio JDBC driver to run [DbVisualizer](https://www.dbvis.com/), a SQL runner that works with any JDBC-compliant data source.
1676
+
1677
+ ## Supported Versions
1678
+
1679
+ You can use any version of DbVisualizer, if you use the legacy Dremio JDBC Driver 14.0.0 or later.
1680
+
1681
+ ## Supported Authentication Methods
1682
+
1683
+ You can use your Dremio username and password, or you can use a personal access token (PAT) that you obtained from Dremio.
1684
+
1685
+ ## Prerequisites
1686
+
1687
+ * Download the [legacy Dremio JDBC driver](/current/client-applications/drivers/jdbc/).
1688
+ * If you want to authenticate your connection to Dremio by using a personal access token, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat) for the steps to obtain one.
1689
+
1690
+ ## Connecting to Dremio
1691
+
1692
+ 1. Add the legacy Dremio JDBC Driver to DbVisualizer's Driver Manager. You need to do this only once, and can skip this step if DbVisualizer already lists this driver in its Driver Manager dialog:
1693
+
1694
+ a. In the menubar, select **Tools** > **Driver Manager**.
1695
+
1696
+ b. In the **Driver Name** list of the **Driver Manager** dialog, select **Dremio**.
1697
+
1698
+ c. Click the folder icon to find and select the downloaded Dremio JDBC driver.
1699
+
1700
+ d. Close the **Driver Manager** dialog.
1701
+ 2. Create a connection to Dremio:
1702
+
1703
+ a. In the menubar, select **Database** > **Create Database Connection**.
1704
+
1705
+ b. Double-click **Dremio** in the **Driver Name** list.
1706
+
1707
+ c. Name the connection.
1708
+
1709
+ d. Ensure that these default values are set:
1710
+
1711
+ | Field | Value |
1712
+ | --- | --- |
1713
+ | **Settings Format** | Server Info |
1714
+ | **Connection Type** | Direct |
1715
+ | **Database Port** | 31010 |
1716
+
1717
+ e. In the **Database Server** field, specify the hostname of your coordinator node.
1718
+
1719
+ f. In the **Database Userid** and **Database Password** fields, specify your authentication credentials:
1720
+
1721
+ * To use a personal access token that you obtained from Dremio:
1722
+
1723
+ 1. In the **Database Userid** field, specify the username for which the PAT was generated.
1724
+ 2. In the **Database Password** field, paste your personal access token.
1725
+ * To use your Dremio username and password:
1726
+
1727
+ 1. In the **Database Userid** field, specify your username.
1728
+ 2. In the **Database Password** field, your password.
1729
+
1730
+ g. (Optional) Click **Ping Server** to test the connection.
1731
+
1732
+ h. Click **Finish**.
1733
+
1734
+ DbVisualizer creates the connection and opens it.
1735
+
1736
+ Was this page helpful?
1737
+
1738
+ [Previous
1739
+
1740
+ Dremio JDBC Driver (Legacy)](/current/client-applications/drivers/jdbc)[Next
1741
+
1742
+ Accelerate Queries](/current/acceleration/)
1743
+
1744
+ * Supported Versions
1745
+ * Supported Authentication Methods
1746
+ * Prerequisites
1747
+ * Connecting to Dremio
1748
+
1749
+ ---
1750
+
1751
+ # Source: https://docs.dremio.com/current/client-applications/microsoft-excel/microsoft-excel-powerpivot
1752
+
1753
+ Version: current [26.x]
1754
+
1755
+ On this page
1756
+
1757
+ # Microsoft Excel PowerPivot
1758
+
1759
+ ## Prerequisites
1760
+
1761
+ * Ensure that you are using Dremio v22.0 or later.
1762
+ * Ensure that your operating system is 64-bit Windows 10 or later.
1763
+ * Download, install, and configure the [Arrow Flight SQL ODBC driver](/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
1764
+ * If you want to authenticate to Dremio by using a personal access token (PAT), rather than by using a password, generate a PAT. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for the steps.
1765
+
1766
+ ## Updating the DSN Configuration
1767
+
1768
+ 1. Launch ODBC Data Sources on your Windows system.
1769
+ 2. Select the **System DSN** tab.
1770
+ 3. Select the DSN entry that you created when you configured the Arrow Flight SQL ODBC driver.
1771
+ 4. Click **Configure**.
1772
+ 5. In the **Advanced Properties** section, add the following key/value pair:
1773
+ * **Key:** quoting
1774
+ * **Value:** BRACKET
1775
+
1776
+ ## Connecting to Dremio
1777
+
1778
+ 1. Open Excel.
1779
+ 2. Click the **Power Pivot** tab and then click **Manage**.
1780
+ 3. Select **From Other Sources**.
1781
+ 4. In the Table Import Wizard, select **Others (OLEDB/ODBC)**.
1782
+ 5. Click **Next**.
1783
+ 6. Click **Build**.
1784
+ 7. In the Data Link Properties dialog, follow these steps:
1785
+
1786
+ a. On the **Provider** tab, select **Microsoft OLE DB Provider for ODBC Drivers**.
1787
+
1788
+ b. Click **Next>>**.
1789
+
1790
+ c. For step 1 on the **Connection** tab, select **Use data source name**, and then select the data source name for the Arrow Flight SQL ODBC driver.
1791
+
1792
+ d. For step 2 on the **Connection** tab, specify the username to use for connections to Dremio, then specify either a password or a personal access token to use with the username.
1793
+
1794
+ e. (Optional) Click **Test Connection** to find out whether the info you specified on this tab is correct.
1795
+
1796
+ f. Click **OK**.
1797
+ 8. (Optional) Click **Test Connection** to find out whether you can connect to Dremio.
1798
+ 9. Click **Next**.
1799
+ 10. Ensure that the option **Select from a list of tables and views to choose the data to import**.
1800
+ 11. Click **Next**.
1801
+ 12. Select the tables and views that you want to import data from.
1802
+ 13. Click **Finish**.
1803
+
1804
+ Was this page helpful?
1805
+
1806
+ [Previous
1807
+
1808
+ Microsoft Excel](/current/client-applications/microsoft-excel/)[Next
1809
+
1810
+ Microsoft Power BI](/current/client-applications/microsoft-power-bi/)
1811
+
1812
+ * Prerequisites
1813
+ * Updating the DSN Configuration
1814
+ * Connecting to Dremio
1815
+
1816
+ ---
1817
+
1818
+ # Source: https://docs.dremio.com/current/client-applications/microsoft-power-bi
1819
+
1820
+ Version: current [26.x]
1821
+
1822
+ On this page
1823
+
1824
+ # Microsoft Power BI
1825
+
1826
+ Connect [Microsoft Power BI](https://www.microsoft.com/en-us/power-platform/products/power-bi) to visualize your data and create reports.
1827
+
1828
+ You can connect Power BI to Dremio in one of the following ways:
1829
+
1830
+ * Configure a reusable connection to use in Power BI Desktop, Power BI Gateway, or Power BI Service. Power BI Service can connect to Dremio through DirectQuery or through Power BI Gateway.
1831
+ * Connect to a specific dataset by downloading the `.pbids` file from Dremio and opening it in Power BI Desktop.
1832
+
1833
+ ## Supported Authentication Methods
1834
+
1835
+ From Power BI, you can authenticate to Dremio with one of the following methods:
1836
+
1837
+ * **Username and password**: Use your Dremio credentials.
1838
+ * **Personal access token (PAT)**: For details, see [Personal Access Tokens](/current/security/authentication/personal-access-tokens/).
1839
+ * **Single sign-on (SSO) through OAuth 2.0**: For steps on how to configure SSO, see Enable SSO to Dremio from Power BI.
1840
+
1841
+ ## Connect to Dremio from Power BI
1842
+
1843
+ The Power BI connector for Dremio now supports connectivity through the open-source [Arrow Database Connectivity (ADBC) driver](https://arrow.apache.org/docs/format/ADBC.html), which Dremio highly recommends using to connect to Dremio. To enable reports to use ADBC, see Enable Connectivity with ADBC.
1844
+
1845
+ Existing connections will continue to work, but we recommend using the embedded ADBC driver for all new reports and migrating existing reports to ADBC to benefit from improved performance and supportability.
1846
+
1847
+ To connect to Dremio from Power BI Desktop:
1848
+
1849
+ 1. Click **Get data**, search for `Dremio`, select **Dremio Software**, and click **Connect**.
1850
+ 2. In the Dremio Software dialog, follow these steps:
1851
+
1852
+ a. Use the Flight SQL ADBC driver and in the **Server** field specify your Dremio hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
1853
+
1854
+ b. (Optional) Complete the other fields in the dialog as you normally would.
1855
+
1856
+ c. Under **Data Connectivity mode**, select either **Import** or **DirectQuery**. Click **OK**.
1857
+
1858
+ d. For **Authentication Method**, select **Basic** or **Key**.
1859
+
1860
+ * **Basic**: Enter your Dremio username and password.
1861
+ * **Key**: Paste in the personal access token you obtained from Dremio. For details, see [Personal Access Tokens](/current/security/authentication/personal-access-tokens/).
1862
+ 3. Click **Connect**.
1863
+
1864
+ note
1865
+
1866
+ Creating Dataflows through Power BI Service is also supported. To create a dataflow, click **New** > **Dataflow**. For the data source connection, follow the steps above.
1867
+
1868
+ ### Create a Live Connection to a Dataset from Dremio
1869
+
1870
+ You can generate a Microsoft Power BI Data Source (`.pbids`) file that represents a live connection to a dataset that is in Dremio. No actual data is stored in this file, and you can think of it as a shortcut to a Power BI Desktop session with a preconfigured view of your data.
1871
+
1872
+ note
1873
+
1874
+ The `.pbids` file download option must be enabled for users to have access to this feature. To enable this feature, see Enable the `.pbids` file download.
1875
+
1876
+ To create a live connection to a dataset:
1877
+
1878
+ 1. In Dremio, navigate to the dataset.
1879
+ 2. Click the ellipsis (**...**) next to the dataset name.
1880
+ 3. Select **Download .pbids file**.
1881
+ 4. Open the downloaded file in Power BI Desktop.
1882
+ 5. Authenticate using your preferred method.
1883
+
1884
+ ## Power BI Gateway
1885
+
1886
+ To enable Power BI users to connect to Dremio via Power BI Gateway:
1887
+
1888
+ 1. Install and configure [Power BI Gateway](https://docs.microsoft.com/en-us/power-bi/connect-data/service-gateway-onprem) on a machine that can connect to your Dremio cluster.
1889
+ 2. In the Power BI Gateway configuration, add Dremio as a data source using the same connection details as above.
1890
+
1891
+ ## Advanced Configuration
1892
+
1893
+ ### Enable Connectivity with ADBC
1894
+
1895
+ Dremio supports connectivity through Arrow Database Connectivity (ADBC). To enable this for Power BI Service, see the following options.
1896
+
1897
+ #### Enable the ADBC Option for a New Connection
1898
+
1899
+ 1. In Power BI Desktop, click **Get data**.
1900
+ 2. In the Get Data dialog, locate and select **Dremio Software**, and click **Connect**.
1901
+ 3. In the Dremio Software dialog, in the **Server** field, specify your hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
1902
+ 4. (Optional) Complete the other fields in the dialog as you normally would.
1903
+ 5. Click **OK**.
1904
+ 6. Authenticate using your preferred method, and click **Connect**.
1905
+
1906
+ #### Enable the ADBC Option for an Existing Connection
1907
+
1908
+ 1. In Power BI Desktop, go to **Data source settings**, select your source, and click **Change source**.
1909
+ 2. In the Dremio Software dialog, update the **Server** field by adding the `adbc://` prefix before the hostname. Example: `adbc://acme-company.dremio.com`. If you're unable to edit the source this way, click **Transform data**, then click **Advanced Editor** in the **Home** tab. In the dialog that appears, update the hostname/server with the `adbc://` prefix, and click **Done**.
1910
+ 3. Click **OK**.
1911
+ 4. Reauthenticate using your preferred method, and click **Connect**.
1912
+
1913
+ ### Enable the `.pbids` File Download in the Dremio Console
1914
+
1915
+ To enable the `.pbids` file download feature:
1916
+
1917
+ 1. In Dremio, go to **Admin** > **Settings**.
1918
+ 2. In the **Support** section, enable **Allow downloading of .pbids files**.
1919
+ 3. Click **Save**.
1920
+
1921
+ ### Enable SSO to Dremio from Power BI
1922
+
1923
+ SSO is supported only for datasets that use DirectQuery.
1924
+
1925
+ note
1926
+
1927
+ SSO only works for reports created using the Dremio Cloud connector in Power BI Desktop. Reports created with the Dremio Software connector cannot use SSO by simply changing credentials, they must be converted first.
1928
+
1929
+ To convert existing reports from the Dremio Software connector to the Dremio Cloud connector, you'll need to modify the connection in Power BI's Advanced Editor to change the function from `Dremio.Databases` to `DremioCloud.DatabasesByServerV370`.
1930
+
1931
+ Prerequisites: Configure Dremio for Microsoft Entra ID
1932
+
1933
+ Before enabling SSO for Power BI reports, Dremio must be configured to use Microsoft Entra ID (Azure AD) as an identity provider.
1934
+
1935
+ **Required configuration:**
1936
+
1937
+ * Set `services.coordinator.web.auth.type` to the Microsoft Entra ID / OIDC provider type configured for your deployment (for example, `azuread`)
1938
+ * Provide the required OIDC or Azure AD configuration file (`azuread.json` or equivalent)
1939
+ * Deploy configuration files to all coordinator nodes
1940
+ * Restart Dremio cluster after applying changes
1941
+
1942
+ For complete setup steps, see [Configure Microsoft Entra ID](/current/security/authentication/identity-providers/microsoft-entra-id/).
1943
+
1944
+ note
1945
+
1946
+ All authentication setup must be done through configuration files before enabling SSO in Power BI.
1947
+
1948
+ The following steps configure the Power BI side of SSO. These steps assume your Dremio deployment is already configured to authenticate users via Microsoft Entra ID.
1949
+
1950
+ To enable SSO for Power BI reports:
1951
+
1952
+ #### Enable SSO for a DirectQuery Report
1953
+
1954
+ To enable SSO for a report that uses DirectQuery:
1955
+
1956
+ 1. In Power BI Service, open the workspace to which you published the report.
1957
+ 2. Find the dataset that is associated with the report, click the three dots next to its name, and select **Settings**.
1958
+ 3. In the settings for the dataset, expand **Data source credentials**.
1959
+ 4. Click **Edit credentials**.
1960
+ 5. For **Authentication method**, select **OAuth2**.
1961
+ 6. In the **Privacy level setting for this data source** field, ensure that **Private** is selected.
1962
+ 7. Select the check box **Report viewers can only access this data source with their own Power BI identities using DirectQuery**.
1963
+ 8. Click **Sign in**.
1964
+
1965
+ #### Enable SSO for Reports with Power BI Gateway
1966
+
1967
+ To enable SSO when you are using Power BI Gateway:
1968
+
1969
+ 1. In Power BI Service, open the workspace to which you published the report.
1970
+ 2. Find the dataset that is associated with the report, click the three dots next to its name, and select **Settings**.
1971
+ 3. In the settings for the dataset, expand **Gateway connection**.
1972
+ 4. Recreate your data source by following these steps:
1973
+
1974
+ 1. Select the **Maps to** field.
1975
+ 2. Select **Manually add to gateway**.
1976
+ 3. For **Data Source Name**, enter a name for the data source.
1977
+ 4. For **Data Source Type**, select **Dremio Software**.
1978
+ 5. For **Server**, enter your Dremio hostname with the `adbc://` prefix. Example: `adbc://acme-company.dremio.com`
1979
+ 6. For **Authentication Method**, select **OAuth2**.
1980
+ 7. Click **Add**.
1981
+ 5. In the **Data source credentials** section, click **Edit credentials**.
1982
+ 6. For **Authentication method**, select **OAuth2**.
1983
+ 7. In the **Privacy level setting for this data source** field, ensure that **Private** is selected.
1984
+ 8. Select the check box **Report viewers can only access this data source with their own Power BI identities using DirectQuery**.
1985
+ 9. Click **Sign in**.
1986
+
1987
+ note
1988
+
1989
+ SSO requires the OAuth2 authentication method. Basic authentication and personal access tokens do not support SSO when used through Power BI Gateway.
1990
+
1991
+ ## Arrow Database Connectivity (ADBC) Limitations
1992
+
1993
+ * ADBC is not enabled by default. It must be enabled by the owner of the report.
1994
+ * NativeQuery is not supported.
1995
+ * Metadata calls are not cached.
1996
+ * Power BI Desktop occasionally caches errors that might affect future connection attempts until the cache is cleared.
1997
+ * Complex data types such as `MAP` and `INTERVAL` are not supported.
1998
+ * When using DirectQuery, chaining functions is supported, but some complex scenarios may not work as expected. Complex optional parameters for functions are not supported.
1999
+
2000
+ ## Troubleshoot Power BI
2001
+
2002
+ ### Cached Data Issues
2003
+
2004
+ If you have previously installed older versions of Power BI Desktop, cached data may interfere with the newer versions of the Flight SQL drivers resulting in connection errors.
2005
+
2006
+ #### Problem
2007
+
2008
+ For example, when using Flight SQL ADBC, cached connection data in Power BI could cause the following errors:
2009
+
2010
+ * `ADBC: IOError [] [FlightSQL] [FlightSQL] unresolved address (Unavailable; GetObjects(GetDBSchemas))`
2011
+ * `ADBC: IOError [] [FlightSQL] [FlightSQL] connection error: desc = "transport: authentication handshake failed: credentials: cannot check peer: missing selected ALPN property. If you upgraded from a grpc-go version earlier than 1.67, your TLS connections may have stopped working due to ALPN enforcement. For more details, see: https://github.com/grpc/grpc-go/issues/434" (Unavailable; GetObjects(GetDBSchemas))"`
2012
+
2013
+ #### Solution
2014
+
2015
+ Clear the Power BI Desktop cache and any cached data source permissions involving Dremio connections by following these steps:
2016
+
2017
+ 1. [Clear Power BI Desktop Caches](https://community.fabric.microsoft.com/t5/Desktop/How-to-clear-cache-in-Power-BI-Desktop/m-p/853389#M409501).
2018
+ 2. In Power BI Desktop, go to **File** > **Options and Settings** > **Data Source Settings**.
2019
+ 3. Select **Global Permissions**.
2020
+ 4. Clear all cached connections by clicking **Clear All Permissions**, or select specific Dremio data sources and click **Clear Permissions**.
2021
+
2022
+ After completing these steps, try reconnecting to Dremio using the instructions above.
2023
+
2024
+ ### Large Result Sets
2025
+
2026
+ #### Problem
2027
+
2028
+ When fetching data from Dremio with ADBC you may see the following error:
2029
+
2030
+ * `Unexpected error: [FlightSQL] grpc: received message larger than max (43747370 vs. 16777216) (ResourceExhausted; DoGet: endpoint 0: [])`
2031
+
2032
+ #### Solution
2033
+
2034
+ By default, the ADBC driver accepts only messages up to 16 MiB in size. This can be fixed by updating the Power BI M expression to customize the connection as follows:
2035
+
2036
+ ```
2037
+ let
2038
+ Source = DremioCloud.DatabasesByServerV370("your-server-here", [
2039
+ MaxMessageSize = 67108864 // 64 MiB
2040
+ ])
2041
+ in
2042
+ Source
2043
+ ```
2044
+
2045
+ Replace `your-server-here` with your actual Dremio server address. The `MaxMessageSize` parameter sets the maximum message size in bytes (67108864 = 64 MiB).
2046
+
2047
+ Was this page helpful?
2048
+
2049
+ [Previous
2050
+
2051
+ Microsoft Excel PowerPivot](/current/client-applications/microsoft-excel/microsoft-excel-powerpivot)[Next
2052
+
2053
+ Microstrategy Workstation](/current/client-applications/microstrategy)
2054
+
2055
+ * Supported Authentication Methods
2056
+ * Connect to Dremio from Power BI
2057
+ + Create a Live Connection to a Dataset from Dremio
2058
+ * Power BI Gateway
2059
+ * Advanced Configuration
2060
+ + Enable Connectivity with ADBC
2061
+ + Enable the `.pbids` File Download in the Dremio Console
2062
+ + Enable SSO to Dremio from Power BI
2063
+ * Arrow Database Connectivity (ADBC) Limitations
2064
+ * Troubleshoot Power BI
2065
+ + Cached Data Issues
2066
+ + Large Result Sets
2067
+
2068
+ ---
2069
+
2070
+ # Source: https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-jdbc-driver
2071
+
2072
+ Version: current [26.x]
2073
+
2074
+ On this page
2075
+
2076
+ # Arrow Flight SQL JDBC
2077
+
2078
+ The Arrow Flight SQL JDBC driver is an open-source driver that is based on the specifications for the Java Database Connectivity (JDBC) API. However, the Flight SQL JDBC driver uses Apache Arrow, so it is able to move large amounts of data faster, in part because it does not need to serialize and then deserialize data.
2079
+
2080
+ This driver solves a problem that is common to many BI tools that access databases through JDBC. These tools bundle a different JDBC driver for each type of database they support, because each of these databases has their own proprietary driver. Bundling multiple JDBC drivers for multiple databases can be difficult to maintain, and responding to support issues for multiple drivers can be costly. Now, provided that a database has an Apache Arrow Flight SQL endpoint enabled, the JDBC driver can connect to it.
2081
+
2082
+ This driver is developed and maintained by the Apache Arrow community. For full technical documentation, see Apache's [Arrow Flight SQL JDBC Driver](https://arrow.apache.org/docs/java/flight_sql_jdbc_driver.html). For Dremio-specific compatibility, version guidance, and release notes, see Dremio's [Arrow Flight SQL JDBC Release Notes](/current/release-notes/arrow-flight-sql-jdbc).
2083
+
2084
+ This driver is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
2085
+
2086
+ tip
2087
+
2088
+ Query planning is done on the specified node. To distribute query planning for JDBC connections, configure [secondary coordinator nodes](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/#dremio-coordinators) for your deployment.
2089
+
2090
+ ## Prerequisites
2091
+
2092
+ * One of the following operating systems: Windows, MacOS, or Linux
2093
+ * Supported Java versions: Java 11+
2094
+ * Supported JDK versions: 11, 17, and 21
2095
+ * Requires the following option to be present:
2096
+
2097
+ Java 11+ Requirement
2098
+
2099
+ ```
2100
+ --add-opens=java.base/java.nio=ALL-UNNAMED
2101
+ ```
2102
+
2103
+ ## Supported Authentication Methods
2104
+
2105
+ * Use the username and password of the Dremio account that you want to connect with.
2106
+ * Use a username and personal access token (PAT).
2107
+ * Use an OAuth Access Token
2108
+
2109
+ ### Username and Password
2110
+
2111
+ Pass a username and password with the `user` and `password` properties.
2112
+
2113
+ ### Personal Access Tokens Enterprise
2114
+
2115
+ Pass a username and personal access token (PAT) with the `user` and `password` properties. You must URL-encode PATs that you include in JDBC URLs. To encode a PAT locally on your system, you can follow the steps in URL-encoding Values. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for enabling and creating PATs.
2116
+
2117
+ tip
2118
+
2119
+ Dremio recommends OAuth access tokens to improve security by reducing the risk of compromised passwords or personal access tokens.
2120
+
2121
+ ### OAuth Access Tokens Enterprise
2122
+
2123
+ To create a connection with an OAuth access token, configure the following properties:
2124
+
2125
+ * `token` property with the vaue of the OAuth access token.
2126
+ * `user` property with the empty string `""` to default to the username included in the access token. If the username is configured in the property value, it must match the username in the access token.
2127
+
2128
+ Example Arrow Flight SQL JDBC Connection Using OAuth Access Token
2129
+
2130
+ ```
2131
+ import jaydebeapi
2132
+ jdbc_arrow_flight_url = "jdbc:arrow-flight-sql://{}:{}".format("localhost", 32010)
2133
+ jdbc_arrow_flight_args = { "user": "", "token": dremio_access_token }
2134
+ jdbc_driver_location_example = "/Users/me/workspace/drivers/flight-sql-jdbc-driver-18.3.0.jar"
2135
+ jdbc_arrow_flight_conn = jaydebeapi.connect("org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver",
2136
+ jdbc_arrow_flight_url,
2137
+ jdbc_arrow_flight_args,
2138
+ jdbc_driver_location_example)
2139
+ ```
2140
+
2141
+ Users can create OAuth access tokens using a local or LDAP username and password, a PAT, or an external JWT. Dremio provides [sample code](/current/reference/api/oauth-token/) for each of these cases.
2142
+
2143
+ ## Connecting to Databases
2144
+
2145
+ * Use this template to create a direct connection to a database that has enabled an Apache Arrow Flight SQL endpoint:
2146
+
2147
+ Create direct connection to database
2148
+
2149
+ ```
2150
+ jdbc:arrow-flight-sql://<hostname-or-IP-address>:<port-number>/?useEncryption=false[&schema=<optional_schema>][&<properties>]
2151
+ ```
2152
+
2153
+ + `<optional_schema>`: The name of the schema (datasource or space, including child paths, such as `myDatasource.folder1` and `mySpace.folder1.folder2`) to use by default when a schema is not specified in a query.
2154
+ + `<properties>`: A list of JDBC properties. Values must be URI-encoded.
2155
+ * Use this template to create a direct connection to a Dremio coordinator node:
2156
+
2157
+ Create direct connection to Dremio coordinator node
2158
+
2159
+ ```
2160
+ jdbc:arrow-flight-sql://<Dremio_coordinator>:32010[/?schema=<optional_schema>][&<properties>]
2161
+ ```
2162
+
2163
+ + `<Dremio_coordinator>`: The hostname or IP address of the coordinator node in your Dremio cluster.
2164
+ + `<optional_schema>`: The name of the schema (datasource or space, including child paths, such as `myDatasource.folder1` and `mySpace.folder1.folder2`) to use by default when a schema is not specified in a query.
2165
+ + `<properties>`: A list of JDBC properties. Values must be URL-encoded. See URL-encoding Values for suggested steps.
2166
+
2167
+ ## Downloading the Driver
2168
+
2169
+ To download the driver, go to [Apache Arrow Flight SQL JDBC](https://www.dremio.com/drivers/jdbc/).
2170
+
2171
+ ## Integrating the driver
2172
+
2173
+ To integrate the driver into your development environment, add it to your classpath.
2174
+
2175
+ ## Name of the Class
2176
+
2177
+ The name of the class is `org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver`.
2178
+
2179
+ ## JDBC Properties for Dremio Wire Encryption
2180
+
2181
+ If you are setting up encrypted communication between your JDBC client applications and the Dremio server, use the SSL JDBC connection parameters and fully qualified hostname to
2182
+ configure the JDBC connection string and connect to Dremio.
2183
+
2184
+ note
2185
+
2186
+ This driver does not yet support these features:
2187
+
2188
+ * Disabling host verification
2189
+ * Impersonation
2190
+
2191
+ | Properties | Value | Required | Description |
2192
+ | --- | --- | --- | --- |
2193
+ | `useEncryption` | `true` or `false` | [Optional] | If `true`, SSL is enabled. If set to `false`, SSL is not enabled. The default is `true`. If you do not want to use encryption, you must set the value to `false`. |
2194
+ | `disableCertificateVerification` | `true` or `false` | [Optional] | If `true`, Dremio does not verify the host certificate against the truststore. The default value is `false`. |
2195
+ | `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`. |
2196
+ | `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. |
2197
+ | `useSystemTrustStore` | `true` or `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](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/local-machine-and-current-user-certificate-stores) on Windows, and default truststore on other operating systems. If you are using an operating system other than MacOS or Windows, you must use the `trustStorePassword` property to pass the password of the truststore. Here is an example of a connection string for Linux: `jdbc:arrow-flight-sql://localhost:32010?trustStorePassword=Pc0_lL'Opjn$vSDcv:%Q0@@buc` |
2198
+ | `trustStorePassword` | string | [Optional] | Password to the truststore. |
2199
+
2200
+ ## Parameterized Queries with Prepared Statements
2201
+
2202
+ Prepared statements allow you to dynamically pass parameters to SQL queries using placeholders, ensuring safer query execution by separating the query structure from the values in parameters. With a prepared statement, you can set parameters (`?`) at runtime using set methods to reuse queries with different values.
2203
+
2204
+ note
2205
+
2206
+ This feature requires Apache Arrow 18.3.0 or later. It supports `SELECT` statements and `DML` statements.
2207
+
2208
+ To use parameterized queries with prepared statements, follow these steps:
2209
+
2210
+ 1. Use the `prepareStatement()` method to define a query with parameters, which act as placeholders for dynamic values.
2211
+ 2. Set the values by replacing each parameter with a value using the appropriate set methods.
2212
+ 3. Ensure all parameters are set before running the query, with indexing starting at 1. If parameters are not set before running the query, JBDC throws an exception.
2213
+ 4. Call `executeQuery()` to run the SELECT query and retrieve results, or `executeUpdate()` to run the DML query and retrieve the count of modified records.
2214
+
2215
+ Java examples for SELECT and DML queries
2216
+
2217
+ ```
2218
+ PreparedStatement preparedStatement = connection.prepareStatement(
2219
+ "SELECT * FROM employees WHERE department = ? AND salary > ?");
2220
+ preparedStatement.setString(1, "Engineering");
2221
+ preparedStatement.setDouble(2, 75000);
2222
+ ResultSet resultSet = preparedStatement.executeQuery();
2223
+
2224
+
2225
+ PreparedStatement preparedStatement = connection.prepareStatement(
2226
+ "DELETE FROM employees WHERE department = ? AND salary > ?");
2227
+ preparedStatement.setString(1, "Engineering");
2228
+ preparedStatement.setDouble(2, 75000);
2229
+ int rowsUpdated = preparedStatement.executeUpdate();
2230
+ ```
2231
+
2232
+ ### Supported Data Types and Set Methods
2233
+
2234
+ | **Column Data Type** | **Supported Set Methods** |
2235
+ | --- | --- |
2236
+ | Integer | `setInt()`, `setShort()`, `setNull()` |
2237
+ | Numeric | `setInt()`, `setShort()`, `setLong()`, `setBigDecimal()`, `setNull()` |
2238
+ | Decimal | `setShort()`, `setInt()`, `setLong()`, `setBigDecimal()`, `setNull()` |
2239
+ | BigInt | `setShort()`, `setInt()`, `setLong()`, `setBigDecimal()`, `setNull()` |
2240
+ | Double | `setDouble()`, `setFloat()`, `setNull()` |
2241
+ | Float | `setFloat()`, `setNull()` |
2242
+ | Char | `setString()`, `setNull()` |
2243
+ | Varchar | `setString()`, `setNull()` |
2244
+ | Boolean | `setBoolean()`, `setNull()` |
2245
+ | Time | `setTime()`, `setNull()` |
2246
+ | Timestamp | `setTimestamp()`, `setNull()` |
2247
+ | Date | `setNull()` |
2248
+ | VarBinary | `setBytes()`, `setNull()` |
2249
+
2250
+ ### Limitations
2251
+
2252
+ The JDBC client does not support the `setDate()` method due to mismatched date encoding formats between the Arrow Flight JDBC client and Dremio.
2253
+
2254
+ ## Managing Workloads
2255
+
2256
+ Dremio administrators can use the Arrow Flight server endpoint to [manage query workloads](/current/admin/workloads/workload-management) by adding the following properties to connections created by Flight clients:
2257
+
2258
+ | Flight Client Property | Description |
2259
+ | --- | --- |
2260
+ | `ROUTING_ENGINE` | Name of the engine to use to process all queries issued during the current session. |
2261
+ | `ROUTING_QUEUE` | Name of the workload management queue. Used only during authentication. |
2262
+ | `ROUTING_TAG` | Tag name associated with all queries executed within a Flight session. Used only during authentication. |
2263
+ | `SCHEMA` | Default schema path to the dataset that the user wants to query. |
2264
+
2265
+ ## URL-encoding Values
2266
+
2267
+ To encode a personal access token (PAT) or property value locally on your system, you can follow these steps:
2268
+
2269
+ 1. In a browser window, right-click an empty area of the page and select **Inspect**.
2270
+ 2. Click **Console**.
2271
+ 3. Type `encodeURIComponent("<PAT-or-value>")`, where `<PAT-or-value>` is the personal access token that you obtained from Dremio or the value of a supported JDBC property. The URL-encoded PAT or value appears on the next line. You can highlight it and copy it to your clipboard.
2272
+
2273
+ ## Differences between the Arrow Flight SQL JDBC Driver and the Legacy Dremio JDBC Driver
2274
+
2275
+ The Arrow Flight SQL JDBC driver differs from the Dremio JDBC driver (legacy) in the following:
2276
+
2277
+ * Requires Java 11+.
2278
+ * Supports `ResultSet.getBoolean()` on `varchar` columns in which boolean values are represented as these strings: "0", "1", "true", "false".
2279
+ * Supports null Calendar in calls to `ResultSet.getDate()`, `ResultSet.getTime()`, and `ResultSet.getTimestamp()`
2280
+ When a call to one of these methods has no `Calendar` parameter, or the `Calendar` parameter is `null`, the Flight JDBC driver uses the default timezone when it constructs the returned object.
2281
+ * Supports `ResultSet.getDate()`, `ResultSet.getTime()`, and `ResultSet.getTimestamp()` on `varchar` columns in which dates, times, or timestamps are represented as strings.
2282
+ * Supports varchar values that represents numeric values in calls to `ResultSet.getInteger()`, `ResultSet.getFloat()`, `ResultSet.getDouble()`, `ResultSet.getShort()`, `ResultSet.getLong()`, and `ResultSet.getBigDecimal()`
2283
+ * Supports integer values in calls to `getFloat()`
2284
+ Integers returned gain one decimal place.
2285
+ * Supports the native SQL complex types `List`, `Map`, and `Struct`
2286
+ The Dremio JDBC driver (legacy) uses String representations of these types.
2287
+ * Supports using the Interval data type in SQL functions.
2288
+ * Removes support for calling `ResultSet.getBinaryStream()` on non-binary data types. Though such support exists in traditional JDBC drivers, it is not in the specification for the JDBC API.
2289
+
2290
+ note
2291
+
2292
+ Calling `DatabaseMetadata.getCatalog()` when connected to Dremio returns empty. Other `DatabaseMetadata` methods return null values in the `TABLE_CAT` column. This is expected behavior because Dremio does not have a catalog.
2293
+
2294
+ ## Limitations
2295
+
2296
+ Impersonation is not supported.
2297
+
2298
+ ## Supported Conversions from Dremio Datatypes to JDBC Datatypes
2299
+
2300
+ | **DREMIO TYPE** | **JDBCARROW TYPE** |
2301
+ | --- | --- |
2302
+ | BIGINT | Int |
2303
+ | BIT | Bool |
2304
+ | DATE | Date |
2305
+ | DECIMAL | Decimal |
2306
+ | DOUBLE | FloatingPoint(DOUBLE) |
2307
+ | FIXEDSIZEBINARY | FixedSizeBinary |
2308
+ | FLOAT | FloatingPoint(SINGLE) |
2309
+ | INT | Int |
2310
+ | INTERVAL\_DAY\_SECONDS | Interval(DAY\_TIME) |
2311
+ | INTERVAL\_YEAR\_MONTHS | Interval(YEAR\_MONTH) |
2312
+ | LIST | List |
2313
+ | MAP | Map |
2314
+ | NULL | Null |
2315
+ | OBJECT | Not Supported |
2316
+ | STRUCT | Struct |
2317
+ | TIME | Time(MILLISECOND) |
2318
+ | TIMESTAMP | Timestamp(MILLISECOND) |
2319
+ | VARBINARY | Binary |
2320
+ | VARCHAR | Utf8 |
2321
+
2322
+ Was this page helpful?
2323
+
2324
+ [Previous
2325
+
2326
+ Drivers](/current/client-applications/drivers/)[Next
2327
+
2328
+ Arrow Flight SQL ODBC](/current/client-applications/drivers/arrow-flight-sql-odbc-driver)
2329
+
2330
+ * Prerequisites
2331
+ * Supported Authentication Methods
2332
+ + Username and Password
2333
+ + Personal Access Tokens Enterprise
2334
+ + OAuth Access Tokens Enterprise
2335
+ * Connecting to Databases
2336
+ * Downloading the Driver
2337
+ * Integrating the driver
2338
+ * Name of the Class
2339
+ * JDBC Properties for Dremio Wire Encryption
2340
+ * Parameterized Queries with Prepared Statements
2341
+ + Supported Data Types and Set Methods
2342
+ + Limitations
2343
+ * Managing Workloads
2344
+ * URL-encoding Values
2345
+ * Differences between the Arrow Flight SQL JDBC Driver and the Legacy Dremio JDBC Driver
2346
+ * Limitations
2347
+ * Supported Conversions from Dremio Datatypes to JDBC Datatypes
2348
+
2349
+ ---
2350
+
2351
+ # Source: https://docs.dremio.com/current/client-applications/drivers/jdbc
2352
+
2353
+ Version: current [26.x]
2354
+
2355
+ On this page
2356
+
2357
+ # Dremio JDBC Driver (Legacy)
2358
+
2359
+ note
2360
+
2361
+ The [Arrow Flight SQL JDBC driver](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver) is recommended for use for connectivity to Dremio. If you are using a client application that bundles or is certified with the Dremio JDBC driver, you can continue to use this driver. The Dremio JDBC driver will be not enhanced or fixed with the exception of critical security fixes.
2362
+
2363
+ The legacy [Dremio JDBC driver](https://download.dremio.com/jdbc-driver/?_ga=2.109401093.1016122501.1667783452-235854462.1630284576&_gac=1.258688760.1664550761.CjwKCAjwp9qZBhBkEiwAsYFsb0x4InlcRP7Rv4XsjamZQHhJILHJWOtBOu30xZC1QwvEXF8cPFs1HhoCB-kQAvD_BwE) is included as a part of Dremio installations under `<DREMIO_HOME>/jars/jdbc-driver/`. The main JAR Class is `com.dremio.jdbc.Driver`. You can also download the JDBC driver from [here](https://download.dremio.com/jdbc-driver/). This driver is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
2364
+
2365
+ 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](/current/release-notes/arrow-flight-sql-jdbc) be published.
2366
+
2367
+ ## Prerequisites
2368
+
2369
+ * As of Dremio JDBC driver 25.0+, supported Java versions: Java 11+
2370
+ * Supported JDK versions: 11, 17, and 21
2371
+ * Requires the following option to be present:
2372
+
2373
+ Java 11+ Requirement
2374
+
2375
+ ```
2376
+ --add-opens=java.base/java.nio=ALL-UNNAMED
2377
+ ```
2378
+
2379
+ ## Supported Authentication Methods
2380
+
2381
+ ### Username and Password
2382
+
2383
+ Use the username and password of the Dremio account that you want to connect with.
2384
+
2385
+ ### Personal Access Tokens Enterprise
2386
+
2387
+ Use a username and personal access token (PAT). To generate a PAT, see [Creating a PAT](/current/security/authentication/personal-access-tokens/#creating-a-pat).
2388
+
2389
+ tip
2390
+
2391
+ Dremio recommends OAuth access tokens to improve security by reducing the risk of compromised passwords or personal access tokens.
2392
+
2393
+ ### OAuth Access Tokens Enterprise
2394
+
2395
+ To create a connection with an OAuth access token, configure the following properties:
2396
+
2397
+ * `token_type` with a value of `access_token`
2398
+ * `password` with the value of the access token
2399
+ * `user` with an empty string `""` to default to the username included in the access token. If the username is configured in the property value, it must match the username in the access token.
2400
+
2401
+ Example Legacy JDBC Connection Using Dremio Access Token
2402
+
2403
+ ```
2404
+ import jaydebeapi
2405
+ jdbc_url = "jdbc:dremio:direct={}:{}".format("localhost", 31010)
2406
+ jdbc_args = {"user": "", "password": dremio_access_token, "token_type": "access_token"}
2407
+ jdbc_driver_location_example = "/Users/me/workspace/drivers/dremio-jdbc-driver-25.3.0-SNAPSHOT.jar"
2408
+ jdbc_conn = jaydebeapi.connect("com.dremio.jdbc.Driver",
2409
+ jdbc_url,
2410
+ jdbc_args,
2411
+ jdbc_driver_location_example)
2412
+ ```
2413
+
2414
+ Users can create OAuth access tokens using a local or LDAP username and password, a PAT, or an external JWT. Dremio provides [sample code](/current/reference/api/oauth-token) for each of these cases.
2415
+
2416
+ ### External JWT
2417
+
2418
+ To use an external JWT directly from an [external token provider](/current/security/authentication/application-authentication/external-token), configure the following properties:
2419
+
2420
+ * `token_type` with a value of `jwt`
2421
+ * `password` with the value of the external JWT
2422
+ * `user` with the empty string `""` to default to the username included in the external JWT. If the username is configured in the property value, it must match the username in the external JWT.
2423
+
2424
+ Dremio provides [sample code](/current/security/authentication/application-authentication/external-token#retrieving-an-external-jwt) for requesting an external JWT from Microsoft Entra ID.
2425
+
2426
+ tip
2427
+
2428
+ Dremio recommends OAuth access tokens obtained through token exchange over an external JWT. The Dremio OAuth access token is typically smaller than an external JWT and verification is faster.
2429
+
2430
+ ## Setup
2431
+
2432
+ You can set up the JDBC driver in the following manner:
2433
+
2434
+ * Connect directly to the Dremio server
2435
+ * Connect to the Dremio server via Zookeeper
2436
+
2437
+ **Tip:** To distribute query planning for JDBC connections, configure [secondary coordinator nodes](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/#dremio-coordinators) for your deployment.
2438
+
2439
+ #### Connecting directly to Dremio
2440
+
2441
+ The following configuration establishes a direct connection to a Dremio coordinator node.
2442
+ Planning is done on the specified node.
2443
+
2444
+ Connect directly to Dremio coordinator node
2445
+
2446
+ ```
2447
+ jdbc:dremio:direct=<DREMIO_COORDINATOR>:31010[;schema=<OPTIONAL_SCHEMA>]
2448
+ ```
2449
+
2450
+ #### Connecting to ZooKeeper
2451
+
2452
+ The following configuration establishes a distributed connection to Dremio coordinator nodes through a
2453
+ Zookeeper quorum. Planning is distributed across the available coordinator nodes.
2454
+
2455
+ Connect to Dremio coordinator node with ZooKeeper
2456
+
2457
+ ```
2458
+ jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181[;schema=<OPTIONAL_SCHEMA>]
2459
+ ```
2460
+
2461
+ **Multiple Dremio Clusters in the same ZooKeeper Quorum**
2462
+
2463
+ Cluster A
2464
+
2465
+ ```
2466
+ jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181/path/to/ClusterA
2467
+ ```
2468
+
2469
+ Cluster B
2470
+
2471
+ ```
2472
+ jdbc:dremio:zk=<ZOOKEEPER_QUORUM>:2181/path/to/ClusterB
2473
+ ```
2474
+
2475
+ ## Construct a Prepared Statement with Dynamic Parameters
2476
+
2477
+ Dremio supports using parameters in prepared statements for SELECT queries.
2478
+
2479
+ The parameter marker is `?` in prepared statements. To execute a prepared statement, you must set the parameter marker with one of the [supported set methods](/current/client-applications/drivers/jdbc/#set-methods-for-prepared-statements-with-parameters).
2480
+
2481
+ The example below uses the Date type parameter and the `setDate` set method. For set methods, the first argument is the index of the parameter marker in the SQL query, starting from 1. The second argument is the value for the parameter marker. After you set the parameter, you can execute the prepared statement by calling the `executeQuery()` method on the prepared statement.
2482
+
2483
+ Example prepared statement with parameters
2484
+
2485
+ ```
2486
+ public class HelloWorld {
2487
+ public static void main(String[] args) {
2488
+ try (PreparedStatement stmt = getConnection().prepareStatement("SELECT * FROM (values (DATE '2024-02-20'), (null)) AS a(id) WHERE id=?")) {
2489
+ Date date = Date.valueOf(LocalDate.of(2024, 02, 20));
2490
+ stmt.setDate(1, date);
2491
+ try (ResultSet rs = stmt.executeQuery()) {
2492
+ assertThat(rs.getMetaData().getColumnCount()).isEqualTo(1);
2493
+ assertThat(rs.next()).isTrue();
2494
+ assertThat(rs.getDate(1)).isEqualTo(date);
2495
+ assertThat(rs.next()).isFalse();
2496
+ }
2497
+ }
2498
+ }
2499
+ }
2500
+ ```
2501
+
2502
+ The example below demonstrates how to reuse the same prepared statement by defining a different set method and parameter value.
2503
+
2504
+ Example prepared statement with different set method and parameters
2505
+
2506
+ ```
2507
+ public class HelloWorld {
2508
+ public static void main(String[] args) {
2509
+ try (PreparedStatement stmt = getConnection().prepareStatement("SELECT * FROM (values (DATE '2024-02-20'), (null)) AS a(id) WHERE id=?")) {
2510
+ Date date = Date.valueOf(LocalDate.of(2024, 02, 20));
2511
+ stmt.setDate(1, date);
2512
+ try (ResultSet rs = stmt.executeQuery()) {
2513
+ assertThat(rs.getMetaData().getColumnCount()).isEqualTo(1);
2514
+ assertThat(rs.next()).isTrue();
2515
+ assertThat(rs.getDate(1)).isEqualTo(date);
2516
+ assertThat(rs.next()).isFalse();
2517
+ }
2518
+ stmt.setDate(1, Date.valueOf(LocalDate.of(2025, 02, 20)));
2519
+ try (ResultSet rs = stmt.executeQuery()) {
2520
+ assertThat(rs.next()).isFalse();
2521
+ }
2522
+ }
2523
+ }
2524
+ }
2525
+ ```
2526
+
2527
+ The following example shows how to use more than one parameter in a prepared statement.
2528
+
2529
+ Example prepared statement with two parameters
2530
+
2531
+ ```
2532
+ public class HelloWorld {
2533
+ public static void main(String[] args) {
2534
+ try (PreparedStatement stmt = getConnection().prepareStatement("SELECT * FROM (values (1), (2), (null)) AS a(id) WHERE id = ? OR id < ?")) {
2535
+ stmt.setInt(1, 1);
2536
+ stmt.setInt(2, 3);
2537
+ try (ResultSet rs = stmt.executeQuery()) {
2538
+ assertThat(rs.getMetaData().getColumnCount()).isEqualTo(1);
2539
+ assertThat(rs.next()).isTrue();
2540
+ assertThat(rs.getInt(1)).isEqualTo(1);
2541
+ assertThat(rs.next()).isFalse();
2542
+ }
2543
+ }
2544
+ }
2545
+ }
2546
+ ```
2547
+
2548
+ ### Set Methods for Prepared Statements with Parameters
2549
+
2550
+ To execute a prepared statement, you must set the parameter marker with one of the supported set methods listed in the table below.
2551
+
2552
+ | Column Data Type | Supported Set Methods |
2553
+ | --- | --- |
2554
+ | Integer | setInt(), setShort(), setNull() |
2555
+ | Numeric | setInt(), setShort(), setLong(), setBigDecimal(), setNull() |
2556
+ | Decimal | setShort(), setInt(), setLong(), setBigDecimal(), setNull() |
2557
+ | BigInt | setShort(), setInt(), setLong(), setBigDecimal(), setNull() |
2558
+ | Double | setDouble(), setFloat(), setNull() |
2559
+ | Float | setFloat(), setNull() |
2560
+ | Char | setString(), setNull() |
2561
+ | Varchar | setString(), setNull() |
2562
+ | Boolean | setBoolean(), setNull() |
2563
+ | Time | setTime(), setNull() |
2564
+ | TimeStamp | setTimestamp(), setNull() |
2565
+ | Date | setDate(), setNull() |
2566
+ | VarBinary | setNull(), setBytes() |
2567
+
2568
+ ## JDBC Parameters for Dremio Wire Encryption
2569
+
2570
+ If you are setting up encrypted communication between your JDBC client applications and the Dremio server,
2571
+ use the SSL JDBC connection parameters and a fully qualified host name to
2572
+ configure the JDBC connection string and connect to Dremio:
2573
+
2574
+ | Parameter | Value | Required | Description |
2575
+ | --- | --- | --- | --- |
2576
+ | ssl | true/false | [Optional] | If true, SSL is enabled. If not set or set to false, SSL is not enabled. |
2577
+ | 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`. |
2578
+ | 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. |
2579
+ | 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](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/local-machine-and-current-user-certificate-stores) on Windows, and default truststore on other systems. |
2580
+ | trustStorePassword | string | [Optional] | Password to the truststore. |
2581
+ | 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) |
2582
+ | disableCertificateVerification | true/false | [Optional] | If true, Dremio does not verify the host certificate against the truststore. False by default. |
2583
+
2584
+ ## Optional Advanced JDBC Driver Properties
2585
+
2586
+ | Parameter | Value | Description |
2587
+ | --- | --- | --- |
2588
+ | impersonation\_target | string | 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](/current/security/rbac/inbound-impersonation). |
2589
+ | routing\_queue | string | Specifies the queue to use for processing queries while a connection is open. For more information, see [Query Tagging & Direct Routing Configuration](/current/admin/workloads/workload-management/#query-tagging--direct-routing-configuration). |
2590
+ | routing\_tag | string | Sets a tag for rule processing. The specified tag is associated with all queries executed while a connection is open. Rules can check for the presence of a tag with the function `tag()`. For more information, see [Query Tagging & Direct Routing Configuration](/current/admin/workloads/workload-management/#query-tagging--direct-routing-configuration). |
2591
+ | token\_type | string | The type of the token in the `password` field. Valid values are `jwt` for [external tokens](/current/security/authentication/application-authentication/external-token), `access_token` for OAuth access token, or `personal_access_token` for [personal access tokens](/current/security/authentication/personal-access-tokens/). If you are using your Dremio password, omit the `token_type` property. |
2592
+
2593
+ ## SOCKS Proxy Connection Parameters
2594
+
2595
+ If you want to connect to Dremio Cloud through a SOCKS proxy, use these connection parameters:
2596
+
2597
+ | Parameter | Type | Description | Default Value | Required? |
2598
+ | --- | --- | --- | --- | --- |
2599
+ | socksProxyHost | string | The IP address or hostname of the SOCKS proxy. | N/A | Yes |
2600
+ | socksProxyPort | integer | The port to use on the SOCKS proxy. | 1080 | No |
2601
+ | socksProxyUsername | string | The username to use for connections. | N/A | No |
2602
+ | socksProxyPassword | string | The password to use for connections. | N/A | Only if a username is specified. |
2603
+
2604
+ Was this page helpful?
2605
+
2606
+ [Previous
2607
+
2608
+ Arrow Flight SQL ODBC](/current/client-applications/drivers/arrow-flight-sql-odbc-driver)
2609
+
2610
+ * Prerequisites
2611
+ * Supported Authentication Methods
2612
+ + Username and Password
2613
+ + Personal Access Tokens Enterprise
2614
+ + OAuth Access Tokens Enterprise
2615
+ + External JWT
2616
+ * Setup
2617
+ * Construct a Prepared Statement with Dynamic Parameters
2618
+ + Set Methods for Prepared Statements with Parameters
2619
+ * JDBC Parameters for Dremio Wire Encryption
2620
+ * Optional Advanced JDBC Driver Properties
2621
+ * SOCKS Proxy Connection Parameters
2622
+
2623
+ ---
2624
+
2625
+ # Source: https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-odbc-driver
2626
+
2627
+ Version: current [26.x]
2628
+
2629
+ On this page
2630
+
2631
+ # Arrow Flight SQL ODBC
2632
+
2633
+ Starting with Dremio v22.0, you can use the Arrow Flight SQL ODBC driver to connect to Dremio from ODBC client applications. This driver is licensed under [GNU Library General Public License, Version 2](https://github.com/dremio/warpdrive/blob/master/license.txt).
2634
+
2635
+ ## Supported Operating Systems
2636
+
2637
+ You can use the driver on systems that run the following 64-bit operating systems:
2638
+
2639
+ * Linux: RedHat/CentOS
2640
+ * Windows 10 and later
2641
+ * macOS (Intel processors only)
2642
+
2643
+ Apple Silicon Compatibility
2644
+
2645
+ The Arrow Flight SQL ODBC driver is not supported on Apple Silicon M1, M2, and M3 processors. While previous workarounds using Rosetta may have been available, they are no longer reliable and may not work with current versions. For Apple Silicon Mac computers, consider using alternative connection methods such as the [Arrow Flight SQL JDBC driver](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver/).
2646
+
2647
+ ## Authentication Methods
2648
+
2649
+ Dremio supports several authentication methods for client connections.
2650
+
2651
+ ### Username and Password
2652
+
2653
+ Pass a username and password with the **UID** and **PWD** properties.
2654
+
2655
+ ### Personal Access Tokens Enterprise
2656
+
2657
+ Pass a username and personal access token (PAT) with the **UID** and **PWD** properties, respectively. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for enabling and creating PATs.
2658
+
2659
+ tip
2660
+
2661
+ Dremio recommends OAuth access tokens to improve security by reducing the risk of compromised passwords or personal access tokens.
2662
+
2663
+ ### OAuth Access Tokens Enterprise
2664
+
2665
+ To create a connection with an OAuth access token, configure the **TOKEN** property with the value of the OAuth access token.
2666
+
2667
+ Example Arrow Flight SQL ODBC Connection using OAuth Access Tokens
2668
+
2669
+ ```
2670
+ import pyodbc
2671
+
2672
+ with pyodbc.connect(
2673
+ # Default location on Linux
2674
+ Driver='/opt/arrow-flight-sql-odbc-driver/lib64/libarrow-odbc.so.0.9.1.168',
2675
+ HOST='my.odbc.host',
2676
+ PORT=32010,
2677
+ useEncryption='true',
2678
+ TOKEN=dremio_access_token,
2679
+ autocommit=True,
2680
+ ) as conn:
2681
+ with conn.cursor() as cursor:
2682
+ cursor.execute('select * from test_table')
2683
+ results = cursor.fetchall()
2684
+ ```
2685
+
2686
+ Users can create OAuth access tokens using a local or LDAP username and password, a PAT, or an external JWT. Dremio provides [sample code](/current/reference/api/oauth-token/) for each of these cases.
2687
+
2688
+ ## Downloading and Installing
2689
+
2690
+ * Windows
2691
+ * Linux
2692
+ * macOS
2693
+
2694
+ ### Downloading and Installing on Windows
2695
+
2696
+ note
2697
+
2698
+ The Arrow Flight SQL ODBC driver is not available for 32-bit Windows versions.
2699
+
2700
+ note
2701
+
2702
+ 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](/current/client-applications/microsoft-power-bi/).
2703
+
2704
+ To download and install the Arrow Flight SQL ODBC driver:
2705
+
2706
+ 1. Download the Windows 64-bit version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
2707
+ 2. Run the installer.
2708
+ 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.
2709
+ 4. In the **Welcome to Dremio** page, click **Next**.
2710
+ 5. Click **Install**.
2711
+ 6. In the **Installation Complete** page, click **Next**.
2712
+ 7. In the **Completing Arrow Flight SQL ODBC Driver Setup Wizard** page, click **Finish**.
2713
+
2714
+ Next, configure the driver.
2715
+
2716
+ ### Downloading and Installing on Linux
2717
+
2718
+ To download and install the Arrow Flight SQL ODBC driver:
2719
+
2720
+ 1. Download the Linux version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
2721
+ 2. Run the following command to install the driver and automatically create the data source name (DSN) `Arrow Flight SQL ODBC DSN`:
2722
+
2723
+ Install driver and create data source name (DSN)
2724
+
2725
+ ```
2726
+ sudo yum localinstall <dremio-odbc-rpm-path>
2727
+ ```
2728
+
2729
+ Next, configure the driver.
2730
+
2731
+ ### Downloading and Installing on macOS
2732
+
2733
+ To download and install the Arrow Flight SQL ODBC driver:
2734
+
2735
+ Intel Macs Only
2736
+
2737
+ This driver only supports Intel-based Macs. It is not compatible with Apple Silicon M1, M2, and M3 processors.
2738
+
2739
+ 1. Download the macOS version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
2740
+ 2. Go to the download location and double-click the downloaded `.dmg` file.
2741
+ 3. Double-click the `.pkg` file.
2742
+ 4. In the **Welcome to the ODBC Driver for Arrow Flight SQL Installer** page, click **Continue**.
2743
+ 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.
2744
+ 6. In the **Installer is trying to install new software** dialog, specify your macOS password. Then, click **Install Software**.
2745
+ 7. After the installation is complete, click **Close**.
2746
+
2747
+ Next, configure the driver.
2748
+
2749
+ ## Configuring
2750
+
2751
+ ### Configuring on Windows
2752
+
2753
+ To configure the System DSN:
2754
+
2755
+ danger
2756
+
2757
+ 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](/current/client-applications/microsoft-power-bi/).
2758
+
2759
+ note
2760
+
2761
+ 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](/current/security/authentication/personal-access-tokens/) for the steps.
2762
+
2763
+ 1. Go to **Start Menu** > **Window Administrative Tools**. Click **ODBC Data Sources (64-bit)**.
2764
+ 2. In the **ODBC Data Source Administrator (64-bit)** dialog, click **System DSN**.
2765
+ 3. Select **Arrow Flight SQL ODBC DSN** and click **Configure**.
2766
+ 4. In the **HOST** field, specify the hostname of the server or its IP address.
2767
+ 5. In the **PORT** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
2768
+ 6. Specify client information in the appropriate fields for your authentication type:
2769
+
2770
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
2771
+ | --- | --- | --- | --- |
2772
+ | **UID** | Username | Username | Do not specify |
2773
+ | **PWD** | Password | Personal access token | Do not specify |
2774
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
2775
+ 7. In the **UseEncryption** field, specify one of these values:
2776
+
2777
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
2778
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
2779
+
2780
+ For additional parameters, see Connection Parameters.
2781
+
2782
+ 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**.
2783
+
2784
+ ### Configuring on Linux
2785
+
2786
+ note
2787
+
2788
+ * Before configuring, ensure that unixODBC is installed.
2789
+ * 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.
2790
+
2791
+ To configure the properties in the odbc.ini file:
2792
+
2793
+ 1. In the **HOST** field, specify the hostname of the server or its IP address.
2794
+ 2. In the **PORT** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
2795
+ 3. Specify client information in the appropriate fields for your authentication type:
2796
+
2797
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
2798
+ | --- | --- | --- | --- |
2799
+ | **UID** | Username | Username | Do not specify |
2800
+ | **PWD** | Password | Personal access token | Do not specify |
2801
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
2802
+ 4. In the **UseEncryption** field, specify one of these values:
2803
+
2804
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
2805
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
2806
+
2807
+ For additional parameters, see Connection Parameters.
2808
+
2809
+ note
2810
+
2811
+ To find out unixODBC has created your `odbc.ini` and `odbcinst.ini` files, run this command:
2812
+
2813
+ ```
2814
+ odbcinst -j
2815
+ ```
2816
+
2817
+ If you ever need to enable tracing for troubleshooting problems with the driver, see the help for unixODBC.
2818
+
2819
+ ### Configuring on macOS
2820
+
2821
+ note
2822
+
2823
+ Before configuring, ensure that [ODBC Manager](http://www.odbcmanager.net/) is installed.
2824
+
2825
+ 1. Launch ODBC Manager.
2826
+ 2. On the System DSN page, select **Arrow Flight SQL ODBC DSN** and click **Configure**.
2827
+ 3. (Optional) Change the DSN.
2828
+ 4. In the **Host** field, specify the hostname of the server or its IP address.
2829
+ 5. In the **Port** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
2830
+ 6. Specify client information in the appropriate fields for your authentication type:
2831
+
2832
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
2833
+ | --- | --- | --- | --- |
2834
+ | **UID** | Username | Username | Do not specify |
2835
+ | **PWD** | Password | Personal access token | Do not specify |
2836
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
2837
+ 7. In the **UseEncryption** field, specify one of these values:
2838
+
2839
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
2840
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
2841
+
2842
+ For additional parameters, see Connection Parameters.
2843
+
2844
+ If you ever need to enable tracing for troubleshooting problems with the driver, see the help for your driver manager.
2845
+
2846
+ ## Connection Parameters
2847
+
2848
+ ### Primary Connection Parameters
2849
+
2850
+ Use these parameters to configure basic connection details such as what data source to connect with.
2851
+
2852
+ note
2853
+
2854
+ The Arrow Flight SQL ODBC driver does not support password-protected `.pem` / `.crt` files or multiple `.crt` certificates in a single `.pem` / `.crt` file.
2855
+
2856
+ | Name | Type | Description | Default Value |
2857
+ | --- | --- | --- | --- |
2858
+ | Host | string | Sets the IP address or hostname for the Dremio server. If you specify an IP address and you set the TLS connection parameter `useEncryption` to `true`, ensure that the `/etc/hosts/` file includes an entry to map the IP address to the host. | None |
2859
+ | Port | integer | Sets the TCP port number that Dremio uses to listen to connections from Arrow Flight SQL ODBC clients. | 32010 |
2860
+ | Schema | string | Provides 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 |
2861
+
2862
+ Specify client information in the appropriate fields for your authentication type:
2863
+
2864
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
2865
+ | --- | --- | --- | --- |
2866
+ | **UID** | Username | Username | Do not specify |
2867
+ | **PWD** | Password | Personal access token | Do not specify |
2868
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
2869
+
2870
+ ### TLS Connection Parameters
2871
+
2872
+ Use the following parameters to configure TLS encryption and verification methods for regular connections.
2873
+
2874
+ | Name | Type | Description | Default Value |
2875
+ | --- | --- | --- | --- |
2876
+ | useEncryption | integer | Configures the client to use a TLS-encrypted connection to communicate with the Dremio server. Accepted values: * `true`, the client communicates with the Dremio server only using TLS 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. See the configuration of Arrow Flight TLS for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#arrow-flight-and-arrow-flight-sql-jdbc-and-odbc-enterprise) for more information. * `false`, TLS encryption is disabled with the client. If you specify this value, ensure that the encryption of communication between the client application and your Dremio server is not configured. | true |
2877
+ | disableCertificateVerification | integer | Specifies whether the driver should verify the host certificate against the trust store. Accepted values: * `false`, the driver verifies the certificate against the trust store. * `true`, the driver does not verify the certificate against the trust store. | false |
2878
+ | useSystemTrustStore | integer | Controls whether to use a CA certificate from the system's trust store, or from a specified `.pem` file. Accepted values: * `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) |
2879
+ | trustedCerts | string | The 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, 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 differs 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 |
2880
+ | hideSQLTablesListing | boolean | Prevents Microsoft Excel 16.95+ from crashing by hiding the list of available sources in Microsoft Excel’s Query Dialog. Set to `true` to enable. Only for Intel-based Mac computers. | `false` |
2881
+
2882
+ ### Advanced Parameters
2883
+
2884
+ | Name | Type | Description | Default Value |
2885
+ | --- | --- | --- | --- |
2886
+ | quoting | string | Specifies which type of character to use to delimit values in queries. The value can be BACK\_TICK, BRACKET, or DOUBLE\_QUOTE. | DOUBLE\_QUOTE |
2887
+ | routing\_queue | string | Specifies 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](/current/admin/workloads/workload-management/). | N/A |
2888
+ | routing\_tag | string | When 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](/current/admin/workloads/workload-management/). | N/A |
2889
+ | stringColumnLength | string | The maximum length of data in columns of the STRING datatype and of complex datatypes. The range is 1 to 2147483647. | 1024. |
2890
+
2891
+ ## Logging
2892
+
2893
+ You can inspect and extract client-side driver logs through the macOS logging infrastructure, because every macOS installation comes with an embedded Console application that allows you to filter by log types. This feature is only available for Intel-based Mac computers, and the log activity of the ODBC driver mostly consists of ODBC API calls.
2894
+
2895
+ To start logging:
2896
+
2897
+ 1. Open the Console application.
2898
+ 2. In the search box, select **Excel** in the **PROCESS** dropdown, and **odbc** in the **ANY** dropdown.
2899
+
2900
+ ![Filter by Excel and ODBC for logs in the Console application.](/images/odbc-driver-log-excel-filter.png "Logging Filter")
2901
+ 3. Click **Start**.
2902
+
2903
+ ## Supported Conversions from Dremio Datatypes to ODBC Datatypes
2904
+
2905
+ | Dremio Data Types | SQL\_C\_BINARY | SQL\_C\_BIT | SQL\_C\_CHAR | SQL\_C\_WCHAR | SQL\_C\_STINYINT | SQL\_C\_UTINYINT | SQL\_C\_SSHORT | SQL\_C\_USHORT | SQL\_C\_SLONG | SQL\_C\_ULONG | SQL\_C\_SBIGINT | SQL\_C\_UBIGINT | SQL\_C\_FLOAT | SQL\_C\_DOUBLE | SQL\_C\_NUMERIC | SQL\_C\_DATE | SQL\_C\_TIME | SQL\_C\_TIMESTAMP | SQL\_C\_GUID | SQL\_C\_INTERVAL\_\* |
2906
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
2907
+ | BOOLEAN | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
2908
+ | VARBINARY | Y | Invalid | N | N | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
2909
+ | DATE | N | Invalid | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Invalid | Y | Invalid | Invalid |
2910
+ | FLOAT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
2911
+ | DECIMAL | N | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Invalid | Invalid | Invalid | Invalid | N |
2912
+ | DOUBLE | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
2913
+ | INTERVAL (day to seconds) | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Invalid | Invalid | Invalid | N |
2914
+ | INTERVAL (years to months) | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Invalid | Invalid | Invalid | N |
2915
+ | INT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
2916
+ | BIGINT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
2917
+ | TIME | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Y | Invalid | Invalid |
2918
+ | TIMESTAMP | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Y | Invalid | Invalid |
2919
+ | VARCHAR | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid |
2920
+ | STRUCT | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
2921
+ | LIST | N | Invalid | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
2922
+
2923
+ Was this page helpful?
2924
+
2925
+ [Previous
2926
+
2927
+ Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver)[Next
2928
+
2929
+ Dremio JDBC Driver (Legacy)](/current/client-applications/drivers/jdbc)
2930
+
2931
+ * Supported Operating Systems
2932
+ * Authentication Methods
2933
+ + Username and Password
2934
+ + Personal Access Tokens Enterprise
2935
+ + OAuth Access Tokens Enterprise
2936
+ * Downloading and Installing
2937
+ + Downloading and Installing on Windows
2938
+ + Downloading and Installing on Linux
2939
+ + Downloading and Installing on macOS
2940
+ * Configuring
2941
+ + Configuring on Windows
2942
+ + Configuring on Linux
2943
+ + Configuring on macOS
2944
+ * Connection Parameters
2945
+ + Primary Connection Parameters
2946
+ + TLS Connection Parameters
2947
+ + Advanced Parameters
2948
+ * Logging
2949
+ * Supported Conversions from Dremio Datatypes to ODBC Datatypes
2950
+
2951
+ ---
2952
+
2953
+ # Source: https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-odbc-driver/
2954
+
2955
+ Version: current [26.x]
2956
+
2957
+ On this page
2958
+
2959
+ # Arrow Flight SQL ODBC
2960
+
2961
+ Starting with Dremio v22.0, you can use the Arrow Flight SQL ODBC driver to connect to Dremio from ODBC client applications. This driver is licensed under [GNU Library General Public License, Version 2](https://github.com/dremio/warpdrive/blob/master/license.txt).
2962
+
2963
+ ## Supported Operating Systems
2964
+
2965
+ You can use the driver on systems that run the following 64-bit operating systems:
2966
+
2967
+ * Linux: RedHat/CentOS
2968
+ * Windows 10 and later
2969
+ * macOS (Intel processors only)
2970
+
2971
+ Apple Silicon Compatibility
2972
+
2973
+ The Arrow Flight SQL ODBC driver is not supported on Apple Silicon M1, M2, and M3 processors. While previous workarounds using Rosetta may have been available, they are no longer reliable and may not work with current versions. For Apple Silicon Mac computers, consider using alternative connection methods such as the [Arrow Flight SQL JDBC driver](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver/).
2974
+
2975
+ ## Authentication Methods
2976
+
2977
+ Dremio supports several authentication methods for client connections.
2978
+
2979
+ ### Username and Password
2980
+
2981
+ Pass a username and password with the **UID** and **PWD** properties.
2982
+
2983
+ ### Personal Access Tokens Enterprise
2984
+
2985
+ Pass a username and personal access token (PAT) with the **UID** and **PWD** properties, respectively. See [Personal Access Tokens](/current/security/authentication/personal-access-tokens/) for enabling and creating PATs.
2986
+
2987
+ tip
2988
+
2989
+ Dremio recommends OAuth access tokens to improve security by reducing the risk of compromised passwords or personal access tokens.
2990
+
2991
+ ### OAuth Access Tokens Enterprise
2992
+
2993
+ To create a connection with an OAuth access token, configure the **TOKEN** property with the value of the OAuth access token.
2994
+
2995
+ Example Arrow Flight SQL ODBC Connection using OAuth Access Tokens
2996
+
2997
+ ```
2998
+ import pyodbc
2999
+
3000
+ with pyodbc.connect(
3001
+ # Default location on Linux
3002
+ Driver='/opt/arrow-flight-sql-odbc-driver/lib64/libarrow-odbc.so.0.9.1.168',
3003
+ HOST='my.odbc.host',
3004
+ PORT=32010,
3005
+ useEncryption='true',
3006
+ TOKEN=dremio_access_token,
3007
+ autocommit=True,
3008
+ ) as conn:
3009
+ with conn.cursor() as cursor:
3010
+ cursor.execute('select * from test_table')
3011
+ results = cursor.fetchall()
3012
+ ```
3013
+
3014
+ Users can create OAuth access tokens using a local or LDAP username and password, a PAT, or an external JWT. Dremio provides [sample code](/current/reference/api/oauth-token/) for each of these cases.
3015
+
3016
+ ## Downloading and Installing
3017
+
3018
+ * Windows
3019
+ * Linux
3020
+ * macOS
3021
+
3022
+ ### Downloading and Installing on Windows
3023
+
3024
+ note
3025
+
3026
+ The Arrow Flight SQL ODBC driver is not available for 32-bit Windows versions.
3027
+
3028
+ note
3029
+
3030
+ 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](/current/client-applications/microsoft-power-bi/).
3031
+
3032
+ To download and install the Arrow Flight SQL ODBC driver:
3033
+
3034
+ 1. Download the Windows 64-bit version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
3035
+ 2. Run the installer.
3036
+ 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.
3037
+ 4. In the **Welcome to Dremio** page, click **Next**.
3038
+ 5. Click **Install**.
3039
+ 6. In the **Installation Complete** page, click **Next**.
3040
+ 7. In the **Completing Arrow Flight SQL ODBC Driver Setup Wizard** page, click **Finish**.
3041
+
3042
+ Next, configure the driver.
3043
+
3044
+ ### Downloading and Installing on Linux
3045
+
3046
+ To download and install the Arrow Flight SQL ODBC driver:
3047
+
3048
+ 1. Download the Linux version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
3049
+ 2. Run the following command to install the driver and automatically create the data source name (DSN) `Arrow Flight SQL ODBC DSN`:
3050
+
3051
+ Install driver and create data source name (DSN)
3052
+
3053
+ ```
3054
+ sudo yum localinstall <dremio-odbc-rpm-path>
3055
+ ```
3056
+
3057
+ Next, configure the driver.
3058
+
3059
+ ### Downloading and Installing on macOS
3060
+
3061
+ To download and install the Arrow Flight SQL ODBC driver:
3062
+
3063
+ Intel Macs Only
3064
+
3065
+ This driver only supports Intel-based Macs. It is not compatible with Apple Silicon M1, M2, and M3 processors.
3066
+
3067
+ 1. Download the macOS version of the driver from the [ODBC driver download page](https://www.dremio.com/drivers/odbc/).
3068
+ 2. Go to the download location and double-click the downloaded `.dmg` file.
3069
+ 3. Double-click the `.pkg` file.
3070
+ 4. In the **Welcome to the ODBC Driver for Arrow Flight SQL Installer** page, click **Continue**.
3071
+ 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.
3072
+ 6. In the **Installer is trying to install new software** dialog, specify your macOS password. Then, click **Install Software**.
3073
+ 7. After the installation is complete, click **Close**.
3074
+
3075
+ Next, configure the driver.
3076
+
3077
+ ## Configuring
3078
+
3079
+ ### Configuring on Windows
3080
+
3081
+ To configure the System DSN:
3082
+
3083
+ danger
3084
+
3085
+ 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](/current/client-applications/microsoft-power-bi/).
3086
+
3087
+ note
3088
+
3089
+ 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](/current/security/authentication/personal-access-tokens/) for the steps.
3090
+
3091
+ 1. Go to **Start Menu** > **Window Administrative Tools**. Click **ODBC Data Sources (64-bit)**.
3092
+ 2. In the **ODBC Data Source Administrator (64-bit)** dialog, click **System DSN**.
3093
+ 3. Select **Arrow Flight SQL ODBC DSN** and click **Configure**.
3094
+ 4. In the **HOST** field, specify the hostname of the server or its IP address.
3095
+ 5. In the **PORT** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
3096
+ 6. Specify client information in the appropriate fields for your authentication type:
3097
+
3098
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
3099
+ | --- | --- | --- | --- |
3100
+ | **UID** | Username | Username | Do not specify |
3101
+ | **PWD** | Password | Personal access token | Do not specify |
3102
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
3103
+ 7. In the **UseEncryption** field, specify one of these values:
3104
+
3105
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
3106
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
3107
+
3108
+ For additional parameters, see Connection Parameters.
3109
+
3110
+ 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**.
3111
+
3112
+ ### Configuring on Linux
3113
+
3114
+ note
3115
+
3116
+ * Before configuring, ensure that unixODBC is installed.
3117
+ * 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.
3118
+
3119
+ To configure the properties in the odbc.ini file:
3120
+
3121
+ 1. In the **HOST** field, specify the hostname of the server or its IP address.
3122
+ 2. In the **PORT** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
3123
+ 3. Specify client information in the appropriate fields for your authentication type:
3124
+
3125
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
3126
+ | --- | --- | --- | --- |
3127
+ | **UID** | Username | Username | Do not specify |
3128
+ | **PWD** | Password | Personal access token | Do not specify |
3129
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
3130
+ 4. In the **UseEncryption** field, specify one of these values:
3131
+
3132
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
3133
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
3134
+
3135
+ For additional parameters, see Connection Parameters.
3136
+
3137
+ note
3138
+
3139
+ To find out unixODBC has created your `odbc.ini` and `odbcinst.ini` files, run this command:
3140
+
3141
+ ```
3142
+ odbcinst -j
3143
+ ```
3144
+
3145
+ If you ever need to enable tracing for troubleshooting problems with the driver, see the help for unixODBC.
3146
+
3147
+ ### Configuring on macOS
3148
+
3149
+ note
3150
+
3151
+ Before configuring, ensure that [ODBC Manager](http://www.odbcmanager.net/) is installed.
3152
+
3153
+ 1. Launch ODBC Manager.
3154
+ 2. On the System DSN page, select **Arrow Flight SQL ODBC DSN** and click **Configure**.
3155
+ 3. (Optional) Change the DSN.
3156
+ 4. In the **Host** field, specify the hostname of the server or its IP address.
3157
+ 5. In the **Port** field, specify the port to use for connections from Arrow Flight SQL ODBC client applications, which is 32010 by default.
3158
+ 6. Specify client information in the appropriate fields for your authentication type:
3159
+
3160
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
3161
+ | --- | --- | --- | --- |
3162
+ | **UID** | Username | Username | Do not specify |
3163
+ | **PWD** | Password | Personal access token | Do not specify |
3164
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
3165
+ 7. In the **UseEncryption** field, specify one of these values:
3166
+
3167
+ * `true`, if Dremio is configured for encrypted communication with your Arrow Flight SQL ODBC client applications.
3168
+ * `false`, if Dremio is not configured for encrypted communication with your Arrow Flight SQL ODBC client applications. Dremio is unencrypted by default.
3169
+
3170
+ For additional parameters, see Connection Parameters.
3171
+
3172
+ If you ever need to enable tracing for troubleshooting problems with the driver, see the help for your driver manager.
3173
+
3174
+ ## Connection Parameters
3175
+
3176
+ ### Primary Connection Parameters
3177
+
3178
+ Use these parameters to configure basic connection details such as what data source to connect with.
3179
+
3180
+ note
3181
+
3182
+ The Arrow Flight SQL ODBC driver does not support password-protected `.pem` / `.crt` files or multiple `.crt` certificates in a single `.pem` / `.crt` file.
3183
+
3184
+ | Name | Type | Description | Default Value |
3185
+ | --- | --- | --- | --- |
3186
+ | Host | string | Sets the IP address or hostname for the Dremio server. If you specify an IP address and you set the TLS connection parameter `useEncryption` to `true`, ensure that the `/etc/hosts/` file includes an entry to map the IP address to the host. | None |
3187
+ | Port | integer | Sets the TCP port number that Dremio uses to listen to connections from Arrow Flight SQL ODBC clients. | 32010 |
3188
+ | Schema | string | Provides 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 |
3189
+
3190
+ Specify client information in the appropriate fields for your authentication type:
3191
+
3192
+ | Field | Username and Password | Personal Access Token | OAuth Access Token |
3193
+ | --- | --- | --- | --- |
3194
+ | **UID** | Username | Username | Do not specify |
3195
+ | **PWD** | Password | Personal access token | Do not specify |
3196
+ | **TOKEN** | Do not specify | Do not specify | OAuth access token |
3197
+
3198
+ ### TLS Connection Parameters
3199
+
3200
+ Use the following parameters to configure TLS encryption and verification methods for regular connections.
3201
+
3202
+ | Name | Type | Description | Default Value |
3203
+ | --- | --- | --- | --- |
3204
+ | useEncryption | integer | Configures the client to use a TLS-encrypted connection to communicate with the Dremio server. Accepted values: * `true`, the client communicates with the Dremio server only using TLS 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. See the configuration of Arrow Flight TLS for [Dremio on Kubernetes](/current/deploy-dremio/configuring-kubernetes/#transport-level-security) or [Dremio standalone clusters](/current/deploy-dremio/other-options/standalone/dremio-config/dremio-conf/wire-encryption-config/#arrow-flight-and-arrow-flight-sql-jdbc-and-odbc-enterprise) for more information. * `false`, TLS encryption is disabled with the client. If you specify this value, ensure that the encryption of communication between the client application and your Dremio server is not configured. | true |
3205
+ | disableCertificateVerification | integer | Specifies whether the driver should verify the host certificate against the trust store. Accepted values: * `false`, the driver verifies the certificate against the trust store. * `true`, the driver does not verify the certificate against the trust store. | false |
3206
+ | useSystemTrustStore | integer | Controls whether to use a CA certificate from the system's trust store, or from a specified `.pem` file. Accepted values: * `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) |
3207
+ | trustedCerts | string | The 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, 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 differs 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 |
3208
+ | hideSQLTablesListing | boolean | Prevents Microsoft Excel 16.95+ from crashing by hiding the list of available sources in Microsoft Excel’s Query Dialog. Set to `true` to enable. Only for Intel-based Mac computers. | `false` |
3209
+
3210
+ ### Advanced Parameters
3211
+
3212
+ | Name | Type | Description | Default Value |
3213
+ | --- | --- | --- | --- |
3214
+ | quoting | string | Specifies which type of character to use to delimit values in queries. The value can be BACK\_TICK, BRACKET, or DOUBLE\_QUOTE. | DOUBLE\_QUOTE |
3215
+ | routing\_queue | string | Specifies 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](/current/admin/workloads/workload-management/). | N/A |
3216
+ | routing\_tag | string | When 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](/current/admin/workloads/workload-management/). | N/A |
3217
+ | stringColumnLength | string | The maximum length of data in columns of the STRING datatype and of complex datatypes. The range is 1 to 2147483647. | 1024. |
3218
+
3219
+ ## Logging
3220
+
3221
+ You can inspect and extract client-side driver logs through the macOS logging infrastructure, because every macOS installation comes with an embedded Console application that allows you to filter by log types. This feature is only available for Intel-based Mac computers, and the log activity of the ODBC driver mostly consists of ODBC API calls.
3222
+
3223
+ To start logging:
3224
+
3225
+ 1. Open the Console application.
3226
+ 2. In the search box, select **Excel** in the **PROCESS** dropdown, and **odbc** in the **ANY** dropdown.
3227
+
3228
+ ![Filter by Excel and ODBC for logs in the Console application.](/images/odbc-driver-log-excel-filter.png "Logging Filter")
3229
+ 3. Click **Start**.
3230
+
3231
+ ## Supported Conversions from Dremio Datatypes to ODBC Datatypes
3232
+
3233
+ | Dremio Data Types | SQL\_C\_BINARY | SQL\_C\_BIT | SQL\_C\_CHAR | SQL\_C\_WCHAR | SQL\_C\_STINYINT | SQL\_C\_UTINYINT | SQL\_C\_SSHORT | SQL\_C\_USHORT | SQL\_C\_SLONG | SQL\_C\_ULONG | SQL\_C\_SBIGINT | SQL\_C\_UBIGINT | SQL\_C\_FLOAT | SQL\_C\_DOUBLE | SQL\_C\_NUMERIC | SQL\_C\_DATE | SQL\_C\_TIME | SQL\_C\_TIMESTAMP | SQL\_C\_GUID | SQL\_C\_INTERVAL\_\* |
3234
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
3235
+ | BOOLEAN | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
3236
+ | VARBINARY | Y | Invalid | N | N | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
3237
+ | DATE | N | Invalid | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Invalid | Y | Invalid | Invalid |
3238
+ | FLOAT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
3239
+ | DECIMAL | N | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Invalid | Invalid | Invalid | Invalid | N |
3240
+ | DOUBLE | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
3241
+ | INTERVAL (day to seconds) | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Invalid | Invalid | Invalid | N |
3242
+ | INTERVAL (years to months) | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Invalid | Invalid | Invalid | N |
3243
+ | INT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
3244
+ | BIGINT | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid | Invalid | Invalid | Invalid | N |
3245
+ | TIME | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Y | Invalid | Invalid |
3246
+ | TIMESTAMP | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Y | Y | Invalid | Invalid |
3247
+ | VARCHAR | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Invalid |
3248
+ | STRUCT | N | N | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
3249
+ | LIST | N | Invalid | Y | Y | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid | Invalid |
3250
+
3251
+ Was this page helpful?
3252
+
3253
+ [Previous
3254
+
3255
+ Arrow Flight SQL JDBC](/current/client-applications/drivers/arrow-flight-sql-jdbc-driver)[Next
3256
+
3257
+ Dremio JDBC Driver (Legacy)](/current/client-applications/drivers/jdbc)
3258
+
3259
+ * Supported Operating Systems
3260
+ * Authentication Methods
3261
+ + Username and Password
3262
+ + Personal Access Tokens Enterprise
3263
+ + OAuth Access Tokens Enterprise
3264
+ * Downloading and Installing
3265
+ + Downloading and Installing on Windows
3266
+ + Downloading and Installing on Linux
3267
+ + Downloading and Installing on macOS
3268
+ * Configuring
3269
+ + Configuring on Windows
3270
+ + Configuring on Linux
3271
+ + Configuring on macOS
3272
+ * Connection Parameters
3273
+ + Primary Connection Parameters
3274
+ + TLS Connection Parameters
3275
+ + Advanced Parameters
3276
+ * Logging
3277
+ * Supported Conversions from Dremio Datatypes to ODBC Datatypes