Reading data in an ODBC application
In this section we will learn how to configure and use Power BI Service Connector in the API Driver to extract data from the Power BI Service.
Create data source using Power BI Service ODBC Driver
Video instructions
Watch this quick walkthrough to see how to configure your Power BI Service ODBC data source, or scroll down for the step-by-step written guide.
Step-by-step instructions
To get data from Power BI Service using , we first need to create an ODBC data source. We will later read this data in . Perform these steps:
-
Download and install ODBC PowerPack (if you haven't already).
-
Search for
odbcand open the ODBC Data Sources (64-bit):
-
Create a User data source (User DSN) based on the ZappySys API Driver driver:
ZappySys API Driver
- Create and use a User DSN if the client application runs under a User Account. This is the ideal option at design time (e.g., when developing in Visual Studio). Use it for both types of applications (64-bit and 32-bit).
- Create and use a System DSN if the client application runs under a System Account (e.g., as a Windows Service). This is usually the required option in a production environment. If your Windows Service is a 32-bit application, you must use the 32-bit ODBC Data Source Administrator to configure this
-
When the Configuration window appears give your data source a name if you haven't done that already, then select "Power BI Service" from the list of Popular Connectors. If "Power BI Service" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:
PowerBiServiceDSNPower BI Service
-
Select your authentication scenario below to expand connection configuration steps to:
- Configure the authentication in Power BI Service.
- Enter those details into the ZappySys API Driver data source configuration.
User Credentials
Power BI Service authentication
Use delegated access (User Credentials) whenever you want to let a signed-in user work with their own resources or resources they can access. Whether it's an admin setting up policies for their entire organization or a user deleting an email in their inbox, all scenarios involving user actions should use delegated access. [API reference]
Follow these simple steps below to create Microsoft Entra ID application with delegated access:
WARNING: If you are planning to automate processes, we recommend that you use a Application Credentials authentication method. In case, you still need to use User Credentials, then make sure you use a system/generic account (e.g.automation@my-company.com). When you use a personal account which is tied to a specific employee profile and that employee leaves the company, the token may become invalid and any automated processes using that token will start to fail.- Navigate to the Azure Portal and log in using your credentials.
- Access Microsoft Entra ID.
-
Register a new application by going to App registrations and clicking on New registration button:
INFO: Find more information on how to register an application in Graph API reference. -
When configuration window opens, configure these fields:
-
Supported account type
- Use
Accounts in this organizational directory only, if you need access to data in your organization only.
- Use
-
Supported account type
-
Redirect URI:
- Set the type to
Public client/native (mobile & desktop). - Use
https://zappysys.com/oauthas the URL.
- Set the type to
-
After registering the app, copy the Application (client) ID for later:
-
Copy OAuth authorization endpoint (v2) & OAuth token endpoint (v2) URLs to use later in the configuration:
-
Now go to SSIS package or ODBC data source and use the copied values in User Credentials authentication configuration:
- In the Authorization URL field paste the OAuth authorization endpoint (v2) URL value you copied in the previous step.
- In the Token URL field paste the OAuth token endpoint (v2) URL value you copied in the previous step.
- In the Client ID field paste the Application (client) ID value you copied in the previous step.
-
In the Scope field use the default value or select individual scopes, e.g.:
-
offline_access -
https://analysis.windows.net/powerbi/api/Workspace.Read.All -
https://analysis.windows.net/powerbi/api/Dataset.Read.All -
https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All
Admin consent note:- Token generation can still ask for admin approval, even when delegated scopes are listed in API permissions.
- A Global Administrator can allow user consent for selected low-impact delegated permissions.
- If tenant policy blocks user consent, an administrator must approve the requested delegated permissions.
-
- Press Generate Token button to generate Access and Refresh Tokens.
- Click Test Connection to confirm the connection is working.
- Optional step. Choose Default Workspace from the drop down menu.
- Choose Default Dataset from the drop down menu.
- Done! Now you are ready to use the API Connector!
API Connection Manager configuration
Just perform these simple steps to finish authentication configuration:
-
Set Authentication Type to
User Credentials [OAuth] - Optional step. Modify API Base URL if needed (in most cases default will work).
- Fill in all the required parameters and set optional parameters if needed.
- Press Generate Token button to generate the tokens.
- Finally, hit OK button:
PowerBiServiceDSNPower BI ServiceUser Credentials [OAuth]https://api.powerbi.com/v1.0/myorgRequired Parameters Authorization URL Fill-in the parameter... Token URL Fill-in the parameter... Application (client) ID Fill-in the parameter... Scope Fill-in the parameter... Default Dataset (select after generating tokens) Fill-in the parameter... Optional Parameters Client Secret Redirect URI (must match App Redirect URI) Default Workspace (Keep Empty for My Workspace - select after generating tokens) RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429|503 RetryCountMax 20 RetryWaitTimeMs 1000 RetryMultiplyWaitTime True Login options
Find full details in the Power BI Service Connector authentication reference. -
Once the data source connection has been configured, it's time to configure the SQL query. Select the Preview tab and then click Query Builder button to configure the SQL query:
ZappySys API Driver - Power BI ServiceRead and write Microsoft Power BI data effortlessly. Access, refresh, and manage datasets, reports, and dashboards — almost no coding required.PowerBiServiceDSN
-
Start by selecting the Table or Endpoint you are interested in and then configure the parameters. This will generate a query that we will use in to retrieve data from Power BI Service. Hit OK button to use this query in the next step.
SELECT * FROM Workspaces WHERE Id='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
Some parameters configured in this window will be passed to the Power BI Service API, e.g. filtering parameters. It means that filtering will be done on the server side (instead of the client side), enabling you to get only the meaningful datamuch faster . -
Now hit Preview Data button to preview the data using the generated SQL query. If you are satisfied with the result, use this query in :
ZappySys API Driver - Power BI ServiceRead and write Microsoft Power BI data effortlessly. Access, refresh, and manage datasets, reports, and dashboards — almost no coding required.PowerBiServiceDSNSELECT * FROM Workspaces WHERE Id='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
You can also access data quickly from the tables dropdown by selecting <Select table>.AWHEREclause,LIMITkeyword will be performed on the client side, meaning that thewhole result set will be retrieved from the Power BI Service API first, and only then the filtering will be applied to the data. If possible, it is recommended to use parameters in Query Builder to filter the data on the server side (in Power BI Service servers). -
Click OK to finish creating the data source.
Reading Power BI Service data from client application
- Firstly, to get data from ODBC data source based on ZappySys ODBC driver, in your client application, you would need to connect to ODBC source and then from the list select the data source.
-
Finally, to read the data just read tables/views in your app or enter a SQL statement to extract data, e.g.:
SELECT * FROM Datasets
Power BI Service Connector Examples
The ZappySys API Driver is a user-friendly interface designed to facilitate the seamless integration of various applications with the Power BI Service API. With its intuitive design and robust functionality, the ZappySys API Driver simplifies the process of configuring specific API endpoints to efficiently read or write data from Power BI Service.
Click here to find more Power BI Service Connector examples designed for seamless integration with the ZappySys API ODBC Driver under ODBC Data Source (36/64) or ZappySys Data Gateway, enhancing your ability to connect and interact with Prebuilt Connectors effectively.
Consume Data inside your App / Programming Language
Once you know how to load data from Power BI Service Connector, you can click on one of the below links to learn the steps how to consume data inside your App / Programming Language from Power BI Service Connector.ODBC inside ETL / Reporting / BI Tools
- Power BI
- Tableau
- Excel
- Informatica PowerCenter
- QlikView
- SQL Server / Linked Server
- SSRS (SQL Server Reporting Services)
ODBC inside Programming Languages
Key features of the ZappySys API Driver include:
The API ODBC driver facilitates the reading and writing of data from numerous popular online services (refer to the complete list here) using familiar SQL language without learning complexity of REST API calls. The driver allows querying nested structure and output as a flat table. You can also create your own ODBC / Data Gateway API connector file and use it with this driver.
Intuitive Configuration: The interface is designed to be user-friendly, enabling users to easily set up the specific API endpoints within Power BI Service without requiring extensive technical expertise or programming knowledge.
Customizable Endpoint Setup: Users can conveniently configure the API endpoint settings, including the HTTP request method, endpoint URL, and any necessary parameters, to precisely target the desired data within Power BI Service.
Data Manipulation Capabilities: The ZappySys API Driver allows for seamless data retrieval and writing, enabling users to fetch data from Power BI Service and perform various data manipulation operations as needed, all through an intuitive and straightforward interface.
Secure Authentication Integration: The driver provides secure authentication integration, allowing users to securely connect to the Power BI Service API by inputting the necessary authentication credentials, such as API tokens or other authentication keys.
Error Handling Support: The interface is equipped with comprehensive error handling support, ensuring that any errors or exceptions encountered during the data retrieval or writing process are efficiently managed and appropriately communicated to users for prompt resolution.
Data Visualization and Reporting: The ZappySys API Driver facilitates the seamless processing and presentation of the retrieved data from Power BI Service, enabling users to generate comprehensive reports and visualizations for further analysis and decision-making purposes.
Overall, the ZappySys API Driver serves as a powerful tool for streamlining the integration of applications with Power BI Service, providing users with a convenient and efficient way to access and manage data, all through a user-friendly and intuitive interface.