Build real time Power BI dashboards with Stream Analytics no code editor

This tutorial shows how you can use the Stream Analytics no code editor to compute aggregates on real time data streams and store it in Azure Synapse Analytics.

In this tutorial, you learn how to:

  • Deploy an event generator that sends data to your event hub
  • Create a Stream Analytics job using the no code editor
  • Review input data and schema
  • Select fields to group by and define aggregations like count
  • Configure Azure Synapse Analytics to which results will be written
  • Run the Stream Analytics job
  • Visualize data in Power BI

Prerequisites

Before you start, make sure you've completed the following steps:

  • If you don't have an Azure subscription, create a free account.
  • Deploy the TollApp event generator to Azure, use this link to Deploy TollApp Azure Template. Set the 'interval' parameter to 1. And use a new resource group for this step.
  • Create an Azure Synapse Analytics workspace with a Dedicated SQL pool.
  • Create a table named carsummary using your Dedicated SQL pool. You can do it by running the following SQL script:
    CREATE TABLE carsummary   
    (  
    Make nvarchar(20),  
    CarCount int,
      times datetime
      )
    WITH ( CLUSTERED COLUMNSTORE INDEX ) ;
    

Use no code editor to create a Stream Analytics job

  1. Locate the Resource Group in which the TollApp event generator was deployed.

  2. Select the Azure Event Hubs namespace.

  3. On the Event Hubs Namespace page, select Event Hubs under Entities on the left menu.

  4. Select entrystream instance.

    Screenshot showing the selection of the event hub.

  5. Go to Process data under Features section and then select start on the Start with blank canvas template.

    Screenshot showing the selection of the Start button on the Start with a blank canvas tile.

  6. Name your job carsummary and select Create.

    Screenshot of the New Stream Analytics job page.

  7. On the event hub configuration page, confirm the following settings, and then select Connect.

    • Consumer Group: Default

    • Serialization type of your input data: JSON

    • Authentication mode that the job will use to connect to your event hub: Connection string.

      Screenshot of the configuration page for your event hub.

  8. Within few seconds, you'll see sample input data and the schema. You can choose to drop fields, rename fields or change data type if you want.

    Screenshot showing the preview of data in the event hub and the fields.

  9. Select the Group by tile on the canvas and connect it to the event hub tile.

    Screenshot showing the Group tile connected to the Event Hubs tile.

  10. Configure the Group by tile by specifying:

    1. Aggregation as Count.

    2. Field as Make which is a nested field inside CarModel.

    3. Select Save.

    4. In the Group by settings, select Make and Tumbling window of 3 minutes

      Screenshot of the Group by configuration page.

  11. Select Add field on the Manage fields page, and add the Make field as shown in the following image, and then select Save.

    Screenshot showing the addition of the Make field.

  12. Select Manage fields on the command bar. Connect the Manage Fields tile to the Group by tile on canvas. Select Add all fields on the Manage fields configuration page.

    Screenshot of the Manage fields page.

  13. Select ... next to the fields, and select Edit to rename them.

    • COUNT_make to CarCount

    • Window_End_Time to times

      Screenshot of the Manage fields page with the fields renamed.

  14. The Manage fields page should look as shown in the following image.

    Screenshot of the Manage fields page with three fields.

  15. Select Synapse on the command bar. Connect the Synapse tile to the Manage fields tile on your canvas.

  16. Configure Azure Synapse Analytics by specifying:

    • Subscription where your Azure Synapse Analytics is located

    • Database of the Dedicated SQL pool that you used to create the carsummary table in the previous section.

    • Username and password to authenticate

    • Table name as carsummary

    • Select Connect. You'll see sample results that will be written to your Synapse SQL table.

      Screenshot of the Synapse tile settings.

  17. Select Save in the top ribbon to save your job and then select Start. Set Streaming Unit count to 3 and then select Start to run your job. Specify the storage account that will be used by Synapse SQL to load data into your data warehouse.

    Screenshot of the Start Stream Analytics Job page.

  18. You'll then see a list of all Stream Analytics jobs created using the no code editor. And within two minutes, your job will go to a Running state. Select the Refresh button on the page to see the status changing from Created -> Starting -> Running.

    Screenshot showing the list of jobs.

Create a Power BI visualization

  1. Download the latest version of Power BI desktop.
  2. Use the Power BI connector for Azure Synapse SQL to connect to your database.
  3. Use this query to fetch data from your database
    SELECT [Make],[CarCount],[times]
    FROM [dbo].[carsummary]
    WHERE times >= DATEADD(day, -1, GETDATE())
    
  4. You can then create a line chart with
    • X-axis as times
    • Y-axis as CarCount
    • Legend as Make You'll then see a chart that can be published. You can configure automatic page refresh and set it to 3 minutes to get a near-real time view. Screenshot of Power BI dashboard showing car summary data.

Clean up resources

  1. Locate your Event Hubs instance and see the list of Stream Analytics jobs under Process Data section. Stop any jobs that are running.
  2. Go to the resource group you used while deploying the TollApp event generator.
  3. Select Delete resource group. Type the name of the resource group to confirm deletion.

Next steps

In this tutorial, you created a Stream Analytics job using the no code editor to define aggregations and write results to Azure Synapse Analytics. You then used the Power BI to build a near-real time dashboard to see the results produced by the job.