Analisi di flusso e Power BI: dashboard di analisi in tempo reale per lo streaming dei datiStream Analytics and Power BI: A real-time analytics dashboard for streaming data

Analisi di flusso di Azure permette di usare uno dei principali strumenti di Business Intelligence, Microsoft Power BI.Azure Stream Analytics enables you to take advantage of one of the leading business intelligence tools, Microsoft Power BI. Questo articolo illustra come creare strumenti di Business Intelligence usando Power BI come output per i processi di Analisi di flusso di Azure.In this article, you learn how create business intelligence tools by using Power BI as an output for your Azure Stream Analytics jobs. Illustra anche come creare e usare un dashboard in tempo reale.You also learn how to create and use a real-time dashboard.

Questo articolo continua dall'esercitazione sul rilevamento delle frodi in tempo reale in Analisi di flusso.This article continues from the Stream Analytics real-time fraud detection tutorial. Esso si basa sul flusso di lavoro creato in tale esercitazione e aggiunge un output di Power BI in modo che sia possibile visualizzare le chiamate telefoniche fraudolente rilevate da un processo di Analisi di flusso.It builds on the workflow created in that tutorial and adds a Power BI output so that you can visualize fraudulent phone calls that are detected by a Streaming Analytics job.

È disponibile un video che illustra questo scenario.You can watch a video that illustrates this scenario.

PrerequisitiPrerequisites

Prima di iniziare, verificare di disporre degli elementi seguenti:Before you start, make sure you have the following:

  • Un account Azure.An Azure account.
  • Un account per Power BI.An account for Power BI. È possibile usare un account aziendale o dell'istituto di istruzione.You can use a work account or a school account.
  • Una versione completata dell'esercitazione sul rilevamento delle frodi in tempo reale.A completed version of the real-time fraud detection tutorial. L'esercitazione include un'app che genera metadati di telefonate fittizie.The tutorial includes an app that generates fictitious telephone-call metadata. Nell'esercitazione si crea un hub eventi e si inviano i dati delle telefonate all'hub eventi.In the tutorial, you create an event hub and send the streaming phone call data to the event hub. Si scrive una query che rileva le chiamate fraudolente (chiamate effettuate dallo stesso numero nello stesso momento da posizioni diverse).You write a query that detects fraudulent calls (calls from the same number at the same time in different locations).

Aggiungere l’output Power BIAdd Power BI output

Nell'esercitazione sul rilevamento delle frodi in tempo reale l'output viene inviato all'archiviazione BLOB di Azure.In the real-time fraud detection tutorial, the output is sent to Azure Blob storage. In questa sezione si aggiunge un output che invia informazioni a Power BI.In this section, you add an output that sends information to Power BI.

  1. Nel portale di Azure aprire il processo di Analisi di flusso creato in precedenza.In the Azure portal, open the Streaming Analytics job that you created earlier. Se si usa il nome suggerito, il processo è denominato sa_frauddetection_job_demo.If you used the suggested name, the job is named sa_frauddetection_job_demo.

  2. Selezionare la casella Output al centro del dashboard del processo e quindi selezionare + Aggiungi.Select the Outputs box in the middle of the job dashboard and then select + Add.

  3. In Alias di output immettere CallStream-PowerBI.For Output Alias, enter CallStream-PowerBI. È possibile usare un nome diverso.You can use a different name. In questo caso, tenerne traccia, poiché sarà necessario in un secondo momento.If you do, make a note of it, because you need the name later.

  4. In Sink selezionare Power BI.Under Sink, select Power BI.

    Creare un output per Power BI

  5. Fare clic su Autorizza.Click Authorize.

    Verrà visualizzata una finestra in cui è possibile specificare le credenziali di Azure per l'account aziendale o dell'istituto di istruzione.A window opens where you can provide your Azure credentials for a work or school account.

    Immettere le credenziali per l'accesso a Power BI

  6. Immettere le credenziali.Enter your credentials. È necessario considerare che quando si immettono le credenziali, si autorizza il processo di Analisi di flusso ad accedere all'area di Power BI.Be aware then when you enter your credentials, you're also giving permission to the Streaming Analytics job to access your Power BI area.

  7. Quando si torna al pannello Nuovo output immettere le informazioni seguenti:When you're returned to the New output blade, enter the following information:

    • Area di lavoro del gruppo: selezionare un'area di lavoro nel tenant Power BI in cui si desidera creare il set di dati.Group Workspace: Select a workspace in your Power BI tenant where you want to create the dataset.
    • Nome set di dati: immettere sa-dataset.Dataset Name: Enter sa-dataset. È possibile usare un nome diverso.You can use a different name. In questo caso prenderne nota perché servirà in un momento successivo.If you do, make a note of it for later.
    • Nome tabella: immettere fraudulent-calls.Table Name: Enter fraudulent-calls. L'output di Power BI da processi di Analisi di flusso può avere al momento solo una tabella in un set di dati.Currently, Power BI output from Stream Analytics jobs can have only one table in a dataset.

      Area di lavoro PBI

      Avviso

      Se Power BI dispone di un set di dati e di una tabella con gli stessi nomi specificati nel processo di Analisi di flusso, i dati esistenti vengono sovrascritti.If Power BI has a dataset and table that have the same names as the ones that you specify in the Stream Analytics job, the existing ones are overwritten. È consigliabile non creare in modo esplicito il set di dati e la tabella nell'account di Power BI.We recommend that you do not explicitly create this dataset and table in your Power BI account. Vengono creati automaticamente quando il processo di Analisi di flusso viene avviato e inizia a generare output in Power BI.They are automatically created when you start your Stream Analytics job and the job starts pumping output into Power BI. Se la query del processo non genera alcun risultato, il set di dati e la tabella non vengono creati.If your job query doesn't return any results, the dataset and table are not created.

  8. Fare clic su Crea.Click Create.

