Analisi di flusso e Power BI: un dashboard di analisi in tempo reale per il flusso di dati

Analisi di flusso di Azure permette di usare uno dei principali strumenti di Business Intelligence, 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. Si apprenderà anche come creare e usare un dashboard in tempo reale che viene aggiornato continuamente dal processo di Analisi di flusso.

Questo articolo continua dall'esercitazione sul rilevamento delle frodi in tempo reale in Analisi di flusso. 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.

È possibile guardare un video che illustra questo scenario.

Prerequisiti

Prima di iniziare, verificare di disporre degli elementi seguenti:

  • Un account Azure.
  • Un account per Power BI Pro. È possibile usare un account aziendale o dell'istituto di istruzione.
  • Una versione completata dell'esercitazione sul rilevamento delle frodi in tempo reale. L'esercitazione include un'app che genera metadati di telefonate fittizie. Nell'esercitazione si crea un hub eventi e si inviano i dati delle telefonate all'hub eventi. Si scrive una query che rileva le chiamate fraudolente (chiamate effettuate dallo stesso numero nello stesso momento da posizioni diverse).

Aggiungere l’output Power BI

Nell'esercitazione sul rilevamento delle frodi in tempo reale l'output viene inviato all'archiviazione BLOB di Azure. In questa sezione si aggiunge un output che invia informazioni a Power BI.

  1. Nel portale di Azure aprire il processo di Analisi di flusso creato in precedenza. Se si usa il nome suggerito, il processo è denominato sa_frauddetection_job_demo.

  2. Nel menu a sinistra selezionare Output in Topologia processo. Selezionare quindi + Aggiungi e scegliere Power BI dal menu a discesa.

  3. Selezionare + Aggiungi>Power BI. Compilare quindi il modulo con i dettagli seguenti e selezionare Autorizza per usare la propria identità utente per connettersi a Power BI (il token è valido per 90 giorni).

Nota

Per i processi di produzione, è consigliabile connettersi per usare l'identità gestita per autenticare il processo di Analisi di flusso di Azure per Power BI.

Impostazione Valore consigliato
Alias di output CallStream-PowerBI
Nome del set di dati sa-dataset
Nome tabella fraudulent-calls

Configure Stream Analytics output

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. È consigliabile non creare in modo esplicito il set di dati e la tabella nell'account di Power BI. Vengono creati automaticamente quando il processo di Analisi di flusso viene avviato e inizia a generare output in Power BI. Se la query del processo non restituisce risultati, il set di dati e la tabella non vengono creati.

  1. Quando si seleziona Autorizza, viene visualizzata una finestra popup in cui viene chiesto di fornire le credenziali per l'autenticazione dell'account di Power BI. Una volta completato il processo di autorizzazione, fare clic su Salva per salvare le impostazioni.

  2. Fare clic su Crea.

Il set di dati viene creato con le impostazioni seguenti:

  • defaultRetentionPolicy: BasicFIFO: dati FIFO, con un massimo di 200.000 righe.
  • defaultMode: ibrido: il set di dati supporta entrambi i riquadri di streaming (noti anche come push) e gli oggetti visivi tradizionali basati su report. Per il contenuto push, i dati vengono aggiornati continuamente dal processo di analisi di flusso in questo caso, senza dover pianificare l'aggiornamento dal lato Power BI.

Attualmente non è possibile creare set di dati con altri flag.

Per altre informazioni sui set di dati di Power BI, vedere le informazioni di riferimento sull'API REST di Power BI.

