Learn about Streaming Datasets in Power BI … with Video Games!

Learn about Streaming Datasets in Power BI … with Video Games!

One of the best features of Power BI is the ability to get up-to-the-minute data on a customized dashboard. Not all metrics require this level of timeliness, but a few types of data do, such as temperature data from food transportation containers or telemetry from production machinery. Standard Power BI reports do not support this type of minute-by-minute reporting, so you need to set up a streaming dataset when time is of the essence.

What is a Power BI Real-Time Streaming Dataset

In Power BI, a streaming dataset is a particular type of data that arrives via an API push. It can display data immediately upon receiving it and doesn’t store that data long-term, only keeping it for roughly 1 hour if you enable historic comparison. Streaming datasets are about answering the question: “What’s happening?right now.”

This blog will show you a simple way to start using a streaming dataset using Power Automate and some player count data from Steam (a PC gaming platform).

Creating a Streaming Dataset

To get started, head over to the Power BI portal (https://www.powerbi.com) and log in. You can do this in any workspace, but the “My Workspace” workspace is an excellent place to start for demonstration purposes. Click it to go into your?My Workspace.

No alt text provided for this image
No alt text provided for this image

Click?+New?in the upper left corner and then select?Streaming Dataset.

The default option should be API, so select?Next.?Now you need to define what data is in your streaming dataset. You need a player count number field and a DateTime field (I call it DateTime) for the current time. You also want to turn on Historic data analysis, so it looks like the below screenshot. Then hit Create.

No alt text provided for this image

Now that that’s done let’s head to?https://flow.microsoft.com?to build our Power Automate flow that will populate our real-time streaming dataset. Once logged in, select?+ Create?from the left menu and then choose “Scheduled cloud flow.”

No alt text provided for this image

Name the flow anything you like and set it to repeat every 1 minute (which should be the default). Click Create to go into the editor. This is where it gets a little tricky but stick with me. Add a new step and search for?HTTP. Add that step.

Now you will need to enter the following into the URI field (ignore all the other fields):?https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/?appid=413150

What is that, you ask? This is an API call to a public API with Steam, a PC gaming service. It returns the number of current players using a particular app. In this case, I’m using appid 413150, which happens to be the game Stardew Valley. However, you can replace this with any game you want to track. Search for the steam page for that game, and in the URL, you will find the appid.

No alt text provided for this image

Now, we need to clean up our API call, so add a step to the flow called?Compose?and insert in the Inputs field the?Body?from the HTTP step.

No alt text provided for this image

Now run your flow by clicking Test in the upper right corner. It should succeed, and if you expand the compose step, you will see both inputs and outputs. Click?Show raw outputs.

No alt text provided for this image

Then copy and paste everything that appears. Now close the side window and click Edit again. After your compose step, add a step called?Parse JSON.?Set the Content field to the Body from your HTTP step, then click Generate from sample.

No alt text provided for this image

In the dialog box that appears, paste the information you got from the previous run. Confirm, and your Parse JSON step will now have a schema.

An optional step is to convert the current time from UTC to your current time zone. To do so, add a Convert Time Zone step after your Parse JSON step. In the base time field, enter the expression utcnow(). Then select Coordinated Universal Time as the source time zone and your local time zone as the destination.

No alt text provided for this image

Now for the final step. Add a new step called?Add rows to a dataset?that uses the Power BI connector. Find the streaming dataset you made by selecting My Workspace and the dataset name. The table should be RealTimeData. You will be prompted to enter what you want to put in each field. You should see a dynamic content field for player_count from your Parse JSON step that you can put into player_count, and then use the converted time or utc() as the datetime.

No alt text provided for this image

Now start your flow!

Putting It All Together in a Power BI Dashboard

Go back to the Power BI portal, and in your My Workspace, add a dashboard. Under edit, click add a tile and select Custom Streaming Data in the dashboard.

No alt text provided for this image

Now you can access your streaming dataset. I recommend adding a line chart with the datetime field on the axis and the player_count as a value. You can add more tiles if you wish to make something that looks nice. Here’s what I put together.

No alt text provided for this image

Let me know what you’ve been able to do with real-time streaming datasets in Power BI. Any other fun APIs you can access for these types of use cases? Let me know.


要查看或添加评论,请登录

Keith Sayer的更多文章

社区洞察

其他会员也浏览了