Microsoft-Fabric

Fabric RTI 101: Hopping

Fabric RTI 101: Hopping

A hopping window is a flexible windowing strategy that combines elements of both tumbling and sliding. Like tumbling, hopping windows have a fixed length — for example, 10 minutes. But unlike tumbling, they are allowed to overlap, because they advance by a smaller step size than their length.

For example, let’s say we configure a 10-minute window that hops forward every 5 minutes. That means between 12:00 and 12:10, you get one window, and between 12:05 and 12:15, you get another. Each window is 10 minutes long, but because they’re starting 5 minutes apart, they overlap. This means that every event can contribute to more than one window.

2026-04-19

SSRS and Fabric Paginated Reports: Avoid Hiding T-SQL in Reports

SSRS and Fabric Paginated Reports: Avoid Hiding T-SQL in Reports

I often work with reports either in SQL Server Reporting Services (SSRS or now Power BI Reporting Services) and Fabric Paginated Reports. At a site this week, the complexity of the reports we were working on reminded me that I really, really don’t like seeing T-SQL code (or really any complex business logic) embedded in reports.

Don’t make refactoring difficult or impossible

DBAs tend to be considered a conservative bunch. One thing they’re usually conservative about is refactoring their databases. In many cases, this is because they have little idea what they will break when they make database changes.

2026-04-18

Fabric RTI 101: Session

Fabric RTI 101: Session

A session window works very differently from tumbling or sliding windows. Instead of cutting streams into fixed blocks of time, a session window groups events based on periods of user or device activity. The window continues to collect events as long as there is activity, and it automatically closes after a defined period of inactivity.

For example, imagine a customer browsing an online store. They click through pages, add items to their cart, maybe watch a video. All of that activity within, say, a 10-minute span of clicks would be grouped into one session. If the customer stops interacting for more than 10 minutes, the window closes, and the next click starts a new session.

2026-04-17

Fabric RTI 101: Sliding

Fabric RTI 101: Sliding

A sliding window is a type of temporal window where the windows are of fixed length, but they overlap because they slide forward by a smaller step than their total size. This makes them perfect for producing smooth, continuous metrics like rolling averages.

For example, suppose we define a sliding window of five minutes that advances every one minute. That means the system calculates results based on the last five minutes of events, then slides forward by one minute and recalculates. Each window overlaps the previous one, so every result shares a lot of the same data, but with just a bit of new information added.

2026-04-15

Fabric RTI 101: Tumbling

Fabric RTI 101: Tumbling

Let’s take a look at the windowing options available. The first of these is the tumbling window, and it’s the simplest type of temporal window. It slices the event stream into fixed-length, adjacent blocks of time, with no overlap and no gaps. Think of it like dividing a timeline into perfectly equal buckets — each window starts as soon as the previous one ends.

For example, let’s say we’re monitoring sales transactions. If we set up a tumbling window of five minutes, then every five minutes the system calculates totals or averages. At the end of each window, you get a new result, and then the process resets for the next five-minute slice.

2026-04-13

Fabric RTI 101: Applying Temporal Windows

Fabric RTI 101: Applying Temporal Windows

One of the challenges with streaming data is that it never ends — it just keeps flowing. If we tried to calculate totals or averages across the entire stream, the numbers would just keep growing forever, and we’d never get a meaningful result. That’s why we use temporal windows.

A temporal window lets us break the continuous stream into slices of time, so we can apply aggregations within those boundaries. For example, instead of calculating total transactions forever, we might calculate total transactions every minute, or average sensor readings every five seconds. Each window produces a result that can be stored, visualized, or acted upon in real time.

2026-04-11

Fabric RTI 101: Grouping

Fabric RTI 101: Grouping

When we talk about grouping in real-time data processing, we’re talking about organizing events according to attributes that are meaningful for analysis. Instead of treating the event stream as one giant firehose, grouping lets us carve it up into categories that align with how the business thinks about its data.

For example, in an IoT scenario, we might group telemetry events by device ID. This way, instead of calculating one global average temperature across thousands of sensors, we can calculate average per device, giving us much more useful insights. In a retail scenario, we could group transactions by customer ID to analyze individual purchasing patterns, or by region to monitor performance across different locations. Grouping is what enables those per-customer, per-device, or per-region dashboards that managers and operators rely on.

2026-04-09

Fabric RTI 101: Joining with Other Data Sets

Fabric RTI 101: Joining with Other Data Sets

The Join operation allows you to bring together data from multiple sources in real time — much like performing a SQL join on continuously arriving data.

Imagine you have one stream of telemetry from IoT devices and another stream of configuration updates.

By joining them on a common key, such as a device ID, you can enrich your telemetry with configuration or location context in real time.

Eventstream supports different types of joins, including both inner joins (matching only overlapping records), and outer joins (keeping all events from one stream, even when there’s no match).

2026-04-07

Fabric RTI 101: Aggregating

Fabric RTI 101: Aggregating

When we talk about aggregation, we’re really talking about taking huge volumes of raw events and rolling them up into something that’s usable, measurable, and actionable. A raw stream might be thousands of individual events per second — each transaction, each sensor ping, each click. By themselves, they’re useful for tracing details, but they don’t tell the bigger story.

Aggregation lets us step back and say: Instead of looking at every single reading, let’s look at the total, the average, or the maximum over a period of time. Common aggregation functions are ones you already know — COUNT, SUM, AVG, MIN, MAX.

2026-04-05

Fabric RTI 101: Managing Fields

Fabric RTI 101: Managing Fields

When working with real-time data, it’s easy for your streams to become cluttered — especially as events come from multiple sources with different structures. That’s where the Manage Fields option becomes essential.

It gives you control over the shape of your data stream. You can choose which fields to keep and drop those you don’t need, which helps reduce noise and improves performance. For example, you might remove diagnostic fields or metadata columns that aren’t needed for your analytics.

2026-04-03