Scrivere la query

  1. Chiudere il pannello Output e tornare al pannello del processo.

  2. Fare clic sulla casella Query.

  3. Immettere la query seguente. Questa query è simile alla query self-join che è stata creata nell'esercitazione sul rilevamento delle frodi. La differenza è che questa query invia i risultati al nuovo output creato (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.

    /* 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.

Testare la query

Questa sezione è facoltativa ma consigliata.

  1. Se l'app TelcoStreaming non è attualmente in esecuzione, avviarla seguendo questa procedura:

    • Aprire il prompt dei comandi.

    • Passare alla cartella in cui si trovano il file telcogenerator.exe e il file modificato telcodatagen.exe.config.

    • Eseguire il comando seguente:

      telcodatagen.exe 1000 .2 2

  2. Nella pagina Query del processo di Analisi di flusso fare clic sui puntini di sospensione accanto all'input CallStream e quindi selezionare Carica dati di esempio da input.

  3. Specificare che si desidera ottenere i dati di tre minuti e fare clic su OK. Attendere fino a quando non si riceve la notifica che i dati sono stati campionati.

  4. Fare clic su Test e rivedere i risultati.

Eseguire il processo

  1. Verificare che l'app TelcoStreaming sia in esecuzione.

  2. Passare alla pagina Panoramica del processo di Analisi di flusso e selezionare Avvia.

    Start the Stream Analytics job

Il processo di Analisi di flusso inizia a cercare le chiamate fraudolente nel flusso in ingresso. 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.

Creare il dashboard in Power BI

  1. Passare a Powerbi.com e accedere con l'account aziendale o dell'istituto di istruzione. Se la query del processo di Analisi di flusso produce risultati, si noterà che il set di dati è già creato:

    Streaming dataset location in Power BI

  2. Nell'area di lavoro fare clic su + Crea.

    The Create button in Power BI workspace

  3. Creare un nuovo dashboard e denominarlo Fraudulent Calls.

    Create a dashboard and give it a name in Power BI workspace

  4. Nella parte superiore della finestra, fare clic su Aggiungi riquadro, selezionare DATI IN STREAMING PERSONALIZZATI, quindi fare clic su Avanti.

    Custom streaming dataset tile in Power BI

  5. In YOUR DATSETS (SET DI DATI PERSONALI) selezionare il set di dati interessato e quindi fare clic su Avanti.

    Your streaming dataset in Power BI

  6. In Tipo di visualizzazione selezionare Scheda e quindi nell'elenco Campi selezionare fraudulentcalls.

    Visualization details for new tile

  7. Fare clic su Avanti.

  8. Immettere i dettagli del riquadro, ad esempio un titolo e un sottotitolo.

    Title and subtitle for new tile

  9. Fare clic su Applica.

    Si dispone a questo punto di un contatore di frodi.

    Fraud counter in Power BI dashboard

  10. Seguire di nuovo la procedura per aggiungere un riquadro (partendo dal passaggio 4). Questa volta eseguire le operazioni seguenti:

    • Quando si accede a Tipo di visualizzazione selezionare Grafico a linee.

    • Aggiungere un asse e selezionare windowend.

    • Aggiungere un valore e selezionare fraudulentcalls.

    • Per Intervallo di tempo da visualizzare selezionare gli ultimi 10 minuti.

      Create tile for line chart in Power BI

  11. Fare clic su Avanti, aggiungere un titolo e un sottotitolo e fare clic su Applica.

    Il dashboard di Power BI offre ora due visualizzazioni di dati sulle chiamate fraudolente in base al rilevamento nei dati di streaming.

    Finished Power BI dashboard showing two tiles for fraudulent calls

Informazioni sulle limitazioni e le procedure consigliate

Attualmente, è possibile chiamare Power BI approssimativamente una volta al secondo. Gli oggetti visivi di streaming supportano pacchetti da 15 KB. Oltre tale limite, gli oggetti visivi di streaming hanno esito negativo, ma il push continua a funzionare. A causa di queste limitazioni, Power BI è più adatto ai casi in cui Analisi di flusso di Azure riduce notevolmente il carico di dati. È 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.

Per calcolare il valore e visualizzare la finestra in secondi, è possibile usare questa equazione:

Equation to compute value to give window in seconds

Ad esempio:

  • Sono presenti 1.000 dispositivi che inviano dati a intervalli di un secondo.
  • Si usa lo SKU di Power BI Pro che supporta 1.000.000 righe l'ora.
  • Si vuole pubblicare la quantità di dati medi per ogni dispositivo in Power BI.

L'equazione diventa quindi la seguente:

Equation based on example criteria

Con questa configurazione è possibile modificare la query originale come segue:

    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'autorizzazione

Se la password è stata modificata dopo la creazione o l'ultima autenticazione del processo, è necessario autenticare nuovamente l'account Power BI. Se Azure AD Multi-Factor Authentication è configurato nel tenant Azure Active Directory (Azure AD), è necessario rinnovare l'autorizzazione Power BI ogni due settimane. Se non viene rinnovata, si potrebbero verificare problemi come la mancanza di output dei processi o un Authenticate user error nei log delle operazioni.

Se si tenta di avviare un processo dopo che il token è scaduto, si verifica un errore e l'avvio del processo ha esito negativo. Per risolvere questo problema, arrestare il processo in esecuzione e passare all'output di Power BI. Per evitare la perdita di dati, fare clic sul collegamento Rinnova autorizzazione e riavviare il processo selezionando Ora ultimo arresto.

Dopo aver aggiornato l'autorizzazione con Power BI, viene visualizzato un avviso verde nell'area di autorizzazione che indica che il problema è stato risolto.

Passaggi successivi