Usare Power BI per visualizzare i dati provenienti da una topologia Apache Storm

Power BI consente di mostrare visivamente i dati sotto forma di report. Questo documento fornisce un esempio dell'uso di Apache Storm in HDInsight per la generazione di dati per Power BI.

Nota

La procedura illustrata in questo documento si basa su un ambiente di sviluppo Windows con Visual Studio. Il progetto compilato può essere inviato a un cluster HDInsight basato su Linux. Solo i cluster basati su Linux creati dopo il 28/10/2016 supportano le topologie SCP.NET.

Per usare una topologia C# con un cluster basato su Linux, aggiornare il pacchetto NuGet Microsoft.SCP.Net.SDK usato dal progetto alla versione 0.10.0.6 o successiva. La versione del pacchetto deve anche corrispondere alla versione principale di Storm installata in HDInsight. Ad esempio, le versioni 3.3 e 3.4 di Storm in HDInsight usano Storm versione 0.10.x, mentre HDInsight 3.5 usa Storm 1.0.x.

Le topologie C# nei cluster basati su Linux devono usare .NET 4.5 e devono usare Mono per l'esecuzione nel cluster HDInsight. Anche se non dovrebbero verificarsi problemi, è consigliabile vedere il documento Mono Compatibility (Compatibilità di Mono) per potenziali incompatibilità.

Per una versione Java di questo progetto, che funziona con HDInsight basato su Linux o Windows, vedere Elaborare eventi dell'hub eventi di Azure con Storm in HDInsight (Java).

Prerequisiti

Funzionamento

Questo esempio contiene una topologia Storm C# che genera in modo casuale i dati di log di Internet Information Services (IIS). I dati vengono quindi scritti in un database SQL e da qui vengono usati per generare report in Power BI.

I file seguenti implementano la funzionalità principale di questo esempio:

  • SqlAzureBolt.cs: scrive nel database SQL le informazioni generate nella topologia Storm.
  • IISLogsTable.sql: istruzioni Transact-SQL usate per generare il database in cui vengono archiviati i dati.
Avviso

Creare la tabella nel database SQL prima di avviare la topologia nel cluster HDInsight.

Scaricare l'esempio

Scaricare l' esempio di Power BI per C# Storm in HDInsight. Per scaricarlo, biforcarlo o clonarlo mediante gitoppure usare il collegamento Download per scaricare un file con estensione zip dell'archivio.

Creare un database

  1. Per creare un database, seguire la procedura riportata nel documento Esercitazione sul database SQL.

  2. Connettersi al database seguendo la procedura riportata nel documento Connettersi a un database SQL con Visual Studio.

  3. In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Nuova query. Incollare il contenuto del file IISLogsTable.sql incluso nel progetto scaricato nella finestra di query e quindi usare CTRL+MAIUSC+E per eseguire la query. Verrà visualizzato un messaggio per informare che i comandi sono stati eseguiti correttamente.

Configurare l'esempio

  1. Nel portale di Azureselezionare il database SQL. Nella sezione Informazioni di base del pannello Database SQL selezionare Mostra stringhe di connessione del database. Nell'elenco visualizzato copiare le informazioni relative a ADO.NET (autenticazione SQL) .

  2. Aprire l'esempio in Visual Studio. In Esplora soluzioni aprire il file App.config e quindi trovare la voce seguente:

     <add key="SqlAzureConnectionString" value="##TOBEFILLED##" />
    

    Sostituire il valore ##TOBEFILLED## con la stringa di connessione del database copiata nel passaggio precedente. Sostituire {your_username} e {your_password} con il nome utente e la password per il database.

  3. Salvare e chiudere i file.

