This is the Power Query Custom Connector for DuckDB. Use this to connect to a DuckDB database in memory, from a local file or on MotherDuck with Power BI and Excel.
- Installing
- How to use with Power BI
- Turning on UTF-8 support in the Language & Region settings
- [Experimental] Power BI Service
-
Download the latest DuckDB ODBC driver from the DuckDB Power Query Connector GitHub Releases for Windows:
-
Extract the
.zip
archive into a permanent location, such asC:\Program Files\duckdb_odbc
, and install the latest DuckDB driver by runningodbc_install.exe
. -
Check that the correct version was installed. To do this, open the Registry Editor by running
regedit
in the command prompt orRun
dialog. Browse to theHKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\DuckDB Driver
entry and check that the Driver field contains the version you installed. If not, delete theDuckDB Driver
registry key and rerun the installer. -
Open Power BI, go to File -> Options and settings -> Options -> Security -> Data Extensions. Enable "Allow any extensions to load without validation or warning".
-
Download the latest version of the DuckDB Power Query extension:
-
Create this folder if it does not yet exist:
[Documents]\Power BI Desktop\Custom Connectors
. -
Move or copy the
duckdb-power-query-connector.mez
file into[Documents]\Power BI Desktop\Custom Connectors
. Note that if this location does not work, you may need to place this in your OneDrive Documents folder.
- Click on Get Data -> More...
- Search for
DuckDB
and click "Connect" - Enter your database location. This can be a local file path (e.g.
~\my_database.db
) or a MotherDuck database location (e.g.md:my_database
). (Optional) enter your MotherDuck token. If you want to access the database inread_only
mode, you can set it totrue
.Click "OK".
- Click "Connect".
- Select the table(s) you want to import. Click "Load".
- You can now query your data and create visualizations!
UTF-8 is currently not supported in the DuckDB ODBC driver. As a workaround, you can turn on UTF-8 decoding in Windows. Note that this may change behavior for other applications, so please use with caution.
- Open start menu and type "Language settings". Open the "Language & region" settings
- Click on "Administrative language settings"
- Click on "Change system locale"
- Check the "Beta: Use Unicode UTF-8 for worldwide language support" and click OK
- This prompts Windows to restart.
- Next, open Power BI, click on "Options and settings" -> "Options" -> "Data Load" and click the "Clear cache" button.
Now, you should be able to load your UTF-8 encoded database with Power BI directly:

To use the Power BI Service with DuckDB, you can use the On-Premises Data Gateway application. Note that data will only be available when the gateway is on and connected to the internet. This will enable features like automated refresh, and let you share your PowerBI dashboards online.
- Follow these instructions to install the on-premises data gateway: Download and install a standard gateway.
- Open Services, and find the On-premises data gateway service. Double click to open the Properties dialog.

Go to the "Log On" tab and click "Local System Account" and check "Allow service to interact with Desktop".

- Click on "Restart" to restart the service. Open the "Connectors" tab and wait until "DuckDB" shows up in Custom Connectors. If it does not, please follow the Custom Connector installation instructions above.

- Go to Power BI Service and click on the "Settings" icon in the top right. Navigate to the "Manage connections and gateways" page.

- Click on the dots menu next to the gateway you configured in step 1. and click on "Settings"

- Click the "Allow user's cloud data sources to refresh through this gateway cluster" and "Allow user's custom data connectors to refresh through this gateway cluster."

- On the "Manage connections and gateways" page, click on the "Connections" tab and click "+ New"

-
Enter your connection details. You can enter any local file name here, or use MotherDuck. If you do, make sure to enter a valid MotherDuck token.
If you are using MotherDuck, make sure that the MotherDuck extension is installed under
C:\WINDOWS\system32\config\systemprofile\.duckdb\extensions\
. To do so, you can download the DuckDB CLI client for Windows, and runINSTALL motherduck
. Then, you can copy over the extension files via PowerShell:cp -R '~\.duckdb\extensions\v1.2.0\' "C:\WINDOWS\system32\config\systemprofile\.duckdb\extensions\"
Enable the "Skip test connection" check box.

Click "Create".

- Now you can create a Power BI report and publish it to Power BI Service. On your report, click "Publish".

- Done! Now you can click on the URL in the Publishing to Power BI dialog to access the online report.
