A package to fetch and save Power BI tables via XMLA endpoint
Project description
Here's a revised version of your README.md
with improved clarity, formatting, and additional instructions to guide beginner Python users:
# download_pbi_xmla
**Version:** 0.4
**Description:** A Python package to fetch and save Power BI tables via the XMLA endpoint using DAX queries. The package allows data to be saved in either Parquet or CSV format.
## Table of Contents
1. [Overview](#overview)
2. [System Requirements](#system-requirements)
3. [Installation](#installation)
4. [Setup](#setup)
5. [Usage](#usage)
6. [Running the Scripts](#running-the-scripts)
7. [Troubleshooting](#troubleshooting)
8. [Contributing](#contributing)
9. [License](#license)
## Overview
The `download_pbi_xmla` package is designed to connect to a Power BI XMLA endpoint, execute DAX queries, and save the results in either Parquet or CSV formats. This tool is specifically for use in a Windows environment due to its dependency on `.NET` assemblies and the `pythonnet` library.
## System Requirements
- **Operating System:** Windows
- **Python Version:** 3.9 to 3.12
- **Required Software:** .NET Framework and Power BI Pro or Premium capacity access with XMLA endpoint enabled.
- **Authentication:** The package currently only supports authentication using the Microsoft Authentication Library (MSAL) to obtain an access token, supporting Multi-Factor Authentication (MFA).
## Installation
### Prerequisites
1. **Install Python**
Ensure you have Python 3.9 to 3.12 installed. You can download it from [python.org](https://www.python.org/downloads/).
2. **Install .NET Framework**
Install the required .NET Framework runtime from [Microsoft's website](https://dotnet.microsoft.com/download).
3. **Install Poetry** (optional)
[Poetry](https://python-poetry.org/docs/#installation) is a dependency manager for Python that simplifies package installation and management. Follow the instructions on their website to install it.
### Steps to Install the Package
#### Option 1: Using Poetry
If you have Poetry installed, you can add the package to your environment by running:
```bash
poetry add download_pbi_xmla
Option 2: Using pip
Alternatively, you can install the package directly using pip:
pip install download_pbi_xmla
Setup
-
Run the Setup Script
This script copies example configuration files and prompts you to edit them.-
Using Poetry:
poetry run setup-files
-
Using pip:
python -m download_pbi_xmla.setup_files
-
-
Edit the Configuration Files
After running the setup script, two configuration files (.env
andconfig.json
) will be created in your project's root directory. You need to update these files with your credentials and specific configurations.- .env File Example:
Open the newly created.env
file and provide your credentials and other necessary settings:
CLIENT_ID=your-client-id CLIENT_SECRET=your-client-secret TENANT_ID=your-tenant-id CONFIG_FILE=config.json SAVE_PATH=./data
- config.json File Example:
Modify theconfig.json
file to specify the Power BI server, database, DAX queries, and output formats:
{ "server": "your-server-url", "database": "your-database-name", "dax_queries": [ { "query": "Add your DAX query here", "output_file": "Your filename here.parquet", "format": "parquet" }, { "query": "Add your second DAX query here (or delete this section)", "output_file": "Your second filename here.csv", "format": "csv" } ] }
- .env File Example:
Usage
To use the package, you can execute the provided scripts to fetch data from Power BI XMLA endpoints and save it in your desired format.
Fetch and Save Data
You can run the main download script using either Poetry or pip:
-
Using Poetry:
poetry run run-download
-
Using pip:
python -m download_pbi_xmla.run_download
Running the Scripts
1. Fetch Tables Script
This script downloads tables and saves them using the specified configurations:
-
Using Poetry:
poetry run fetch-tables
-
Using pip:
python -m download_pbi_xmla.fetch_tables
2. Setup Environment Script
To set up your environment by creating necessary configuration files:
-
Using Poetry:
poetry run setup-environment
-
Using pip:
python -m download_pbi_xmla.setup_environment
Troubleshooting
Common Issues
-
.NET Assemblies Not Found Ensure you have the correct version of the .NET runtime installed on your machine. The
pythonnet
library only works on Windows systems. -
Invalid Credentials Double-check that your credentials in the
.env
file are correct and that your Azure AD app registration has the necessary permissions to access the Power BI XMLA endpoint. -
Data Save Errors Ensure that the specified output paths and formats are correct. The script supports saving data as either Parquet or CSV files.
Contributing
If you'd like to contribute to this project, please fork the repository and create a pull request with your changes. Ensure that all tests pass before submitting.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
### Key Improvements and Additions:
1. **Clearer Sections:** Reorganized some sections for better flow and clarity.
2. **Expanded Steps:** Provided detailed instructions for beginners, including the installation and running of the setup script using both Poetry and pip.
3. **Improved Formatting:** Added headings and code blocks for easy reading and copying.
4. **Additional Instructions:** Explained why and when to use Poetry or pip, making the guide more beginner-friendly.
Feel free to further customize it based on your preferences or any additional specific details!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file download_pbi_xmla-0.4.tar.gz
.
File metadata
- Download URL: download_pbi_xmla-0.4.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48b03da91d5555b3f7484813b33067126ac61b9aa5a1e88d756deba4c5cd7600 |
|
MD5 | d4fb2c18b2434ed8d6d6702ce6e28f69 |
|
BLAKE2b-256 | 81d430570bae407bc968df518a8f797b9b185f11609a97d85b5a04895f3d5516 |
File details
Details for the file download_pbi_xmla-0.4-py3-none-any.whl
.
File metadata
- Download URL: download_pbi_xmla-0.4-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb8b681c72df3c27a7248b8c1fd73349244b644acaca93d8e96e1ead28e9dcfd |
|
MD5 | 855544cd004f98a3f554fef6cdecda08 |
|
BLAKE2b-256 | 7b9bf1ba2e61047eebe5a130632952a766197143234ff4efdc200790b85e42fb |