Distribuire l'esempio

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto StormToSQL e quindi scegliere Submit to Storm on HDInsight (Invia a Storm in HDInsight). Selezionare il cluster HDInsight dall'elenco a discesa Cluster Storm .

    Nota

    Il popolamento dell'elenco a discesa Cluster Storm con i nomi dei server potrebbe richiedere alcuni minuti.

    Se richiesto, immettere le credenziali di accesso per la sottoscrizione di Azure. Se si dispone di più di una sottoscrizione, accedere a quella che contiene il cluster Storm in HDInsight.

  2. Dopo l'invio della topologia, verrà aperto Storm Topologies Viewer (Visualizzatore topologie Storm). Per visualizzare la topologia, selezionare dall'elenco la voce SqlAzureWriterTopology.

    Topologie con la topologia selezionata

    È possibile usare questa visualizzazione per ottenere informazioni sulla topologia. In alternativa, fare doppio clic su una voce, ad esempio SqlAzureBolt, per visualizzare informazioni specifiche di un componente della topologia.

  3. Dopo l'esecuzione della topologia per alcuni minuti, tornare alla finestra di query SQL usata per creare il database. Sostituire le istruzioni esistenti con la query seguente:

     select * from iislogs;
    

    Usare CTRL+MAIUSC+E per eseguire la query. Verranno visualizzati risultati simili ai dati seguenti:

     1    2016-05-27 17:57:14.797    255.255.255.255    /bar    GET    200
     2    2016-05-27 17:57:14.843    127.0.0.1    /spam/eggs    POST    500
     3    2016-05-27 17:57:14.850    123.123.123.123    /eggs    DELETE    200
     4    2016-05-27 17:57:14.853    127.0.0.1    /foo    POST    404
     5    2016-05-27 17:57:14.853    10.9.8.7    /bar    GET    200
     6    2016-05-27 17:57:14.857    192.168.1.1    /spam    DELETE    200
    

    Si tratta di dati scritti dalla topologia Storm.

Creare un report

  1. Connettersi al connettore Database SQL di Azure per Power BI.

  2. In Database selezionare Recupera.

  3. Selezionare Database SQL di Azure e quindi Connetti.

    Nota

    Potrebbe essere richiesto di scaricare Power BI Desktop per continuare. In tal caso, seguire questa procedura per connettersi:

    1. Aprire Power BI Desktop e selezionare Recupera dati. 2 Selezionare Azure e quindi Database SQL di Azure.
  4. Immettere le informazioni per connettersi al database SQL di Azure. È possibile trovare queste informazioni nel portale di Azure selezionando il proprio database SQL.

    Nota

    È anche possibile impostare l'intervallo di aggiornamento e i filtri personalizzati tramite Abilita opzioni avanzate dalla finestra di dialogo di connessione.

  5. Dopo avere stabilito la connessione, verrà visualizzato un nuovo set di dati con lo stesso nome del database al cui ci si è connessi. Selezionare il set di dati per iniziare a progettare un report.

  6. In Campi espandere la voce IISLOGS. Per creare un report che elenchi le origini URI, selezionare la casella di controllo URISTEM.

    Creazione di un report

  7. Trascinare quindi METHOD nel report. Il report viene aggiornato per elencare le origini e il metodo HTTP corrispondente usato per la richiesta HTTP.

    aggiunta dei dati di method

  8. Nella colonna Visualizzazioni selezionare l'icona Campi e quindi selezionare la freccia a discesa accanto a METHOD nella sezione Valori. Per visualizzare il numero di accessi a un URI, selezionare Conteggio.

    Modifica di un conteggio di method

  9. Selezionare quindi Istogramma a colonne in pila per modificare la modalità di visualizzazione delle informazioni.

    Modifica in un grafico in pila

  10. Per salvare il report, selezionare Salva e immettere un nome per il report.

Arrestare la topologia

La topologia rimane in esecuzione fino all'arresto o all'eliminazione del cluster Storm in HDInsight. Per arrestare la topologia, seguire questa procedura:

  1. In Visual Studio tornare al visualizzatore della topologia e selezionarla.

  2. Fare clic sul pulsante Termina per arrestare la topologia.

    Pulsante Termina nel riepilogo della topologia

Eliminare il cluster

Avviso

La fatturazione dei cluster HDInsight viene calcolata al minuto, indipendentemente dal fatto che siano in uso o meno. Assicurarsi di eliminare il cluster dopo aver finito di usarlo. Per altre informazioni, vedere l'articolo su come eliminare un cluster HDInsight.

Passaggi successivi

In questo documento è stato illustrato come inviare dati da una topologia Storm al database SQL e quindi visualizzare i dati tramite Power BI. Per informazioni su come usare altre tecnologie di Azure con Storm in HDInsight, vedere il documento seguente: