Forum Discussion
generate real time power bi dashboard
- 2 months ago
For your scenario, you don't really need a "real-time" dashboard. Since the data only changes 1–2 times per day, a scheduled refresh architecture is usually much simpler and easier to maintain.
A common approach is:
- Run your Python script on a schedule (Azure Functions, Azure Automation, Fabric Notebook, Databricks, cron job, etc.).
- Write the pandas DataFrame to a persistent store such as a Fabric Lakehouse, SQL database, Azure Storage, SharePoint file, or OneLake.
- Build a Power BI semantic model and report against that storage layer.
- Configure scheduled refresh in Power BI/Fabric after the Python job completes.
This way, users always see the latest data whenever they open the report, without any manual intervention.
If you truly need near real-time updates, you could look at Fabric Real-Time Intelligence, Eventstreams, or a push/streaming architecture. However, for a dataset that refreshes only once or twice daily, storing the DataFrame output and using scheduled refresh is typically the most reliable and cost-effective solution.
- 2 months ago
Hi rwarrier ,
The cleanest path in the Microsoft stack is Fabric Real-Time Intelligence:
- Push events from your Python script into an Eventstream (via Custom App / EventHub / Kafka endpoint).
- Land them into a KQL database (Eventhouse).
- Build a Real-Time Dashboard on top, or a Power BI report in DirectQuery mode against the KQL DB — latency is typically a few seconds.
If you don't need Fabric, the classic alternatives are:
- Power BI Push/Streaming dataset via REST API — simple, but limited (no relationships, row caps, tiles only on dashboards).
- Azure Event Hubs / Stream Analytics → Power BI streaming output for heavier workloads.
Rule of thumb: seconds → Real-Time Intelligence / streaming, minutes → frequent scheduled refresh, hours/day → plain scheduled refresh.
On the GitHub Copilot side:
Copilot itself doesn't "run" your pipeline, but it plugs in nicely around it:- Use GitHub Copilot / Copilot Chat in VS Code to write and refactor the Python ingestion script, KQL queries, and Power BI DAX measures.
- Store the notebook/script in a GitHub repo and trigger it on a schedule (or on push) using GitHub Actions — a solid free alternative to Azure Functions for lightweight jobs.
- Inside Fabric, there's also Copilot for Data Engineering / Data Science / Power BI that can generate PySpark, notebook code, and DAX directly — pairs well with a GitHub-based dev workflow via Fabric Git integration.
So a nice end-to-end setup could be: GitHub repo (Copilot-assisted code) → GitHub Actions or Fabric scheduled notebook → Eventhouse/Lakehouse → Power BI (Direct Lake or DirectQuery).
Hope that closes the loop for you!
If this got you what you needed, a Kudos and an Accepted Solution mark would be great — it helps others searching for the same thing find the answer quicker.
Disclosure: My earlier response above was drafted with the assistance of an AI tool (Microsoft Copilot) and cross-checked against Microsoft Learn documentation. Sharing this note for transparency as per the Community AI Usage Policy
For your scenario, you don't really need a "real-time" dashboard. Since the data only changes 1–2 times per day, a scheduled refresh architecture is usually much simpler and easier to maintain.
A common approach is:
- Run your Python script on a schedule (Azure Functions, Azure Automation, Fabric Notebook, Databricks, cron job, etc.).
- Write the pandas DataFrame to a persistent store such as a Fabric Lakehouse, SQL database, Azure Storage, SharePoint file, or OneLake.
- Build a Power BI semantic model and report against that storage layer.
- Configure scheduled refresh in Power BI/Fabric after the Python job completes.
This way, users always see the latest data whenever they open the report, without any manual intervention.
If you truly need near real-time updates, you could look at Fabric Real-Time Intelligence, Eventstreams, or a push/streaming architecture. However, for a dataset that refreshes only once or twice daily, storing the DataFrame output and using scheduled refresh is typically the most reliable and cost-effective solution.