From f5615970ee858b3c865032e0fb35f0ed1f93abec Mon Sep 17 00:00:00 2001 From: Olha Kramarenko Date: Tue, 24 Mar 2026 14:26:13 +0200 Subject: [PATCH 1/3] Update SingleStore docs with NativeQuery info --- .../singlestore-capabilities-supported.md | 3 +- powerquery-docs/connectors/index.md | 2 +- .../media/singlestore/ss-db-select-mode.png | Bin 17540 -> 27599 bytes powerquery-docs/connectors/singlestore.md | 42 +++++++----------- 4 files changed, 18 insertions(+), 29 deletions(-) diff --git a/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md b/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md index 9a95eea73..2ba6bad1d 100644 --- a/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md +++ b/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md @@ -7,4 +7,5 @@ ms.topic: include * Import * DirectQuery (Power BI semantic models) - +* Advanced options + - Native SQL statement diff --git a/powerquery-docs/connectors/index.md b/powerquery-docs/connectors/index.md index baa2865bb..7010c3120 100644 --- a/powerquery-docs/connectors/index.md +++ b/powerquery-docs/connectors/index.md @@ -284,7 +284,7 @@ The connectors are listed in alphabetical order in separate tables for each lett | [![SharePoint list.](media/index/sharepoint-64.png)
**SharePoint list**](./sharepoint-list.md)
By Microsoft | ![Supported - SharePoint list in Excel](media/index/yes.png) | ![Supported - SharePoint list in Power BI (Semantic models)](media/index/yes.png) | ![Supported - SharePoint list in Power BI (Dataflows)](media/index/yes.png) | ![Supported - SharePoint list in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Supported - SharePoint list in Power Apps (Dataflows)](media/index/yes.png) | ![Supported - SharePoint list in Customer Insights (Dataflows)](media/index/yes.png) | ![Supported - SharePoint list in Analysis Services](media/index/yes.png) | | [![SharePoint Online list.](media/index/sharepoint-64.png)
**SharePoint Online
list**](./sharepoint-online-list.md)
By Microsoft | ![Supported - SharePoint Online list in Excel](media/index/yes.png) | ![Supported - SharePoint Online list in Power BI (Semantic models)](media/index/yes.png) | ![Supported - SharePoint Online list in Power BI (Dataflows)](media/index/yes.png) | ![Supported - SharePoint Online list in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Supported - SharePoint Online list in Power Apps (Dataflows)](media/index/yes.png) 1 | ![Supported - SharePoint Online list in Customer Insights (Dataflows)](media/index/yes.png) | ![Not supported - SharePoint Online list in Analysis Services](media/index/no.png) | | ![Shortcuts Business Insights (Beta).](media/index/shortcuts-logo-64.png)
**Shortcuts Business Insights (Beta)**
By Shortcuts | ![Not supported - Shortcuts Business Insights (Beta) in Excel](media/index/no.png) | ![Supported - Shortcuts Business Insights (Beta) in Power BI (Semantic models)](media/index/yes.png) | ![Supported - Shortcuts Business Insights (Beta) in Power BI (Dataflows)](media/index/yes.png) | ![Supported - Shortcuts Business Insights (Beta) in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Not supported - Shortcuts Business Insights (Beta) in Power Apps (Dataflows)](media/index/no.png) | ![Not supported - Shortcuts Business Insights (Beta) in Customer Insights (Dataflows)](media/index/no.png) | ![Not supported - Shortcuts Business Insights (Beta) in Analysis Services](media/index/no.png) | -| [![SingleStore.](media/index/singlestore-64.png)
**SingleStore (Beta)**](./singlestore.md)
By SingleStore | ![Not supported - SingleStore in Excel](media/index/no.png) | ![Supported - SingleStore in Power BI (Semantic models)](media/index/yes.png) | ![Supported - SingleStore in Power BI (Dataflows)](media/index/yes.png) | ![Supported - SingleStore in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Not supported - SingleStore in Power Apps (Dataflows)](media/index/no.png) | ![Not supported - SingleStore in Customer Insights (Dataflows)](media/index/no.png) | ![Not supported - SingleStore in Analysis Services](media/index/no.png) | +| [![SingleStore.](media/index/singlestore-64.png)
**SingleStore**](./singlestore.md)
By SingleStore | ![Not supported - SingleStore in Excel](media/index/no.png) | ![Supported - SingleStore in Power BI (Semantic models)](media/index/yes.png) | ![Supported - SingleStore in Power BI (Dataflows)](media/index/yes.png) | ![Supported - SingleStore in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Not supported - SingleStore in Power Apps (Dataflows)](media/index/no.png) | ![Not supported - SingleStore in Customer Insights (Dataflows)](media/index/no.png) | ![Not supported - SingleStore in Analysis Services](media/index/no.png) | | ![SiteImprove.](media/index/siteimprove-64.png)
**SiteImprove**
By SiteImprove | ![Not supported - SiteImprove in Excel](media/index/no.png) | ![Supported - SiteImprove in Power BI (Semantic models)](media/index/yes.png) | ![Supported - SiteImprove in Power BI (Dataflows)](media/index/yes.png) | ![Supported - SiteImprove in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Not supported - SiteImprove in Power Apps (Dataflows)](media/index/no.png) | ![Not supported - SiteImprove in Customer Insights (Dataflows)](media/index/no.png) | ![Not supported - SiteImprove in Analysis Services](media/index/no.png) | | [![Smartsheet.](media/index/smartsheet-64.png)
**Smartsheet**
](./smartsheet.md)By Smartsheet | ![Not supported - Smartsheet in Excel](media/index/no.png) | ![Supported - Smartsheet in Power BI (Semantic models)](media/index/yes.png) | ![Supported - Smartsheet in Power BI (Dataflows)](media/index/yes.png) | ![Supported - Smartsheet in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Not supported - Smartsheet in Power Apps (Dataflows)](media/index/no.png) | ![Not supported - Smartsheet in Customer Insights (Dataflows)](media/index/no.png) | ![Not supported - Smartsheet in Analysis Services](media/index/no.png) | | [![Snowflake.](media/index/database-64.png)
**Snowflake**](snowflake.md)
By Microsoft | ![Not supported - Snowflake in Excel](media/index/no.png) | ![Supported - Snowflake in Power BI (Semantic models)](media/index/yes.png) | ![Supported - Snowflake in Power BI (Dataflows)](media/index/yes.png) | ![Supported - Snowflake in Fabric (Dataflow Gen2)](media/index/yes.png) | ![Supported - Snowflake in Power Apps (Dataflows)](media/index/yes.png) | ![Supported - Snowflake in Customer Insights (Dataflows)](media/index/yes.png) | ![Not supported - Snowflake in Analysis Services](media/index/no.png) | diff --git a/powerquery-docs/connectors/media/singlestore/ss-db-select-mode.png b/powerquery-docs/connectors/media/singlestore/ss-db-select-mode.png index 2c1741306d36c47006845ff94e01d05dbabb81d7..70ca58ec78b8f98296a734738446d93dc6c3e16e 100644 GIT binary patch literal 27599 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 hlgzo6=sy1OJ%+XKTk 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
    [!NOTE] +> Existing reports created using the `SingleStoreODBC.Query` (CustomSQL functionality) function call continue to be supported. SingleStore recommends using native database queries for new reports. + ## Connect to SingleStore To connect Microsoft Power BI Desktop to SingleStore DB or Managed Service: @@ -36,9 +39,12 @@ To connect Microsoft Power BI Desktop to SingleStore DB or Managed Service: :::image type="content" source="./media/singlestore/ss-get-data-connector.png" alt-text="Locate the SingleStore Connectors in Get Data dialog."::: -3. In the **SingleStore database** dialog box, enter the IP address or hostname of the SingleStore cluster in **Server**. In **Database**, enter the database name. +3. In the connection configuration dialog, enter or select the following: - Under **Data Connectivity** mode, select the Import or DirectQuery mode, and then select **OK**. + * **Server**: Enter the IP address or the hostname of the SingleStore cluster. + * **Database**: Enter the name of the SingleStore database to connect with. + * **Data Connectivity mode**: Select **Import** or **DirectQuery**. + * (Optional) To ingest data using a native database query, enter the SQL query in the **Native query** box. :::image type="content" source="./media/singlestore/ss-db-select-mode.png" alt-text="Enter server IP / hostname and database and select the connectivity mode."::: @@ -47,10 +53,10 @@ To connect Microsoft Power BI Desktop to SingleStore DB or Managed Service: > [!NOTE] > SingleStoreDB Cloud users can only use **Basic** authentication. - * For **Windows** authentication, [set up a SingleStore server for Kerberos authentication](https://docs.singlestore.com/db/v7.3/en/security/authentication/kerberos-authentication.html). Then select the **Connect** button. + * For **Windows** authentication, [set up a SingleStore server for Kerberos authentication](https://docs.singlestore.com/db/v9.0/security/authentication/kerberos-authentication.html). Then select the **Connect** button. > [!NOTE] - > You need to run Power BI with the user account that maps to the SingleStore DB user. + > You need to run Power BI with the user account that maps to the SingleStore user. Therefore, if the Windows user is 'administrator'@domain, then the database user must be 'administrator'. You may need to create the database user. :::image type="content" source="./media/singlestore/ss-db-windows.png" alt-text="Select Windows authentication."::: @@ -64,31 +70,13 @@ To connect Microsoft Power BI Desktop to SingleStore DB or Managed Service: You can now use Power BI to explore SingleStore data. -## Create a custom SQL report - -> [!NOTE] -> Any user that creates a custom SQL report must only have read-only access to the SingleStore databases. - -To create a new custom SQL report: - -1. Open Power BI Desktop. - -2. In the **Home** ribbon, from the **Get Data** list, select **Blank query**. - -3. In the **Power Query Editor** dialog, specify the query in the following format: - - SingleStoreODBC.Query("\<_ip_address_or_hostname_>", "\<_database_>", "\<_query_>") - - Submit the query. - - > [!NOTE] - > If you're using the server for the first time, select **Edit Credentials** and enter the credentials. Go to **Step 4** in [Connect to SingleStore](#connect-to-singlestore) for more information. - -4. Verify the data to load, and select **Close & Apply**. +## Limitations of Native Database Queries -5. If you've worked with the data set before and it's cached in memory, refresh the report to reset the local cache. On the **Home** ribbon, select **Refresh**. +* To create a custom SQL report using the connector, the user must only have read-only access to the SingleStore databases. +* DDL queries are not supported. +* If the SQL query is specified outside the connector dialog (the connection configuration step), Power BI may prompt you to approve the query for your credentials. -To update the existing custom SQL reports, select the **Refresh** button on the **Home** ribbon. +Refer to [Limitations and issues](https://learn.microsoft.com/en-us/power-query/native-database-query#limitations-and-issues) for more information. ## Modify credentials From dea100b5aeb2d788ef157c90a15238919888d57f Mon Sep 17 00:00:00 2001 From: Olha Kramarenko Date: Tue, 24 Mar 2026 14:32:34 +0200 Subject: [PATCH 2/3] Add SingleStore to the list of the connectors that support NativeQuery --- powerquery-docs/native-database-query.md | 1 + 1 file changed, 1 insertion(+) diff --git a/powerquery-docs/native-database-query.md b/powerquery-docs/native-database-query.md index ff16173c7..4c1013a2b 100644 --- a/powerquery-docs/native-database-query.md +++ b/powerquery-docs/native-database-query.md @@ -61,6 +61,7 @@ The following Power Query connectors support native database queries. | Oracle database | SQL statement | | PostgreSQL | SQL statement | | SAP HANA database | SQL statement | +| SingleStore | SQL statement | | Snowflake | SQL statement | | SQL Server Analysis Services database | MDX or DAX query | | SQL Server database | SQL statement | From b1dbed6aaeaa9713d7ed5db69bb729b0c657bc1e Mon Sep 17 00:00:00 2001 From: Olha Kramarenko Date: Thu, 26 Mar 2026 14:14:25 +0200 Subject: [PATCH 3/3] resolve Copilot comments --- .../connectors/includes/singlestore-capabilities-supported.md | 2 +- powerquery-docs/connectors/singlestore.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md b/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md index 2ba6bad1d..dc6ca8a1d 100644 --- a/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md +++ b/powerquery-docs/connectors/includes/singlestore-capabilities-supported.md @@ -8,4 +8,4 @@ ms.topic: include * Import * DirectQuery (Power BI semantic models) * Advanced options - - Native SQL statement + * Native SQL statement diff --git a/powerquery-docs/connectors/singlestore.md b/powerquery-docs/connectors/singlestore.md index 2543dae36..281b2eb01 100644 --- a/powerquery-docs/connectors/singlestore.md +++ b/powerquery-docs/connectors/singlestore.md @@ -53,7 +53,7 @@ To connect Microsoft Power BI Desktop to SingleStore DB or Managed Service: > [!NOTE] > SingleStoreDB Cloud users can only use **Basic** authentication. - * For **Windows** authentication, [set up a SingleStore server for Kerberos authentication](https://docs.singlestore.com/db/v9.0/security/authentication/kerberos-authentication.html). Then select the **Connect** button. + * For **Windows** authentication, [set up a SingleStore server for Kerberos authentication](https://docs.singlestore.com/db/v9.0/security/authentication/kerberos-authentication). Then select the **Connect** button. > [!NOTE] > You need to run Power BI with the user account that maps to the SingleStore user. Therefore, if the Windows user is 'administrator'@domain, then the database user must be 'administrator'. You may need to create the database user. @@ -72,7 +72,7 @@ You can now use Power BI to explore SingleStore data. ## Limitations of Native Database Queries -* To create a custom SQL report using the connector, the user must only have read-only access to the SingleStore databases. +* To run a native database query using the connector, the user must only have read-only access to the SingleStore databases. * DDL queries are not supported. * If the SQL query is specified outside the connector dialog (the connection configuration step), Power BI may prompt you to approve the query for your credentials.