Forum Discussion
generate real time power bi dashboard
Hello all,
How would we push a pandas dataframe dataset into a power bi real time report, that gets refreshed on a schedule. Need less manual intervention. What tools exist in Power Bi that can facilitate this ask.
for clarity:
1) I have a pandas dataframe dataset.
2) I need to have a power bi report read this dataset
--- the python script should also be run at frequent intervals -- maybe 1-2 times a day and
subsequently when a user opens the dashboard, it sees the refreshed dataset.
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.
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
5 Replies
- sannavajjalaResolver II
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.
- rwarrierFrequent Visitor
Thank you for the lightning response. Great clarity. One last on this. If it turns out to be a necessary realtime-then what would be a good path? Also any way that Copilot GitHub AI can be integrated into these? Thank you
- Dev_DholakiaResolver IV
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- rwarrierFrequent Visitor
Hello Dev, Thanks for your kind response. This answered all queries. Appreciate the knowledge and the ability to express it with clarity. Thanks all in the forum.
- alicegrayHelper I
Building a real-time Power BI dashboard typically involves connecting to streaming or near real-time data sources, optimizing the semantic model, and using DirectQuery, Live Connection, or Fabric Real Time Intelligence depending on the use case. It's also important to monitor refresh performance and ensure data quality to avoid delays in reporting. Based on implementation insights shared across the BI community, including resources from Damco, organizations often achieve better results by combining scalable data pipelines with well designed dashboards rather than focusing only on visualization. The goal is to deliver timely, reliable insights that support faster business decisions.