Data Science | AI | DataOps | Engineering
backgroundGrey.png

Blog

Data Science & Data Engineering blogs

YOUR NEW ACTION HERO! What is Data Activator?

Data Activator is the newest experience to be added to Microsoft’s unified Software-as-a-Service (SaaS) platform Fabric, having been made available in the public preview at the beginning of October.

But what is it? What does it do? How can you use it?

THE TRAILER

It activates data right? Err… not sure that’s even a thing. The one liner I’d give it, is that it acts ON your data.

The concept is that in this day and age, taking action on the insights in your data is still a very manual effort. So why not automate the monitoring of that data and have Data Activator take that action for you? In my mind it’s Microsoft’s attempt to bring Robotic Process Automation (RPA) closer to to your data.

So how does it work and what actions can you take?

SETTING THE SCENE

Currently there are two sources of data you can monitor; Power BI reports and Eventstreams, with a third source, KQL, listed as planned for next year in the Fabric Roadmap. That might seem like a narrow scope of available sources, but realistically you can pump data from pretty much anywhere into those two destinations. Using Power BI reports means the ability to reuse the logic in the semantic model metric layer and trigger events based on some evaluated DAX, whilst if you need to take action on a more event based and real-time basis, you can use Eventstreams to consume data from Azure Event Hubs, Azure IOT Hubs or you can create custom apps using Advanced Messaging Queue Protocol (AMQP) or Kafka.

Whilst the experience is called “Data Activator” the artifact that you actually create is called a Reflex.

I guess that makes some sense given the dictionary definition of the term:

an action that is performed without conscious thought as a response to a stimulus
— Dictionary definition of reflex

IT’S ALL IN THE REFLEXES

Firstly, congratulations if you spotted the John Carpenter reference.

Using the classic approach of “don’t bother reading the docs first” the user experience is a little unintuitive to begin with. Whilst you can create a Reflex you can’t actually do anything with it unless you have a “stimulus” to make the Reflex respond, otherwise known as an Event. These are created not from within the Data Activator experience itself, but from upstream artifacts.

So you need to create an Eventstream and select your Reflex as its destination, or create a Trigger action from within a Power BI report.

Setting the Reflex “DA_RFL_YellowTaxi” as the destination for an Eventstream that is using sample YellowTaxi data as the source.

Clicking on a visual in Power BI gives you a “Trigger Action” dialogue box. The “Item” is the Reflex you would like to associate the trigger with.

THE THING

With an Event now available in your Reflex, you need to have an Object to monitor. This is the thing about the event you want to know about. When creating a Trigger action in Power BI, the Object is created automatically, either based on the measure selected or else using the item listed in the “For Each” field. For my example above the thing I’m monitoring is the month. I also set how often it should check the Object. Here I check once a day. If your Event is based on an Eventstream then the easiest way to create on Object is from the data view in the Reflex, where you can preview the data being sent from the Eventstream. For my Yellow Taxi data I want to monitor every single cab ride, so I’m setting an object at the Signal.Id level, which is a system generated unique key. When creating the Object I can rename it, so I’ve called it “TripId” in my example. Each TripId will be checked as it is streamed to my Reflex.

Creating an Object from the Event Data view.

the Sword of Damocles

Much like Snake Plissken needed a remote to activate the Sword of Damocles, you’re going to need a Trigger to prompt your Reflex to take an action (ok, maybe the JC references are getting a tad tenuous now). A Trigger is effectively the condition that’s going to cause Data Activator to do something. Once again, for Power BI, the Trigger is set up in the dialogue box when you create the Trigger Action from your report. My example wants to Trigger my reflex if the Year To Date Sales measure for a given month goes above $1.6 billion.

When using an Eventstream you create a Trigger from the Design View in your Reflex, and the Trigger should be added to an Object. You select a field from the Event that you would like to associate with the Trigger (I’m going to look at my passenger count) and then tell it what you would like to detect. In this case, I’m saying that for a given TripId select the passenger count and detect if it’s above 4 (I’m deliberately misinterpreting the data as taxi bookings as oppose to trips and want to trigger an event when a large taxi is required).

Creating a trigger that checks the passenger count of each TripID and detects trips with more than 4 passengers.

LIGHTS, CAMERA, ACTION!

So you’ve identified your Events, defined your Objects and set the condition to fire your Trigger. Now you need to tell the Reflex what action to take.

Here is where the experience converges in terms of the Power BI v Eventstream paths. The “Act” is defined as part of your Trigger, which is done as part of the design view in your Reflex. You have 3 options; Send Email, Send Teams message or Custom Action.

For my Yellow Taxi dataset I’ve used a send email action, and when a streamed event comes in that meets my condition, I get sent the following email alert:

For my sales data I’m going to take a different route and create a custom action. Adding an action is slightly unintuitive as you can’t just add it from the “Act” dropdown, you have to select the “Custom Action” at the top of the pane. Which will launch the following window:

Clicking the button to “Create flow in Power Automate” takes you through to the Power Automate page. I’ve created a workflow so that when my trigger is activated it posts to Linked In. You can see the result here.

At this point, your experience has been taken outside of Fabric, so that journey to bring RPA in to your data platform isn’t quite complete, but I have to say that the integration between the two products is very smooth.

One thing not to forget…

Once you create a Trigger, don’t forget to hit the ‘Start’ button, or else the monitoring of your event won’t begin!!!
— Johnny Winter, 2023, after forgetting to hit 'Start' too many times

roll credits

So that’s Data Activator. Or at least it’s the first cut. There are definitely some exciting use cases here. The examples I’ve shown are fairly rudimentary, but imagine the following plot scenarios:

  • monitor the time your taxi driver spends on trips and trigger a warning when it’s time for them to take a break

  • monitor stock levels and trigger an alert when an item goes below a certain level and needs to be re-ordered - you could even conceivably automate the ordering process

  • going a bit more meta, monitor the pipelines within your data platform and create alerts if something fails and potentially kick off additional actions like re-running the pipelines.

CRITICS REVIEW

Some great things to like in this new experience so far, but certainly some some things I’d perhaps like to see in the sequel.

I found the terminology used across experiences inconsistent. In the Power BI Trigger Action dialogue it asks you to associate the alert to an Item, when really it means associate to a Reflex. The Power BI experience also calls its trigger action an alert, but you get no mention of the word in the Eventstream path. Will the action always be of an alerting nature? I’d argue not always.

Some of the UX could be a bit more intuitive. Being able to create events from inside the Reflex, rather than navigating away to either Power BI or Eventstream would be useful.

And I couldn’t see a way to add two actions to a trigger, which I think would be a valuable feature. At a push you could chain together steps in Power Automate to achieve this, but what if you wanted to trigger an email, a Teams message AND a custom action from an activation of a single event?

Still, lots to be really excited about with this new Fabric feature and I’m looking forward to seeing what direction Microsoft take this product.

If you want to know more about Data Activator as well as all the other new features available in Fabric, don’t hesitate to contact Advancing Analytics. Currently we also have a Fabric POC offering, which you can check out here.