MotherDuck-Open-Source / duckdb-power-query-connector

DuckDB Power Query Custom Connector by MotherDuck
MIT License
37 stars 3 forks source link

DuckDB Power Query Connector by MotherDuck

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.

  1. Installing
  2. How to use with Power BI
  3. Turning on UTF-8 support in the Language & Region settings

Installing

  1. Download the latest DuckDB ODBC driver from the DuckDB Power Query Connector GitHub Releases for Windows:

  2. Extract the .zip archive into a permanent location, such as C:\Program Files\duckdb_odbc, and install the latest DuckDB driver by running odbc_install.exe.

  3. Check that the correct version was installed. To do this, open the Registry Editor by running regedit in the command prompt or Run dialog. Browse to the HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\DuckDB Driver entry and check that the Driver field contains the version you installed. If not, delete the DuckDB Driver registry key and rerun the installer.

  4. Open Power BI, go to File -> Options and settings -> Options -> Security -> Data Extensions. Enable "Allow any extensions to load without validation or warning". Dialog window showing Power BI Options -> Security -> Data Extensions

  5. Download the latest version of the DuckDB Power Query extension:

  6. Create this folder if it does not yet exist: [Documents]\Power BI Desktop\Custom Connectors.

  7. 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.

How to use with Power BI

  1. Click on Get Data -> More...
  2. Search for DuckDB and click "Connect" Find DuckDB connector
  3. 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 in read_only mode, you can set it to true. Connect to your DuckDB database Click "OK".
  4. Click "Connect". Connect dialog
  5. Select the table(s) you want to import. Click "Load". Navigator dialog to preview and select your table(s)
  6. You can now query your data and create visualizations! Power BI example usage

Turning on UTF-8 support in the Language & Region settings

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.

  1. Open start menu and type "Language settings". Open the "Language & region" settings
  2. Click on "Administrative language settings"
  3. Click on "Change system locale"
  4. Check the "Beta: Use Unicode UTF-8 for worldwide language support" and click OK

Screenshot 2024-05-03 165950

  1. This prompts Windows to restart.
  2. 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:

image