Il set di dati viene creato con le impostazioni seguenti:The dataset is created with the following settings:

  • defaultRetentionPolicy: BasicFIFO: dati FIFO, con un massimo di 200.000 righe.defaultRetentionPolicy: BasicFIFO: Data is FIFO, with a maximum of 200,000 rows.
  • defaultMode: pushStreaming: il set di dati supporta sia i riquadri in streaming che gli oggetti visivi tradizionali basati sui report, detti anchedefaultMode: pushStreaming: The dataset supports both streaming tiles and traditional report-based visuals (a.k.a. push.push).

Attualmente non è possibile creare set di dati con altri flag.Currently, you can't create datasets with other flags.

Per altre informazioni sui set di dati di Power BI, vedere le informazioni di riferimento sull'API REST di Power BI.For more information about Power BI datasets, see the Power BI REST API reference.

Scrivere la queryWrite the query

  1. Chiudere il pannello Output e tornare al pannello del processo.Close the Outputs blade and return to the job blade.

  2. Fare clic sulla casella Query.Click the Query box.

  3. Immettere la query seguente.Enter the following query. Questa query è simile alla query self-join che è stata creata nell'esercitazione sul rilevamento delle frodi.This query is similar to the self-join query you created in the fraud-detection tutorial. La differenza è che questa query invia i risultati al nuovo output creato (CallStream-PowerBI).The difference is that this query sends results to the new output you created (CallStream-PowerBI).

    Nota

    Se non è stato assegnato un nome all'input CallStream nell'esercitazione sul rilevamento delle frodi, sostituire il nome per CallStream nelle clausole FROM e JOIN della query.If you did not name the input CallStream in the fraud-detection tutorial, substitute your name for CallStream in the FROM and JOIN clauses in the query.

     /* Our criteria for fraud:
     Calls made from the same caller to two phone switches in different locations (for example, Australia and Europe) within five seconds */
    
     SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls
     INTO "CallStream-PowerBI"
     FROM "CallStream" CS1 TIMESTAMP BY CallRecTime
     JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime
    
     /* Where the caller is the same, as indicated by IMSI (International Mobile Subscriber Identity) */
     ON CS1.CallingIMSI = CS2.CallingIMSI
    
     /* ...and date between CS1 and CS2 is between one and five seconds */
     AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
    
     /* Where the switch location is different */
     WHERE CS1.SwitchNum != CS2.SwitchNum
     GROUP BY TumblingWindow(Duration(second, 1))
    
  4. Fare clic su Salva.Click Save.

Testare la queryTest the query

Questa sezione è facoltativa ma consigliata.This section is optional, but recommended.

  1. Se l'app TelcoStreaming non è attualmente in esecuzione, avviarla seguendo questa procedura:If the TelcoStreaming app is not currently running, start it by following these steps:

    • Aprire una finestra di comando.Open a command window.
    • Passare alla cartella in cui si trovano il file telcogenerator.exe e il file modificato telcodatagen.exe.config.Go to the folder where the telcogenerator.exe and modified telcodatagen.exe.config files are.
    • Eseguire il comando seguente:Run the following command:

        telcodatagen.exe 1000 .2 2
      
  2. Nel pannello Query fare clic sui puntini di sospensione accanto all'input CallStream e quindi selezionare Campiona dati da input.In the Query blade, click the dots next to the CallStream input and then select Sample data from input.

  3. Specificare che si desidera ottenere i dati di tre minuti e fare clic su OK.Specify that you want three minutes' worth of data and click OK. Attendere fino a quando non si riceve la notifica che i dati sono stati campionati.Wait until you're notified that the data has been sampled.

  4. Fare clic su Test e assicurarsi di ottenere i risultati.Click Test and make sure you're getting results.

