refactor(influxdb3): consolidate ODBC content into Power BI documentation (#6546)

- Migrate comprehensive ODBC driver installation instructions to Power BI guide
  - Add Windows (PowerShell and Manual) installation steps with verification
  - Add macOS and Linux installation steps with configuration details
  - Include platform-specific verification procedures
- Enhance Power BI troubleshooting section with ODBC-specific guidance
  - Add driver not found troubleshooting for all platforms
  - Expand connection, authentication, and query error troubleshooting
  - Add query performance optimization recommendations
- Restructure Power BI documentation for clarity
  - Elevate ODBC driver installation to top-level section
  - Add explicit sequencing: install driver before connector
  - Improve section flow and subheading descriptiveness
- Remove standalone ODBC documentation pages
  - Delete shared ODBC guide and product-specific ODBC pages
  - Add aliases in Power BI frontmatter to redirect old ODBC URLs
- Apply changes across all InfluxDB 3 products:
  core, enterprise, cloud-dedicated, cloud-serverless, clustered
pull/6529/head^2
Jason Stirnaman 2025-11-17 22:28:46 -05:00 committed by GitHub
parent b15807b3db
commit 936913c3cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 194 additions and 678 deletions

View File

@ -1,20 +0,0 @@
---
title: Execute SQL queries with ODBC
description: >
Use the Arrow Flight SQL ODBC driver to execute SQL queries against {{% product-name %}} from
ODBC-compatible applications and programming languages.
menu:
influxdb3_cloud_dedicated:
name: Use ODBC
parent: Execute queries
weight: 351
influxdb3/cloud-dedicated/tags: [query, sql, odbc]
metadata: [SQL]
related:
- /influxdb3/cloud-dedicated/reference/sql/
- /influxdb3/cloud-dedicated/query-data/
source: /shared/influxdb3-query-guides/execute-queries/odbc.md
---
<!-- //SOURCE content/shared/influxdb3-query-guides/execute-queries/odbc.md -->

View File

@ -10,10 +10,11 @@ menu:
weight: 104
influxdb3/cloud-dedicated/tags: [visualization, powerbi, sql]
metadata: [SQL]
aliases:
- /influxdb3/cloud-dedicated/query-data/execute-queries/odbc/
related:
- https://learn.microsoft.com/en-us/power-bi/desktop/, Power BI documentation
- /influxdb3/cloud-dedicated/query-data/sql/
- /influxdb3/cloud-dedicated/query-data/execute-queries/odbc/
source: /shared/influxdb3-visualize/powerbi.md
---

View File

@ -1,19 +0,0 @@
---
title: Execute SQL queries with ODBC
description: >
Use the Arrow Flight SQL ODBC driver to execute SQL queries against {{% product-name %}} from
ODBC-compatible applications and programming languages.
menu:
influxdb3_cloud_serverless:
name: Use ODBC
parent: Execute queries
weight: 351
influxdb3/cloud-serverless/tags: [query, sql, odbc]
metadata: [SQL]
related:
- /influxdb3/cloud-serverless/reference/sql/
- /influxdb3/cloud-serverless/query-data/
source: /shared/influxdb3-query-guides/execute-queries/odbc.md
---
<!-- //SOURCE content/shared/influxdb3-query-guides/execute-queries/odbc.md -->

View File

@ -10,11 +10,12 @@ menu:
weight: 104
influxdb3/cloud-serverless/tags: [visualization, powerbi, sql]
metadata: [SQL]
aliases:
- /influxdb3/cloud-serverless/query-data/execute-queries/odbc/
related:
- https://learn.microsoft.com/en-us/power-bi/desktop/, Power BI documentation
- /influxdb3/cloud-serverless/query-data/sql/
- /influxdb3/cloud-serverless/query-data/execute-queries/odbc/
source: /shared/influxdb3-visualize/powerbi.md
---
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->

View File

@ -1,19 +0,0 @@
---
title: Execute SQL queries with ODBC
description: >
Use the Arrow Flight SQL ODBC driver to execute SQL queries against {{% product-name %}} from
ODBC-compatible applications and programming languages.
menu:
influxdb3_clustered:
name: Use ODBC
parent: Execute queries
weight: 351
influxdb3/clustered/tags: [query, sql, odbc]
metadata: [SQL]
related:
- /influxdb3/clustered/reference/sql/
- /influxdb3/clustered/query-data/
source: /shared/influxdb3-query-guides/execute-queries/odbc.md
---
<!-- //SOURCE content/shared/influxdb3-query-guides/execute-queries/odbc.md -->

View File

@ -10,11 +10,12 @@ menu:
weight: 104
influxdb3/clustered/tags: [visualization, powerbi, sql]
metadata: [SQL]
aliases:
- /influxdb3/clustered/query-data/execute-queries/odbc/
related:
- https://learn.microsoft.com/en-us/power-bi/desktop/, Power BI documentation
- /influxdb3/clustered/query-data/sql/
- /influxdb3/clustered/query-data/execute-queries/odbc/
source: /shared/influxdb3-visualize/powerbi.md
---
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->

View File

@ -1,20 +0,0 @@
---
title: Execute SQL queries with ODBC
description: >
Use the Arrow Flight SQL ODBC driver to execute SQL queries against {{% product-name %}} from
ODBC-compatible applications and programming languages.
menu:
influxdb3_core:
name: Use ODBC
parent: Execute queries
weight: 351
influxdb3/core/tags: [query, sql, odbc]
metadata: [SQL]
related:
- /influxdb3/core/reference/sql/
- /influxdb3/core/query-data/
- /influxdb3/core/visualize-data/powerbi/
source: /shared/influxdb3-query-guides/execute-queries/odbc.md
---
<!-- //SOURCE content/shared/influxdb3-query-guides/execute-queries/odbc.md -->

View File

@ -10,11 +10,12 @@ menu:
weight: 104
influxdb3/core/tags: [visualization, powerbi, sql]
metadata: [SQL]
aliases:
- /influxdb3/core/query-data/execute-queries/odbc/
related:
- https://learn.microsoft.com/en-us/power-bi/desktop/, Power BI documentation
- /influxdb3/core/query-data/sql/
- /influxdb3/core/query-data/execute-queries/odbc/
source: /shared/influxdb3-visualize/powerbi.md
---
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->

View File

@ -1,20 +0,0 @@
---
title: Execute SQL queries with ODBC
description: >
Use the Arrow Flight SQL ODBC driver to execute SQL queries against {{% product-name %}} from
ODBC-compatible applications and programming languages.
menu:
influxdb3_enterprise:
name: Use ODBC
parent: Execute queries
weight: 351
influxdb3/enterprise/tags: [query, sql, odbc]
metadata: [SQL]
related:
- /influxdb3/enterprise/reference/sql/
- /influxdb3/enterprise/query-data/
- /influxdb3/enterprise/visualize-data/powerbi/
source: /shared/influxdb3-query-guides/execute-queries/odbc.md
---
<!-- //SOURCE content/shared/influxdb3-query-guides/execute-queries/odbc.md -->

View File

@ -10,11 +10,12 @@ menu:
weight: 104
influxdb3/enterprise/tags: [visualization, powerbi, sql]
metadata: [SQL]
aliases:
- /influxdb3/enterprise/query-data/execute-queries/odbc/
related:
- https://learn.microsoft.com/en-us/power-bi/desktop/, Power BI documentation
- /influxdb3/enterprise/query-data/sql/
- /influxdb3/enterprise/query-data/execute-queries/odbc/
source: /shared/influxdb3-visualize/powerbi.md
---
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->
<!-- //SOURCE content/shared/influxdb3-visualize/powerbi.md -->

View File

@ -1,533 +0,0 @@
Use the Arrow Flight SQL ODBC driver to execute SQL queries against
{{% product-name %}} from ODBC-compatible applications and programming languages.
ODBC (Open Database Connectivity) is a standard API for accessing database
management systems. The Arrow Flight SQL ODBC driver enables ODBC-compatible
applications to connect to {{% product-name %}} and query data using SQL.
- [Download and install the ODBC driver](#download-and-install-the-odbc-driver)
- [Configure a data source](#configure-a-data-source)
- [Connect and query from applications](#connect-and-query-from-applications)
- [Use ODBC with programming languages](#use-odbc-with-programming-languages)
## Download and install the ODBC driver
{{% product-name %}} uses the Arrow Flight SQL ODBC driver to enable ODBC connectivity.
> [!Note]
> For more information about the Arrow Flight SQL ODBC Driver, see the [Dremio documentation](https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
{{< tabs-wrapper >}}
{{% tabs %}}
[Windows (PowerShell)](#)
[Windows (Manual)](#)
[macOS and Linux](#)
{{% /tabs %}}
{{% tab-content %}}
Run the following PowerShell commands to download and install:
{{% code-placeholders "YOUR_USER" %}}
```powershell
# Set the driver path
$driverPath = "C:\Users\YOUR_USER\Downloads\arrow-flight-sql-odbc-0.9.7.1195-win64.msi"
# Download the driver
Invoke-WebRequest -Uri "https://docs.influxdata.com/downloads/arrow-flight-sql-odbc-0.9.7.1195-win64.msi" `
-OutFile $driverPath
# Mark as trusted
Unblock-File $driverPath
# Install
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$driverPath`""
```
{{% /code-placeholders %}}
Replace the following:
- {{% code-placeholder-key %}}`YOUR_USER`{{% /code-placeholder-key %}}: Your Windows username
#### Verify installation
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
{{% /tab-content %}}
{{% tab-content %}}
<a class="btn" href="https://docs.influxdata.com/downloads/arrow-flight-sql-odbc-0.9.7.1195-win64.msi">Download the Arrow Flight SQL ODBC driver</a>
1. Run the downloaded `.msi` installer
2. Follow the installation wizard using default settings
3. Complete the installation
#### Verify installation
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
{{% /tab-content %}}
{{% tab-content %}}
Download from Dremio:
- [**macOS (Universal)**](https://download.dremio.com/arrow-flight-sql-odbc-driver/arrow-flight-sql-odbc-LATEST-universal.pkg)
- [**Linux (x86_64)**](https://download.dremio.com/arrow-flight-sql-odbc-driver/arrow-flight-sql-odbc-LATEST-linux-x86_64.tar.gz)
#### Install on macOS
1. Run the downloaded `.pkg` installer
2. Follow the installation prompts
3. Enter your administrator password when prompted
4. Complete the installation
#### Install on Linux
1. Extract the downloaded archive:
```bash
tar -xzf arrow-flight-sql-odbc-LATEST-linux-x86_64.tar.gz
```
2. Install the driver (installation location may vary by distribution):
```bash
sudo mkdir -p /opt/arrow-flight-sql-odbc
sudo cp -r lib /opt/arrow-flight-sql-odbc/
```
3. Configure the driver in `/etc/odbcinst.ini`:
```ini
[Arrow Flight SQL ODBC Driver]
Description = Arrow Flight SQL ODBC Driver
Driver = /opt/arrow-flight-sql-odbc/lib/libarrow-odbc.so
```
#### Verify installation
To verify the driver is installed correctly, run:
```bash
odbcinst -q -d
```
The output should include **Arrow Flight SQL**.
{{% /tab-content %}}
{{< /tabs-wrapper >}}
## Configure a data source
After installing the Arrow Flight SQL ODBC driver, configure a data source to
connect to {{% product-name %}}.
{{< tabs-wrapper >}}
{{% tabs %}}
[Windows](#)
[macOS and Linux](#)
{{% /tabs %}}
{{% tab-content %}}
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **System DSN** or **User DSN** tab
3. Click **Add**
4. Select **Arrow Flight SQL ODBC Driver** and click **Finish**
5. Configure the connection:
- **Data Source Name**: Provide a descriptive name (for example, `InfluxDB3`)
- **Host**: Your {{% product-name %}} host (for example, {{% show-in "cloud-serverless" %}}`us-west-2-1.aws.cloud2.influxdata.com`{{% /show-in %}}{{% show-in "enterprise,core" %}}`localhost`{{% /show-in %}}{{% show-in "cloud-dedicated" %}}`cluster-id.a.influxdb.io`{{% /show-in %}}{{% show-in "clustered" %}}`cluster-host.com`{{% /show-in %}})
- **Port**: Your InfluxDB URL port {{% show-in "cloud-serverless,cloud-dedicated,clustered" %}}(for example, `443` (HTTPS){{% /show-in %}}{{% show-in "enterprise,core" %}}`8181` (default){{% /show-in %}})
- **Database**: Your database name
- **Auth Token**: Your {{% show-in "cloud-dedicated,clustered" %}}{{% token-link "database" %}}{{% /show-in %}}{{% show-in "cloud-serverless" %}}{{% token-link %}}{{% /show-in %}}{{% show-in "core,enterprise" %}}{{% token-link "admin" "database" %}}{{% /show-in %}}{{% show-in "cloud-dedicated,clustered,enterprise" %}}&nbsp;with query permissions for the target database{{% /show-in %}}
- **Use Encryption**: Enable for HTTPS connections
6. Click **Test** to verify the connection
7. Click **OK** to save
{{% /tab-content %}}
{{% tab-content %}}
Create or edit `~/.odbc.ini` (user DSN) or `/etc/odbc.ini` (system DSN):
{{% show-in "enterprise,core" %}}
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = localhost
Port = 8181
Database = DATABASE_NAME
AuthToken = DATABASE_TOKEN
UseEncryption = 1
```
{{% /code-placeholders %}}
{{% /show-in %}}
{{% show-in "cloud-serverless" %}}
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = us-west-2-1.aws.cloud2.influxdata.com
Port = 443
Database = DATABASE_NAME
AuthToken = DATABASE_TOKEN
UseEncryption = 1
```
{{% /code-placeholders %}}
{{% /show-in %}}
{{% show-in "cloud-dedicated" %}}
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = cluster-id.a.influxdb.io
Port = 443
Database = DATABASE_NAME
AuthToken = DATABASE_TOKEN
UseEncryption = 1
```
{{% /code-placeholders %}}
{{% /show-in %}}
{{% show-in "clustered" %}}
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = cluster-host.com
Port = 443
Database = DATABASE_NAME
AuthToken = DATABASE_TOKEN
UseEncryption = 1
```
{{% /code-placeholders %}}
{{% /show-in %}}
Replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Your database name
- {{% code-placeholder-key %}}`DATABASE_TOKEN`{{% /code-placeholder-key %}}: Your {{% token-link "database" %}}{{% show-in "enterprise" %}} with query permissions{{% /show-in %}}
Test the connection:
```bash
isql -v InfluxDB3
```
{{% /tab-content %}}
{{< /tabs-wrapper >}}
## Connect and query from applications
After configuring a data source, connect from ODBC-compatible applications:
### Power BI
See [Use Power BI to visualize data](/influxdb3/version/visualize-data/powerbi/).
### Tableau
See [Use Tableau to visualize data](/influxdb3/version/visualize-data/tableau/).
### Excel
1. Open Excel
2. Go to **Data** > **Get Data** > **From Other Sources** > **From ODBC**
3. Select your InfluxDB data source
4. Enter credentials if prompted
5. Select tables and load data
### DBeaver
1. Create a new database connection
2. Select **ODBC** as the connection type
3. Configure the connection:
- **Database/Schema**: Your InfluxDB database
- **ODBC DSN**: Your configured data source name
4. Test and save the connection
## Use ODBC with programming languages
### Python with pyodbc
```python
import pyodbc
# Connect to InfluxDB
conn = pyodbc.connect(
'DSN=InfluxDB3',
autocommit=True
)
# Create cursor
cursor = conn.cursor()
# Execute query
cursor.execute("""
SELECT
time,
temp,
location
FROM
home
WHERE
time >= now() - INTERVAL '1 hour'
ORDER BY
time DESC
""")
# Fetch results
for row in cursor.fetchall():
print(row)
# Close connection
cursor.close()
conn.close()
```
### R with RODBC
```r
library(RODBC)
# Connect to InfluxDB
conn <- odbcConnect("InfluxDB3")
# Execute query
result <- sqlQuery(conn, "
SELECT
time,
temp,
location
FROM
home
WHERE
time >= now() - INTERVAL '1 hour'
ORDER BY
time DESC
")
# View results
print(result)
# Close connection
odbcClose(conn)
```
### C# with `System.Data.Odbc`
```csharp
using System;
using System.Data.Odbc;
class Program
{
static void Main()
{
string connectionString = "DSN=InfluxDB3";
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
string query = @"
SELECT
time,
temp,
location
FROM
home
WHERE
time >= now() - INTERVAL '1 hour'
ORDER BY
time DESC
";
using (OdbcCommand cmd = new OdbcCommand(query, conn))
using (OdbcDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"{reader["time"]} - {reader["temp"]} - {reader["location"]}");
}
}
}
}
}
```
## Connection string format
For applications that use connection strings directly:
```
Driver={Arrow Flight SQL ODBC Driver};Host=HOST;Port=PORT;Database=DATABASE;AuthToken=TOKEN;UseEncryption=1
```
Example:
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```
Driver={Arrow Flight SQL ODBC Driver};Host=localhost;Port=8181;Database=DATABASE_NAME;AuthToken=DATABASE_TOKEN;UseEncryption=1
```
{{% /code-placeholders %}}
{{% show-in "cloud-serverless,cloud-dedicated" %}}
For {{% product-name %}}, use port `443`:
{{% code-placeholders "DATABASE_NAME|DATABASE_TOKEN" %}}
```
Driver={Arrow Flight SQL ODBC Driver};Host=cluster-id.a.influxdb.io;Port=443;Database=DATABASE_NAME;AuthToken=DATABASE_TOKEN;UseEncryption=1
```
{{% /code-placeholders %}}
{{% /show-in %}}
## Configuration options
### Connection parameters
| Parameter | Description | Default |
| -------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------- |
| `Host` | InfluxDB server hostname | Required |
| `Port` | InfluxDB server port | Required {{% show-in "core,enterprise" %}}(`8181`){{% /show-in %}} |
| `Database` | Database name | Required |
| `AuthToken` | Authentication token | Required |
| `UseEncryption` | Use encrypted connection | `1` (enabled) |
| `TrustedCerts` | Path to trusted CA certificates | System default |
| `DisableCertificateVerification` | Skip certificate verification | `0` (disabled) |
### Advanced options
Add these to your DSN configuration or connection string as needed:
{{% show-in "enterprise,core" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = localhost
Port = 8181
Database = mydb
AuthToken = your-token
UseEncryption = 1
DisableCertificateVerification = 0
```
{{% /show-in %}}
{{% show-in "cloud-serverless" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = us-west-2-1.aws.cloud2.influxdata.com
Port = 443
Database = mydb
AuthToken = your-token
UseEncryption = 1
DisableCertificateVerification = 0
```
{{% /show-in %}}
{{% show-in "cloud-dedicated" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = cluster-id.a.influxdb.io
Port = 443
Database = mydb
AuthToken = your-token
UseEncryption = 1
DisableCertificateVerification = 0
```
{{% /show-in %}}
{{% show-in "clustered" %}}
```ini
[InfluxDB3]
Driver = Arrow Flight SQL ODBC Driver
Host = cluster-host.com
Port = 443
Database = mydb
AuthToken = your-token
UseEncryption = 1
DisableCertificateVerification = 0
```
{{% /show-in %}}
## Troubleshooting
### Driver not found
If applications cannot find the Arrow Flight SQL ODBC driver:
{{< tabs-wrapper >}}
{{% tabs %}}
[Windows](#)
[macOS and Linux](#)
{{% /tabs %}}
{{% tab-content %}}
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
4. If not listed, reinstall the driver
{{% /tab-content %}}
{{% tab-content %}}
1. Run the following command to list installed drivers:
```bash
odbcinst -q -d
```
2. Verify **Arrow Flight SQL** appears in the output
3. Check `/etc/odbcinst.ini` for proper driver configuration
4. Ensure the driver library path is correct
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### Connection failures
If you cannot connect to {{% product-name %}}:
- Verify your {{% product-name %}} instance is running and accessible
- Check host and port settings:
- Local instances: `localhost:8181`
- {{% show-in "cloud-serverless,cloud-dedicated" %}}{{% product-name %}}: Use your cluster URL with port `443`{{% /show-in %}}
- Ensure `UseEncryption` is set correctly for your connection type
- Verify network connectivity and firewall rules allow connections
### Authentication errors
If authentication fails:
- Confirm your token is valid and not expired
- Ensure the token is specified in the `AuthToken` parameter (not `Token`)
- {{% show-in "enterprise" %}}Verify the token has query permissions for the target database{{% /show-in %}}
- Check that the token was copied correctly without extra spaces or characters
### Query errors
If queries fail or return errors:
- Verify SQL syntax is correct for InfluxDB SQL
- Check that referenced tables (measurements) exist in the database
- Ensure column names match your schema
- Review the [SQL reference](/influxdb3/version/reference/sql/) for supported features
- For large result sets, consider adding `LIMIT` clauses
### Performance issues
For slow queries or connection timeouts:
- Add time range filters to limit data scanned
- Use appropriate indexes if available
- Increase timeout values in your DSN configuration
- Monitor query execution plans for optimization opportunities

View File

@ -9,15 +9,15 @@ Note: The Microsoft Power BI Connector for InfluxDB is currently in BETA
>
> {{% cite %}}-- [Microsoft Power BI documentation](https://learn.microsoft.com/en-us/power-bi/fundamentals/power-bi-overview){{% /cite %}}
> [!Important]
> \[!Important]
> These instructions are for Power BI Desktop only; it uses a custom connector.
- [Prerequisites](#prerequisites)
- [Install the Power BI connector](#install-the-power-bi-connector)
- [Install the Arrow Flight SQL ODBC Driver](#install-the-arrow-flight-sql-odbc-driver)
- [Enable the connector in Power BI](#enable-the-connector-in-power-bi)
- [Connect Power BI to InfluxDB](#connect-power-bi-to-influxdb)
- [Query and visualize data](#query-and-visualize-data)
1. [Prerequisites](#prerequisites)
2. [Install the Arrow Flight SQL ODBC driver](#install-the-arrow-flight-sql-odbc-driver)
3. [Install the Power BI connector](#install-the-power-bi-connector)
4. [Enable the connector in Power BI](#enable-the-connector-in-power-bi)
5. [Connect Power BI to InfluxDB](#connect-power-bi-to-influxdb)
6. [Query and visualize data](#query-and-visualize-data)
## Prerequisites
@ -28,65 +28,141 @@ Note: The Microsoft Power BI Connector for InfluxDB is currently in BETA
- **{{% product-name %}}**: A running instance with data to query
- **Database token**: Your {{% show-in "cloud-dedicated, clustered" %}}{{% token-link "database" %}}{{% /show-in %}}{{% show-in "cloud-serverless" %}}{{% token-link %}}{{% /show-in %}}{{% show-in "core, enterprise" %}}{{% token-link "admin" "database" %}}{{% /show-in %}}{{% show-in "enterprise" %}} with query permissions for the target database{{% /show-in %}}
The following steps guide you through downloading and installing the Arrow Flight SQL ODBC Driver and the InfluxDB 3 custom connector.
## Install the Arrow Flight SQL ODBC driver
## Install the Power BI connector
The InfluxDB 3 custom connector for Power BI requires the Arrow Flight SQL ODBC driver.
Install the driver before installing the Power BI connector.
The InfluxDB 3 custom connector for Power BI Desktop enables you to connect to
{{% product-name %}} and query data using SQL.
> \[!Note]
> For more information about the Arrow Flight SQL ODBC Driver, see the [Dremio documentation](https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
### Install the Arrow Flight SQL ODBC Driver
{{< tabs-wrapper >}}
{{% tabs %}}
[Windows (PowerShell)](#)
[Windows (Manual)](#)
[macOS and Linux](#)
{{% /tabs %}}
The custom connector requires the Arrow Flight SQL ODBC Driver.
{{% tab-content %}}
Run the following PowerShell commands to download and install:
<a class="btn" href="https://docs.influxdata.com/downloads/arrow-flight-sql-odbc-0.9.7.1195-win64.msi">Download the Arrow Flight SQL ODBC driver</a>
{{% code-placeholders "YOUR\_USER" %}}
Or use PowerShell to download and install:
{{% code-placeholders "YOUR_USER" %}}
```powershell
# Set the driver path
$driverPath = "C:\Users\YOUR_USER\Downloads\arrow-flight-sql-odbc-0.9.7.1195-win64.msi"
# Download the driver
Invoke-WebRequest -Uri "https://docs.influxdata.com/downloads/arrow-flight-sql-odbc-0.9.7.1195-win64.msi" `
-OutFile "C:\Users\YOUR_USER\Downloads\arrow-flight-sql-odbc-0.9.7.1195-win64.msi"
-OutFile $driverPath
# Mark as trusted
Unblock-File "C:\Users\YOUR_USER\Downloads\arrow-flight-sql-odbc-0.9.7.1195-win64.msi"
Unblock-File $driverPath
# Install
Start-Process msiexec.exe -Wait -ArgumentList '/i "C:\Users\YOUR_USER\Downloads\arrow-flight-sql-odbc-0.9.7.1195-win64.msi"'
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$driverPath`""
```
{{% /code-placeholders %}}
Replace the following:
- {{% code-placeholder-key %}}`YOUR_USER`{{% /code-placeholder-key %}}: Your Windows username
Follow the installation wizard using default settings.
#### Verify driver installation
> [!Note]
> For more information about the Arrow Flight SQL ODBC Driver, see the [Dremio documentation](https://docs.dremio.com/current/client-applications/drivers/arrow-flight-sql-odbc-driver/).
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
### Install the Power BI connector file
{{% /tab-content %}}
{{% tab-content %}} <a class="btn" href="https://docs.influxdata.com/downloads/arrow-flight-sql-odbc-0.9.7.1195-win64.msi">Download the Arrow Flight SQL ODBC driver</a>
1. Run the downloaded `.msi` installer
2. Follow the installation wizard using default settings
3. Complete the installation
#### Verify driver installation
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
{{% /tab-content %}}
{{% tab-content %}}
Download from Dremio:
- [**macOS (Universal)**](https://download.dremio.com/arrow-flight-sql-odbc-driver/arrow-flight-sql-odbc-LATEST-universal.pkg)
- [**Linux (x86\_64)**](https://download.dremio.com/arrow-flight-sql-odbc-driver/arrow-flight-sql-odbc-LATEST-linux-x86_64.tar.gz)
#### Install on macOS
1. Run the downloaded `.pkg` installer
2. Follow the installation prompts
3. Enter your administrator password when prompted
4. Complete the installation
#### Install on Linux
1. Extract the downloaded archive:
```bash
tar -xzf arrow-flight-sql-odbc-LATEST-linux-x86_64.tar.gz
```
2. Install the driver (installation location may vary by distribution):
```bash
sudo mkdir -p /opt/arrow-flight-sql-odbc
sudo cp -r lib /opt/arrow-flight-sql-odbc/
```
3. Configure the driver in `/etc/odbcinst.ini`:
```ini
[Arrow Flight SQL ODBC Driver]
Description = Arrow Flight SQL ODBC Driver
Driver = /opt/arrow-flight-sql-odbc/lib/libarrow-odbc.so
```
#### Verify driver installation
To verify the driver is installed correctly, run:
```bash
odbcinst -q -d
```
The output should include **Arrow Flight SQL**.
{{% /tab-content %}}
{{< /tabs-wrapper >}}
## Install the Power BI connector
After installing the ODBC driver, download and install the InfluxDB 3 custom connector for Power BI Desktop.
<a class="btn" href="https://docs.influxdata.com/downloads/InfluxDB.pqx">Download the InfluxDB 3 Power BI connector</a>
Or use PowerShell to download:
{{% code-placeholders "YOUR_USER" %}}
{{% code-placeholders "YOUR\_USER" %}}
```powershell
# Download the connector
Invoke-WebRequest -Uri "https://docs.influxdata.com/downloads/InfluxDB.pqx" `
-OutFile "C:\Users\YOUR_USER\Downloads\InfluxDB.pqx"
```
{{% /code-placeholders %}}
Replace the following:
- {{% code-placeholder-key %}}`YOUR_USER`{{% /code-placeholder-key %}}: Your Windows username
#### Install the connector
Move the `.pqx` connector file to the Power BI custom connectors directory:
### Move the connector to the custom connectors directory
1. Create the custom connectors folder if it doesn't exist:
@ -96,11 +172,13 @@ Move the `.pqx` connector file to the Power BI custom connectors directory:
2. Move the connector file to the custom connectors folder:
{{% code-placeholders "YOUR_USER" %}}
{{% code-placeholders "YOUR\_USER" %}}
```powershell
Move-Item "C:\Users\YOUR_USER\Downloads\InfluxDB.pqx" `
"$env:USERPROFILE\Documents\Power BI Desktop\Custom Connectors\"
```
{{% /code-placeholders %}}
Replace the following:
@ -119,8 +197,10 @@ To use custom connectors, you must adjust Power BI Desktop's security settings:
5. Click **OK**
6. **Restart Power BI Desktop** for the changes to take effect
> [!Warning]
> \[!Warning]
>
> #### Security considerations
>
> Enabling uncertified extensions allows any custom connector to load.
> Only enable this setting if you trust the connectors you're installing.
@ -129,9 +209,13 @@ To use custom connectors, you must adjust Power BI Desktop's security settings:
After installing the connector and restarting Power BI Desktop:
1. Open **Power BI Desktop**
2. Click **Get Data** > **More**
3. Search for **InfluxDB 3** and select it
4. Click **Connect**
5. In the **InfluxDB 3** connection dialog, configure the following:
- **Server**: Your {{% product-name %}} URL without the port, (for example,
@ -141,18 +225,25 @@ After installing the connector and restarting Power BI Desktop:
- **Native Query** (optional): Enter a SQL query to limit the data loaded
6. Select **DirectQuery** as the **Data Connectivity mode**
7. Click **OK**
8. When prompted for credentials:
- Select **Basic** authentication
- **Username**: Leave blank or enter any value
- **Password**: Enter your {{% show-in "cloud-dedicated, clustered" %}}{{% token-link "database" %}}{{% /show-in %}}{{% show-in "cloud-serverless" %}}{{% token-link %}}{{% /show-in %}}{{% show-in "core, enterprise" %}}{{% token-link "admin" "database" %}}{{% /show-in %}}{{% show-in "enterprise" %}} with query permissions for the target database{{% /show-in %}}
9. Click **Connect**
10. Preview your data and click **Load**
> [!Important]
> \[!Important]
>
> #### Limit query size for optimal performance
>
> {{% product-name %}} can handle high throughput and dimensional data.
> To ensure Power BI can successfully process data, limit query size by:
>
> - Using a `LIMIT` clause
> - Specifying time ranges with `WHERE time >= ...`
> - Filtering by specific columns or tags
@ -165,6 +256,7 @@ When connecting to InfluxDB 3, you can use the **Native Query** option to
execute custom SQL queries:
1. In the connection dialog, enable **Native Query**
2. Enter your query in the provided field:
```sql
@ -182,6 +274,7 @@ execute custom SQL queries:
```
3. Select **DirectQuery** as the connectivity mode
4. Click **OK** to load the data
### Create visualizations
@ -223,6 +316,42 @@ After loading data, Power BI displays your dataset in the **Fields** pane.
## Troubleshooting
### Driver not found
If Power BI or other applications can't find the Arrow Flight SQL ODBC driver:
{{< tabs-wrapper >}}
{{% tabs %}}
[Windows](#)
[macOS and Linux](#)
{{% /tabs %}}
{{% tab-content %}}
1. Open **ODBC Data Source Administrator (64-bit)**
2. Navigate to the **Drivers** tab
3. Verify **Arrow Flight SQL ODBC Driver** appears in the list
4. If not listed, reinstall the driver
{{% /tab-content %}}
{{% tab-content %}}
1. Run the following command to list installed drivers:
```bash
odbcinst -q -d
```
2. Verify **Arrow Flight SQL** appears in the output
3. Check `/etc/odbcinst.ini` for proper driver configuration
4. Ensure the driver library path is correct
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### Connector not found
If Power BI Desktop doesn't show the InfluxDB 3 connector:
@ -236,28 +365,41 @@ If Power BI Desktop doesn't show the InfluxDB 3 connector:
If you encounter connection errors:
- Verify your {{% product-name %}} instance is accessible
- Check that the host URL and port are correct
- Verify your {{% product-name %}} instance is running and accessible
- Check that the host URL and port are correct:
- Local instances typically use `http://localhost:8181`
- {{% show-in "cloud-serverless,cloud-dedicated" %}}{{% product-name %}} instances use cluster-specific URLs{{% /show-in %}}
- {{% show-in "cloud-serverless,cloud-dedicated" %}}{{% product-name %}} instances use cluster-specific URLs with port `443`{{% /show-in %}}
- Ensure `UseEncryption` is configured correctly for your connection type
- Verify network connectivity and firewall rules allow connections on the specified port
- Ensure your token has query permissions for the specified database
- Verify firewall rules allow connections on the specified port
### Authentication errors
If authentication fails:
- Verify your database token is valid and not expired
- {{% show-in "enterprise" %}}Ensure the token has permissions for the target database{{% /show-in %}}
- Check that you entered the token in the **Password** field
- Ensure the token is specified correctly (in the **Password** field for Power BI)
- {{% show-in "enterprise" %}}Verify the token has query permissions for the target database{{% /show-in %}}
- Check that the token was copied correctly without extra spaces or characters
- Leave the **Username** field blank or enter any value
### Query errors
If queries fail or return errors:
- Verify SQL syntax is correct for InfluxDB SQL
- Check that referenced tables (measurements) exist in the database
- Ensure column names match your schema
- Review the [SQL reference](/influxdb3/version/reference/sql/) for supported features
- For large result sets, consider adding `LIMIT` clauses
### Query performance
For better query performance:
- Always use `WHERE` clauses to filter data before loading
- Include time range filters to limit the data scanned
- Include time range filters (for example, `WHERE time >= now() - INTERVAL '7 days'`) to limit the data scanned
- Select only the columns you need
- Use the `LIMIT` clause to restrict result size
- Consider using **DirectQuery** mode instead of **Import** for large datasets
- Monitor query execution for optimization opportunities