Your Power BI dashboards refresh once a day. Your data changes every second. IoT sensors emit readings continuously. Sales transactions happen in real time. Customer interactions generate events every minute.
If your dashboards are always yesterday's news, you need Real-Time Intelligence.
Microsoft Fabric's Real-Time Intelligence suite brings streaming data and real-time analytics to Power BI. KQL databases for fast querying, Eventstreams for data ingestion, Activator for automated actions, and real-time dashboards for live visualisation — all within your Fabric workspace.
This guide covers what Real-Time Intelligence is, how each component works, and how Power BI teams can use it to move from batch to real-time.
The Three Pillars
Real-Time Intelligence has three core components:
1. KQL Databases
KQL (Kusto Query Language) databases are optimised for fast querying of large volumes of streaming data. They are the analytical engine behind Real-Time Intelligence.
What KQL is:
- A query language designed for log and telemetry data
- Similar to SQL but optimised for time-series and event data
- Supports aggregations, joins, windowing functions, and geospatial queries
- Runs queries in seconds over billions of rows
How it differs from SQL and DAX:
| Feature | SQL | DAX | KQL |
|---|---|---|---|
| Best for | Relational data | Semantic models | Streaming/event data |
| Query speed | Fast | Fast | Very fast on time-series |
| Time-series | Manual | Manual | Built-in operators |
| Pattern matching | Limited | Limited | Native regex and parsing |
| Typical use | OLTP, warehousing | Power BI reports | Logs, IoT, telemetry |
Creating a KQL database in Fabric:
- Open your Fabric workspace
- Click + New → KQL Database
- Name your database (e.g., "IoT-Telemetry")
- The database is created with a KQL query endpoint
2. Eventstreams
Eventstreams are Fabric's real-time data ingestion layer. They capture, transform, and route streaming data from multiple sources.
Data sources supported:
- Azure Event Hubs
- Azure IoT Hubs
- Apache Kafka
- Custom endpoints (HTTP, MQTT)
- Sample data (for testing)
What Eventstreams do:
- Ingest — capture streaming data from sources in real time
- Transform — filter, map, and enrich events as they flow through
- Route — send processed events to KQL databases, lakehouses, or other destinations
Creating an Eventstream:
- In your Fabric workspace, click + New → Eventstream
- Add a data source (e.g., Azure Event Hub)
- Configure the connection and authentication
- Add a destination (e.g., your KQL database)
- Optionally add transformations (filter, map, aggregate)
- Start the stream
3. Activator
Activator is the automation layer. It monitors data in real time and triggers actions when conditions are met.
What Activator does:
- Monitors KQL databases and Eventstreams for threshold breaches
- Triggers automated actions: send Teams notifications, email alerts, Power Automate flows
- Supports complex conditions (time windows, consecutive breaches, trend detection)
- No coding required — configure rules through a visual interface
Example use cases:
- Alert when sales drop below $10,000/hour
- Notify the team when error rates exceed 5% in the last 15 minutes
- Trigger a Power Automate flow when a sensor reading exceeds a threshold
- Send a Teams message when inventory levels fall below reorder point
NL2KQL: Talking to Streaming Data
The game-changer for Power BI teams is NL2KQL — using Data Agents to query KQL databases with natural language.
How it works:
- Create a Data Agent and connect it to your KQL database
- The agent translates natural language questions into KQL queries
- The query runs against the KQL database
- Results are returned in natural language
Example questions:
- "Are there any anomalies in today's error rates?"
- "What is the average response time in the last hour?"
- "Which IoT device has the highest temperature reading right now?"
- "Show me the trend of active users over the last 24 hours"
Setting up NL2KQL:
- Create a Data Agent in your Fabric workspace
- Add your KQL database as a data source
- Write custom instructions explaining your data schema and terminology
- Add example queries showing the KQL patterns the agent should use
- Test and iterate
Example custom instructions for NL2KQL:
You are a real-time analytics assistant. You query KQL databases containing IoT telemetry data.
Data conventions:
- "Errors" = rows in the "Events" table where Level == "Error"
- "Response time" = column "DurationMs" in the "Requests" table
- "Active devices" = distinct DeviceId in the last 5 minutes
- All timestamps are in UTC
KQL conventions:
- Use ago() for relative time: ago(1h) = 1 hour ago
- Use bin() for time grouping: bin(TimeGenerated, 5m) = 5-minute buckets
- Use summarize for aggregations
- Always include a time range in queries
Real-Time Dashboards
Power BI can connect directly to KQL databases for real-time dashboards that update without manual refresh.
Creating a real-time dashboard:
- In Power BI Desktop, click Get Data → Azure Data Explorer (Kusto)
- Enter your KQL database endpoint
- Write KQL queries for your visuals
- Configure auto-refresh (every 1 second to every 30 minutes)
- Publish to the Power BI Service
Alternative: Fabric Real-Time Dashboards
Fabric also offers native real-time dashboards that connect directly to KQL databases:
- In your Fabric workspace, click + New → Real-Time Dashboard
- Add tiles with KQL queries
- Configure refresh intervals
- Share with your team
When to use each:
- Power BI reports — when you need rich interactivity, DAX measures, and complex layouts
- Fabric Real-Time Dashboards — when you need sub-second refresh and simple KQL-based visuals
Use Cases for Power BI Teams
IoT Monitoring
Scenario: A manufacturing company has 500 sensors across 3 factory floors. Sensors emit temperature, humidity, and vibration readings every 5 seconds.
Solution:
- IoT Hub → Eventstream → KQL database
- Data Agent connected to KQL database for natural language queries
- Real-Time Dashboard showing live sensor readings
- Activator alerts when readings exceed thresholds
Questions the team can ask:
- "Which sensors are currently showing abnormal readings?"
- "What is the average vibration on Factory Floor 2 today?"
- "Alert me if any temperature exceeds 85°C for more than 10 minutes"
Live Sales Tracking
Scenario: An e-commerce company wants to monitor sales in real time during flash sales and promotional events.
Solution:
- Transaction events → Eventstream → KQL database
- Real-Time Dashboard showing live sales by product, region, and channel
- Activator alerts when sales velocity drops below expected levels
- Data Agent for ad-hoc questions from the sales team
Questions the team can ask:
- "What are our top-selling products right now?"
- "How does today's sales velocity compare to last week's flash sale?"
- "Are there any regions underperforming in the last hour?"
Anomaly Detection and Alerting
Scenario: A financial services company monitors transaction patterns for fraud detection and operational anomalies.
Solution:
- Transaction events → Eventstream → KQL database (with 90-day retention)
- KQL queries using series_stats() and series_fit_line() for anomaly detection
- Activator for automated alerts on suspicious patterns
- Data Agent for compliance team queries
Questions the team can ask:
- "Are there any unusual transaction patterns in the last hour?"
- "Which accounts have the highest transaction volume today?"
- "Show me all transactions over $50,000 in the last 24 hours"
Architecture: How It All Fits Together
Here is how Real-Time Intelligence fits into your Fabric architecture:
Data Sources Ingestion Storage Analytics Distribution
----------- --------- ------- --------- ------------
IoT Sensors → Eventstream → KQL Database → Real-Time Dashboard → Teams
Transaction → Eventstream → KQL Database → Data Agent (NL2KQL) → M365 Copilot
Log Data → Eventstream → Lakehouse → Power BI Report → Email
↓ ↓
Activator AI Functions
(thresholds) (sentiment, etc.)
Key integration points:
- OneLake: KQL databases and lakehouses share the same OneLake storage layer. Data in KQL databases is accessible from lakehouses and vice versa.
- Power BI: Can connect to KQL databases directly via KQL connector or through Direct Lake mode.
- Data Agents: Can query KQL databases (NL2KQL), semantic models (NL2DAX), and lakehouses (NL2SQL) from a single agent.
- AI Functions: Can process data from KQL databases using Fabric notebooks with pandas or PySpark.
Licensing
Real-Time Intelligence components have the following licensing requirements:
| Component | Licence Required |
|---|---|
| KQL Database | Fabric F2+ capacity |
| Eventstream | Fabric F2+ capacity |
| Activator | Fabric F2+ capacity |
| Real-Time Dashboard | Fabric F2+ capacity |
| Data Agent (NL2KQL) | Fabric F2+ capacity + Pro/PPU for creation |
| Power BI (KQL connector) | Pro or PPU |
| AI Functions on KQL data | Fabric F2+ capacity |
All Real-Time Intelligence features require Fabric capacity. They are not available with Power BI Pro alone.
Getting Started
If you are new to Real-Time Intelligence, start here:
- Create a KQL database in your Fabric workspace (5 minutes)
- Load sample data using the built-in sample data feature (2 minutes)
- Run KQL queries in the database explorer to learn the language (30 minutes)
- Create an Eventstream connecting to a test data source (10 minutes)
- Build a real-time dashboard with auto-refresh (15 minutes)
- Set up an Activator rule for threshold alerting (10 minutes)
- Create a Data Agent with NL2KQL for natural language queries (30 minutes)
Total time to get a working real-time pipeline: approximately 2 hours.
Summary
Real-Time Intelligence bridges the gap between your Power BI dashboards and your live data. KQL databases handle the speed. Eventstreams handle the ingestion. Activator handles the automation. Data Agents handle the natural language interface.
The architecture is built. The integration with Power BI is native. The only question is whether your team is still looking at yesterday's data when they could be looking at right now.