Eseguire il processoRun the job

  1. Assicurarsi che l'app TelcoStreaming sia in esecuzione.Make sure that the TelcoStreaming app is running.

  2. Chiudere il pannello Query.Close the Query blade.

  3. Nel pannello del processo fare clic su Avvia.In the job blade, click Start.

    Avviare il processo di analisi di flusso

Il processo di Analisi di flusso inizia a cercare le chiamate fraudolente nel flusso in ingresso.Your Streaming Analytics job starts looking for fraudulent calls in the incoming stream. Il processo crea anche il set di dati e la tabella in Power BI e inizia a inviare loro i dati relativi alle chiamate fraudolente.The job also creates the dataset and table in Power BI and starts sending data about the fraudulent calls to them.

Creare il dashboard in Power BICreate the dashboard in Power BI

  1. Passare a Powerbi.com e accedere con l'account aziendale o dell'istituto di istruzione.Go to Powerbi.com and sign in with your work or school account. Se la query del processo di Analisi di flusso produce risultati, si noterà che il set di dati è già creato:If the Stream Analytics job query outputs results, you see that your dataset is already created:

    Streaming del set di dati in Power BI

  2. Nell'area di lavoro fare clic su + Crea.In your workspace, click + Create.

    Pulsante Crea nell'area di lavoro di Power BI

  3. Creare un nuovo dashboard e denominarlo Fraudulent Calls.Create a new dashboard and name it Fraudulent Calls.

    Creare un dashboard e assegnargli un nome nell'area di lavoro di Power BI

  4. Nella parte superiore della finestra, fare clic su Aggiungi riquadro, selezionare DATI IN STREAMING PERSONALIZZATI, quindi fare clic su Avanti.At the top of the window, click Add tile, select CUSTOM STREAMING DATA, and then click Next.

    Set di dati di streaming personalizzato

  5. In YOUR DATSETS (SET DI DATI PERSONALI) selezionare il set di dati interessato e quindi fare clic su Avanti.Under YOUR DATSETS, select your dataset and then click Next.

    Set di dati di streaming

  6. In Tipo di visualizzazione selezionare Scheda e quindi nell'elenco Campi selezionare fraudulentcalls.Under Visualization Type, select Card, and then in the Fields list, select fraudulentcalls.

    Dettagli di visualizzazione per il nuovo riquadro

  7. Fare clic su Avanti.Click Next.

  8. Immettere i dettagli del riquadro, ad esempio un titolo e un sottotitolo.Fill in tile details like a title and subtitle.

    Titolo e sottotitolo per il nuovo riquadro

  9. Fare clic su Apply.Click Apply.

    Si dispone a questo punto di un contatore di frodi.Now you have a fraud counter!

    Contatore di frodi

  10. Seguire di nuovo la procedura per aggiungere un riquadro (partendo dal passaggio 4).Follow the steps again to add a tile (starting with step 4). Questa volta eseguire le operazioni seguenti:This time, do the following:

    • Quando si accede a Tipo di visualizzazione selezionare Grafico a linee.When you get to Visualization Type, select Line chart.
    • Aggiungere un asse e selezionare windowend.Add an axis and select windowend.
    • Aggiungere un valore e selezionare fraudulentcalls.Add a value and select fraudulentcalls.
    • Per Intervallo di tempo da visualizzare selezionare gli ultimi 10 minuti.For Time window to display, select the last 10 minutes.

      Creare il riquadro per il grafico a linee

  11. Fare clic su Avanti, aggiungere un titolo e un sottotitolo e fare clic su Applica.Click Next, add a title and subtitle, and click Apply.

    Il dashboard di Power BI offre ora due visualizzazioni di dati sulle chiamate fraudolente in base al rilevamento nei dati di streaming.The Power BI dashboard now gives you two views of data about fraudulent calls as detected in the streaming data.

    Dashboard di Power BI completo che mostra due riquadri per le chiamate fraudolente

Altre informazioni su Power BILearn more about Power BI

Questa esercitazione mostra come creare solo alcuni tipi di visualizzazioni per un set di dati.This tutorial demonstrates how to create only a few kinds of visualizations for a dataset. Power BI consente di creare altri strumenti di business intelligence per clienti per l'organizzazione.Power BI can help you create other customer business intelligence tools for your organization. Per altre informazioni, vedere le risorse seguenti:For more ideas, see the following resources:

Informazioni sulle limitazioni e le procedure consigliateLearn about limitations and best practices

Attualmente, è possibile chiamare Power BI approssimativamente una volta al secondo.Currently, Power BI can be called roughly once per second. Gli oggetti visivi di streaming supportano pacchetti da 15 KB.Streaming visuals support packets of 15 KB. Oltre tale limite, gli oggetti visivi di streaming hanno esito negativo, ma il push continua a funzionare.Beyond that, streaming visuals fail (but push continues to work). A causa di queste limitazioni, Power BI è più adatto ai casi in cui Analisi di flusso di Azure riduce notevolmente il carico di dati.Because of these limitations, Power BI lends itself most naturally to cases where Azure Stream Analytics does a significant data load reduction. È consigliabile usare la finestra a cascata o la finestra di salto per assicurarsi che il push di dati avvenga al massimo una volta al secondo e che la query rientri nei requisiti di velocità effettiva.We recommend using a Tumbling window or Hopping window to ensure that data push is at most one push per second, and that your query lands within the throughput requirements.

Per calcolare il valore e visualizzare la finestra in secondi, è possibile usare questa equazione:You can use the following equation to compute the value to give your window in seconds:

Equazione 1

Ad esempio:For example:

  • Sono presenti 1.000 dispositivi che inviano dati a intervalli di un secondo.You have 1,000 devices sending data at one-second intervals.
  • Si usa lo SKU di Power BI Pro che supporta 1.000.000 righe l'ora.You are using the Power BI Pro SKU that supports 1,000,000 rows per hour.
  • Si vuole pubblicare la quantità di dati medi per ogni dispositivo in Power BI.You want to publish the amount of average data per device to Power BI.

L'equazione diventa quindi la seguente:As a result, the equation becomes:

Equazione 2

Con questa configurazione è possibile modificare la query originale come segue:Given this configuration, you can change the original query to the following:

SELECT
    MAX(hmdt) AS hmdt,
    MAX(temp) AS temp,
    System.TimeStamp AS time,
    dspl
INTO "CallStream-PowerBI"
FROM
    Input TIMESTAMP BY time
GROUP BY
    TUMBLINGWINDOW(ss,4),
    dspl

Rinnovare l'autorizzazioneRenew authorization

Se la password è stata modificata dopo la creazione o l'ultima autenticazione del processo, è necessario autenticare nuovamente l'account Power BI.If the password has changed since your job was created or last authenticated, you need to reauthenticate your Power BI account. Se Azure Multi-Factor Authentication è configurato nel tenant di Azure Active Directory (Azure AD), è anche necessario rinnovare l'autorizzazione di Power BI ogni due settimane.If Azure Multi-Factor Authentication is configured on your Azure Active Directory (Azure AD) tenant, you also need to renew Power BI authorization every two weeks. Se non viene rinnovata, si potrebbero verificare problemi come la mancanza di output dei processi o un Authenticate user error nei log delle operazioni.If you don't renew, you could see symptoms such as a lack of job output or an Authenticate user error in the operation logs.

Se si tenta di avviare un processo dopo che il token è scaduto, si verifica un errore e l'avvio del processo ha esito negativo.Similarly, if a job starts after the token has expired, an error occurs and the job fails. Per risolvere questo problema, arrestare il processo in esecuzione e passare all'output di Power BI.To resolve this issue, stop the job that's running and go to your Power BI output. Per evitare la perdita di dati, fare clic sul collegamento Rinnova autorizzazione e riavviare il processo selezionando Ora ultimo arresto.To avoid data loss, select the Renew authorization link, and then restart your job from the Last Stopped Time.

Dopo aver aggiornato l'autorizzazione con Power BI, viene visualizzato un avviso verde nell'area di autorizzazione che indica che il problema è stato risolto.After the authorization has been refreshed with Power BI, a green alert appears in the authorization area to reflect that the issue has been resolved.

Ottenere aiutoGet help

Per ulteriore assistenza, provare il Forum di Analisi dei flussi di Azure.For further assistance, try our Azure Stream Analytics forum.

Passaggi successiviNext steps