Analisi del sentiment su Twitter in tempo reale in Analisi di flusso di AzureReal-time Twitter sentiment analysis in Azure Stream Analytics

Si imparerà a creare una soluzione di analisi del sentiment per i social media portando gli eventi di Twitter in tempo reale negli hub eventi di Azure.Learn how to build a sentiment analysis solution for social media analytics by bringing real-time Twitter events into Azure Event Hubs. Si potrà quindi scrivere una query di Analisi di flusso di Azure per analizzare i dati e archiviare i risultati per analisi successive o usare un dashboard e Power BI per rendere disponibili informazioni rilevanti in tempo reale.You can then write an Azure Stream Analytics query to analyze the data and either store the results for later use or use a dashboard and Power BI to provide insights in real time.

Gli strumenti di analisi dei social media permettono alle organizzazioni di determinare gli argomenti di tendenza,Social media analytics tools help organizations understand trending topics. vale a dire gli argomenti e gli atteggiamenti che registrano un numero elevato di post nei social media.Trending topics are subjects and attitudes that have a high volume of posts in social media. L'analisi del sentiment, detta anche opinion mining, usa gli strumenti di analisi dei social media per determinare le attitudini rispetto a un prodotto, un'idea e così via.Sentiment analysis, which is also called opinion mining, uses social media analytics tools to determine attitudes toward a product, idea, and so on.

L'analisi delle tendenze Twitter in tempo reale offre un ottimo esempio di strumento di analisi, perché il modello di sottoscrizione hashtag consente di ascoltare parole chiave specifiche (hashtag) e sviluppare l'analisi del sentiment del feed.Real-time Twitter trend analysis is a great example of an analytics tool, because the hashtag subscription model enables you to listen to specific keywords (hashtags) and develop sentiment analysis of the feed.

Scenario: analisi del sentiment su social media in tempo realeScenario: Social media sentiment analysis in real time

Una società con un sito Web di notizie è interessata a superare la concorrenza offrendo contenuti del sito immediatamente fruibili per i lettori.A company that has a news media website is interested in gaining an advantage over its competitors by featuring site content that is immediately relevant to its readers. La società usa l'analisi dei social media su argomenti rilevanti per i lettori eseguendo l'analisi del sentiment in tempo reale sui dati di Twitter.The company uses social media analysis on topics that are relevant to readers by doing real-time sentiment analysis of Twitter data.

Per identificare in tempo reale gli argomenti di tendenza su Twitter, la società deve eseguire un'analisi in tempo reale sul volume dei tweet e sul sentiment relativo agli argomenti più importanti.To identify trending topics in real time on Twitter, the company needs real-time analytics about the tweet volume and sentiment for key topics. In altre parole, ciò che serve è un motore di analisi del sentiment basato su questo feed di social media.In other words, the need is a sentiment analysis analytics engine that's based on this social media feed.

PrerequisitiPrerequisites

In questa esercitazione si usa un'applicazione client che si connette a Twitter e cerca i tweet con determinati hashtag, che è possibile impostare.In this tutorial, you use a client application that connects to Twitter and looks for tweets that have certain hashtags (which you can set). Per eseguire l'applicazione e analizzare i tweet tramite Analisi di flusso di Azure, è necessario quanto segue:In order to run the application and analyze the tweets using Azure Streaming Analytics, you must have the following:

  • Una sottoscrizione di AzureAn Azure subscription
  • Un account TwitterA Twitter account
  • Un'applicazione Twitter e il token di accesso OAuth per tale applicazione.A Twitter application, and the OAuth access token for that application. Più avanti sono riportate istruzioni dettagliate per creare un'applicazione Twitter.We provide high-level instructions for how to create a Twitter application later.
  • L'applicazione TwitterWPFClient, che legge il feed di Twitter.The TwitterWPFClient application, which reads the Twitter feed. Per ottenere questa applicazione, scaricare il file TwitterWPFClient.zip da GitHub e decomprimere il pacchetto in una cartella nel computer.To get this application, download the TwitterWPFClient.zip file from GitHub and then unzip the package into a folder on your computer. Per visualizzare il codice sorgente ed eseguire l'applicazione in un debugger, è possibile ottenere il codice sorgente da GitHub.If you want to see the source code and run the application in a debugger, you can get the source code from GitHub.

Creare un hub eventi per l'input di Analisi di flussoCreate an event hub for Streaming Analytics input

L'applicazione di esempio genera eventi e ne esegue il push a un hub eventi di Azure.The sample application generates events and pushes them to an Azure event hub. Gli hub eventi di Azure sono la soluzione preferita per l'inserimento di eventi per Analisi di flusso.Azure event hubs are the preferred method of event ingestion for Stream Analytics. Per altre informazioni, vedere la documentazione di Hub eventi di Azure.For more information, see the Azure Event Hubs documentation.

Creare uno spazio dei nomi dell'hub eventi e un hub eventiCreate an event hub namespace and event hub

In questa procedura si creerà uno spazio dei nomi dell'hub eventi e quindi si aggiungerà un hub eventi a tale spazio.In this procedure, you first create an event hub namespace, and then you add an event hub to that namespace. Gli spazi dei nomi degli hub eventi consentono di raggruppare in modo logico le istanze dei bus di eventi correlate.Event hub namespaces are used to logically group related event bus instances.

  1. Accedere al portale di Azure e fare clic su Nuovo > Internet delle cose > Hub eventi.Log in to the Azure portal and click New > Internet of Things > Event Hub.

  2. Nel pannello Crea spazio dei nomi immettere un nome per lo spazio dei nomi, ad esempio <yourname>-socialtwitter-eh-ns.In the Create namespace blade, enter a namespace name such as <yourname>-socialtwitter-eh-ns. È possibile usare qualsiasi nome per lo spazio dei nomi, a condizione che sia valido per un URL e univoco in Azure.You can use any name for the namespace, but the name must be valid for a URL and it must be unique across Azure.

  3. Selezionare una sottoscrizione, creare o scegliere un gruppo di risorse e quindi fare clic su Crea.Select a subscription and create or choose a resource group, then click Create.

    Creare uno spazio dei nomi dell'hub eventi

  4. Al termine della distribuzione, lo spazio dei nomi dell'hub eventi è disponibile nell'elenco delle risorse di Azure.When the namespace has finished deploying, find the event hub namespace in your list of Azure resources.

  5. Scegliere il nuovo spazio dei nomi e, nel relativo pannello, fare clic su + Hub eventi.Click the new namespace, and in the namespace blade, click + Event Hub.

    <span data-ttu-id="311f6-141">Pulsante Aggiungi hub eventi per creare un nuovo hub eventi</span><span class="sxs-lookup"><span data-stu-id="311f6-141">The Add Event Hub button for creating a new event hub</span></span>

  6. Assegnare il nome socialtwitter-eh al nuovo hub eventi.Name the new event hub socialtwitter-eh. È 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. Non sono richieste altre impostazioni per l'hub eventi.You don't need to set any other options for the event hub.

    Pannello per creare un nuovo hub eventi

  7. Fare clic su Crea.Click Create.

Concedere l'accesso all'hub eventiGrant access to the event hub

Prima che un processo possa inviare dati a un hub eventi, è necessario che per l'hub siano configurati criteri che consentano l'accesso appropriato.Before a process can send data to an event hub, the event hub must have a policy that allows appropriate access. I criteri di accesso generano una stringa di connessione che include informazioni di autorizzazione.The access policy produces a connection string that includes authorization information.

  1. Nel pannello dello spazio dei nomi dell'evento fare clic su Hub eventi e quindi sul nome del nuovo hub eventi.In the event namespace blade, click Event Hubs and then click the name of your new event hub.

  2. Nel pannello dell'hub eventi fare clic su Criteri di accesso condiviso e quindi su + Aggiungi.In the event hub blade, click Shared access policies and then click + Add.

    Nota

    Verificare di usare l'hub eventi e non lo spazio dei nomi.Make sure you're working with the event hub, not the event hub namespace.

  3. Aggiungere criteri denominati socialtwitter-access e per Attestazione selezionare Gestisci.Add a policy named socialtwitter-access and for Claim, select Manage.

    Pannello per creare nuovi criteri di accesso all'hub eventi

  4. Fare clic su Crea.Click Create.

  5. Dopo aver distribuito i criteri, fare clic nell'elenco dei criteri di accesso condiviso.After the policy has been deployed, click it in the list of shared access policies.

  6. Individuare la casella con l'etichetta CONNECTION STRING-PRIMARY KEY e fare clic sul pulsante Copia accanto alla stringa di connessione.Find the box labeled CONNECTION STRING-PRIMARY KEY and click the copy button next to the connection string.

    Copia della chiave della stringa di connessione primaria dai criteri di accesso

  7. Incollare la stringa di connessione in un editor di testo.Paste the connection string into a text editor. Sarà necessario usare questa stringa nella sezione successiva, dopo avervi apportato alcune piccole modifiche.You need this connection string for the next section, after you make some small edits to it.

    La stringa di connessione ha un aspetto simile al seguente:The connection string looks like this:

    Endpoint=sb://YOURNAME-socialtwitter-eh-ns.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=;EntityPath=socialtwitter-eh
    

    Si noti che la stringa di connessione contiene più coppie chiave-valore, separate da punti e virgola: Endpoint, SharedAccessKeyName, SharedAccessKey e EntityPath.Notice that the connection string contains multiple key-value pairs, separated with semicolons: Endpoint, SharedAccessKeyName, SharedAccessKey, and EntityPath.

    Nota

    Per sicurezza, le parti della stringa di connessione nell'esempio sono state rimosse.For security, parts of the connection string in the example have been removed.

  8. Nell'editor di testo rimuovere la coppia EntityPath dalla stringa di connessione. Non dimenticare di rimuovere il punto e virgola che la precede.In the text editor, remove the EntityPath pair from the connection string (don't forget to remove the semicolon that precedes it). Al termine dell'operazione, la stringa di connessione ha un aspetto simile al seguente:When you're done, the connection string looks like this:

    Endpoint=sb://YOURNAME-socialtwitter-eh-ns.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=
    

Configurare e avviare l'applicazione client TwitterConfigure and start the Twitter client application

L'applicazione client ottiene gli eventi tweet direttamente da Twitter.The client application gets tweet events directly from Twitter. A questo scopo, è necessaria l'autorizzazione per chiamare le API di streaming di Twitter.In order to do so, it needs permission to call the Twitter Streaming APIs. Per configurare questa autorizzazione, si crea un'applicazione in Twitter in modo da generare credenziali univoche, ad esempio un token OAuth.To configure that permission, you create an application in Twitter, which generates unique credentials (such as an OAuth token). Si può quindi configurare l'applicazione client in modo da usare queste credenziali quando esegue chiamate API.You can then configure the client application to use these credentials when it makes API calls.

Creare un'applicazione TwitterCreate a Twitter application

Se si ha già un'applicazione Twitter utilizzabile per questa esercitazione, è possibile crearne una.If you do not already have a Twitter application that you can use for this tutorial, you can create one. È necessario avere già un account Twitter.You must already have a Twitter account.

Nota

La procedura esatta da seguire in Twitter per creare un'applicazione e ottenere le chiavi, i segreti e il token può cambiare.The exact process in Twitter for creating an application and getting the keys, secrets, and token might change. Se queste istruzioni non corrispondono alle informazioni visualizzate sul sito di Twitter, consultare la documentazione per sviluppatori di Twitter.If these instructions don't match what you see on the Twitter site, refer to the Twitter developer documentation.

  1. Passare alla pagina di gestione delle applicazioni Twitter.Go to the Twitter application management page.

  2. Creare una nuova applicazione.Create a new application.

    • Per l'URL del sito Web, specificare un URL valido.For the website URL, specify a valid URL. Non è necessario che corrisponda a un sito live,It does not have to be a live site. ma non è possibile specificare semplicemente localhost.(You can't specify just localhost.)
    • Lasciare vuoto il campo relativo al callback.Leave the callback field blank. L'applicazione client usata per questa esercitazione non richiede callback.The client application you use for this tutorial doesn't require callbacks.

      Creazione di un'applicazione in Twitter

  3. Facoltativamente, modificare le autorizzazioni dell'applicazione impostandole in sola lettura.Optionally, change the application's permissions to read-only.

  4. Una volta creata l'applicazione, accedere alla pagina Keys and Access Tokens (Chiavi e token di accesso).When the application is created, go to the Keys and Access Tokens page.

  5. Fare clic sul pulsante per generare un token di accesso e un segreto del token.Click the button to generate an access token and access token secret.

Tenere queste informazioni a portata di mano perché saranno necessarie nella procedura successiva.Keep this information handy, because you will need it in the next procedure.

Nota

Le chiavi e i segreti dell'applicazione Twitter consentono l'accesso all'account Twitter personale.The keys and secrets for the Twitter application provide access to your Twitter account. Trattarle come dati sensibili, allo stesso modo della password di Twitter.Treat this information as sensitive, the same as you do your Twitter password. Evitare, ad esempio, di incorporare queste informazioni in un'applicazione che si prevede di distribuire ad altri utenti.For example, don't embed this information in an application that you give to others.

Configurare l'applicazione clientConfigure the client application

È stata creata un'applicazione client che si connette ai dati di Twitter usando le API di streaming di Twitter per raccogliere gli eventi tweet relativi a un set specifico di argomenti.We've created a client application that connects to Twitter data using Twitter's Streaming APIs to collect tweet events about a specific set of topics. L'applicazione usa lo strumento open source Sentiment140 che assegna il valore di sentiment seguente a ogni tweet:The application uses the Sentiment140 open source tool, which assigns the following sentiment value to each tweet:

  • 0 = negativo0 = negative
  • 2 = neutrale2 = neutral
  • 4 = positivo4 = positive

Dopo l'assegnazione di un valore di sentiment, gli eventi tweet vengono inviati tramite push all'hub eventi creato in precedenza.After the tweet events have been assigned a sentiment value, they are pushed to the event hub that you created earlier.

Prima di essere eseguita, l'applicazione richiede all'utente determinate informazioni, ad esempio le chiavi di Twitter e la stringa di connessione all'hub eventi.Before the application runs, it requires certain information from you, like the Twitter keys and the event hub connection string. È possibile specificare le informazioni di configurazione nei modi seguenti:You can provide the configuration information in these ways:

  • Eseguire l'applicazione e quindi usare l'interfaccia utente dell'applicazione per immettere le chiavi, i segreti e stringa di connessione.Run the application, and then use the application's UI to enter the keys, secrets, and connection string. In questo caso, le informazioni di configurazione vengono usate per la sessione corrente, ma non vengono salvate.If you do this, the configuration information is used for your current session, but it isn't saved.
  • Modificare il file config dell'applicazione e impostare i valori in tale file.Edit the application's .config file and set the values there. Questo approccio consente di salvare in modo permanente le informazioni di configurazione, ma questo significa anche che informazioni potenzialmente riservate vengono archiviate in testo normale nel computer.This approach persists the configuration information, but it also means that this potentially sensitive information is stored in plain text on your computer.

La procedura seguente illustra entrambi gli approcci.The following procedure documents both approaches.

  1. Verificare di aver scaricato e decompresso il file dell'applicazione TwitterWPFClient.zip, come indicato nei prerequisiti.Make sure you've downloaded and unzipped the TwitterWPFClient.zip application, as listed in the prerequisites.

  2. Per impostare i valori in fase di esecuzione (e solo per la sessione corrente), eseguire l'applicazione TwitterWPFClient.exe.To set the values at run time (and only for the current session), run the TwitterWPFClient.exe application. Quando richiesto dall'applicazione, immettere i valori seguenti:When the application prompts you, enter the following values:

    • La chiave utente di Twitter (chiave API).The Twitter Consumer Key (API Key).
    • Il segreto utente di Twitter (segreto API).The Twitter Consumer Secret (API Secret).
    • Il token di accesso di Twitter.The Twitter Access Token.
    • Il segreto del token di accesso di Twitter.The Twitter Access Token Secret.
    • Le informazioni della stringa di connessione salvate in precedenza.The connection string information that you saved earlier. Verificare di usare la stringa di connessione da cui è stata rimossa la coppia chiave-valore EntityPath.Make sure that you use the connection string that you removed the EntityPath key-value pair from.
    • Le parole chiave di Twitter per cui si vuole determinare il sentiment.The Twitter keywords that you want to determine sentiment for.

    Applicazione TwitterWpfClient in esecuzione, con le impostazioni oscurate

  3. Per impostare i valori in modo permanente, usare un editor di testo per aprire il file TwitterWpfClient.exe.config.To set the values persistently, use a text editor to open the TwitterWpfClient.exe.config file. Nell'elemento <appSettings> definire le impostazioni seguenti:Then in the <appSettings> element, do this:

    • Per oauth_consumer_key impostare la chiave utente di Twitter (chiave API).Set oauth_consumer_key to the Twitter Consumer Key (API Key).
    • Per oauth_consumer_secret impostare il segreto utente di Twitter (segreto API).Set oauth_consumer_secret to the Twitter Consumer Secret (API Secret).
    • Per oauth_token impostare il token di accesso di Twitter.Set oauth_token to the Twitter Access Token.
    • Per oauth_token_secret impostare il segreto del token di accesso di Twitter.Set oauth_token_secret to the Twitter Access Token Secret.

      Più avanti, nell'elemento <appSettings>, apportare queste modifiche:Later in the <appSettings> element, make these changes:

    • Per EventHubName impostare il nome dell'hub eventi, ovvero il valore del percorso dell'entità.Set EventHubName to the event hub name (that is, to the value of the entity path).

    • Per EventHubNameConnectionString impostare la stringa di connessione.Set EventHubNameConnectionString to the connection string. Verificare di usare la stringa di connessione da cui è stata rimossa la coppia chiave-valore EntityPath.Make sure that you use the connection string that you removed the EntityPath key-value pair from.

      La sezione <appSettings> ha un aspetto simile all'esempio seguente.The <appSettings> section looks like the following example. Per motivi di chiarezza e sicurezza, è stato applicato il ritorno a capo automatico ad alcune righe e sono stati rimossi alcuni caratteri.(For clarity and security, we wrapped some lines and removed some characters.)

      File di configurazione dell'applicazione TwitterWpfClient in un editor di testo che mostra i segreti e le chiavi di Twitter e le informazioni della stringa di connessione all'hub eventi

  4. Se non si è già avviata l'applicazione, eseguire ora TwitterWpfClient.exe.If you didn't already start the application, run TwitterWpfClient.exe now.

  5. Fare clic sul pulsante di avvio verde per raccogliere i dati del sentiment sul social media.Click the green start button to collect social sentiment. Gli eventi tweet con i valori CreatedAt, Topic e SentimentScore vengono inviati all'hub eventi.You see Tweet events with the CreatedAt, Topic, and SentimentScore values being sent to your event hub.

    Applicazione TwitterWpfClient in esecuzione, con l'elenco di tweet visualizzato

    Nota

    Se vengono restituiti errori e nella parte inferiore della finestra non viene visualizzato un flusso di tweet, controllare le chiavi e i segreti.If you see errors, and you don't see a stream of tweets displayed in the lower part of the window, double-check the keys and secrets. Verificare inoltre che la stringa di connessione non includa la chiave EntityPath e il relativo valore.Also check the connection string (make sure that it does not include the EntityPath key and value.)

Creare un processo di Analisi di flusso.Create a Stream Analytics job

Ora che gli eventi tweet vengono trasmessi in flusso in tempo reale da Twitter, è possibile impostare un processo di Analisi di flusso per analizzare questi eventi in tempo reale.Now that tweet events are streaming in real time from Twitter, you can set up a Stream Analytics job to analyze these events in real time.

  1. Nel portale di Azure fare clic su Nuovo > Internet delle cose > Processo di Analisi di flusso.In the Azure portal, click New > Internet of Things > Stream Analytics job.

  2. Assegnare il nome socialtwitter-sa-job al processo, specificare una sottoscrizione, un gruppo di risorse e un percorso.Name the job socialtwitter-sa-job and specify a subscription, resource group, and location.

    È consigliabile posizionare il processo e l'hub eventi nella stessa area per ottenere prestazioni ottimali ed evitare di pagare il trasferimento dei dati tra aree.It's a good idea to place the job and the event hub in the same region for best performance and so that you don't pay to transfer data between regions.

    Creazione di un nuovo processo di Analisi di flusso

  3. Fare clic su Crea.Click Create.

    Verrà creato il processo e il portale visualizzerà i relativi dettagli.The job is created and the portal displays job details.

Specificare l'input del processoSpecify the job input

  1. Nel processo di Analisi di flusso, in Topologia processo nella parte centrale del pannello, fare clic su Input.In your Stream Analytics job, under Job Topology in the middle of the job blade, click Inputs.

  2. Nel pannello Input fare clic su + Aggiungi e quindi compilare il pannello con questi valori:In the Inputs blade, click + Add and then fill out the blade with these values:

    • Alias di input: usare il nome TwitterStream.Input alias: Use the name TwitterStream. Se si usa un nome diverso, tenerne traccia, poiché sarà necessario in un secondo momento.If you use a different name, make a note of it because you need it later.
    • Tipo di origine: selezionare Flusso dati.Source type: Select Data stream.
    • Origine: selezionare Hub eventi.Source: Select Event hub.
    • Opzioni di importazione: selezionare Usa l'hub eventi della sottoscrizione corrente.Import option: Select Use event hub from current subscription.
    • Spazio dei nomi del bus di servizio: selezionare lo spazio dei nomi dell'hub eventi creato in precedenza (<yourname>-socialtwitter-eh-ns).Service bus namespace: Select the event hub namespace that you created earlier (<yourname>-socialtwitter-eh-ns).
    • Hub eventi: selezionare l'hub eventi creato in precedenza (socialtwitter-eh).Event hub: Select the event hub that you created earlier (socialtwitter-eh).
    • Nome criteri hub eventi: selezionare i criteri di accesso creati in precedenza (socialtwitter-access).Event hub policy name: Select the access policy that you created earlier (socialtwitter-access).

      Creare un nuovo input per il processo di Analisi di flusso

  3. Fare clic su Crea.Click Create.

Specificare la query del processoSpecify the job query

Analisi di flusso supporta un semplice modello di query dichiarativa per descrivere le trasformazioni.Stream Analytics supports a simple, declarative query model that describes transformations. Per altre informazioni sul linguaggio, vedere le Informazioni di riferimento sul linguaggio di query di analisi dei flussi di Azure.To learn more about the language, see the Azure Stream Analytics Query Language Reference. Questa esercitazione permette di creare e testare diverse query su dati di Twitter.This tutorial helps you author and test several queries over Twitter data.

Per confrontare il numero di menzioni tra gli argomenti, è possibile usare una finestra a cascata per ottenere il conteggio delle menzioni per argomento ogni cinque secondi.To compare the number of mentions among topics, you can use a Tumbling window to get the count of mentions by topic every five seconds.

  1. Chiudere il pannello Input se non si è già fatto.Close the Inputs blade if you haven't already.

  2. Nel pannello del processo fare clic sulla casella Query.In the job blade, click the Query box. Azure elenca gli input e gli output configurati per il processo e consente di creare una query per trasformare il flusso di input nel momento in cui viene inviato all'output.Azure lists the inputs and outputs that are configured for the job, and lets you create a query that lets you transform the input stream as it is sent to the output.

  3. Verificare che l'applicazione TwitterWpfClient sia in esecuzione.Make sure that the TwitterWpfClient application is running.

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

    Voci di menu per usare dati di esempio per la voce del processo di Analisi di flusso, con l'opzione "Campiona dati da input" selezionata

    Verrà aperto un pannello che consente di specificare la quantità di dati di esempio da ottenere, definita in termini di durata della lettura del flusso di input.This opens a blade that lets you specify how much sample data to get, defined in terms of how long to read the input stream.

  5. Impostare Minuti su 3 e quindi fare clic su OK.Set Minutes to 3 and then click OK.

    Opzioni per il campionamento del flusso di input, con l'opzione "3 minuti" selezionata.

    Azure campiona i dati dal flusso di input per una durata di tre minuti e invia una notifica quando i dati di esempio sono pronti.Azure samples 3 minutes' worth of data from the input stream and notifies you when the sample data is ready. Questa operazione richiede un breve tempo.(This takes a short while.)

    I dati di esempio vengono archiviati temporaneamente e sono disponibili finché rimane aperta la finestra di query.The sample data is stored temporarily and is available while you have the query window open. Se si chiude la finestra di query, i dati di esempio verranno rimossi e sarà necessario creare un nuovo set di dati.If you close the query window, the sample data is discarded, and you have to create a new set of sample data.

  6. Modificare la query nell'editor di codice nel modo seguente:Change the query in the code editor to the following:

    SELECT System.Timestamp as Time, Topic, COUNT(*)
    FROM TwitterStream TIMESTAMP BY CreatedAt
    GROUP BY TUMBLINGWINDOW(s, 5), Topic
    

    Se non si è usato TwitterStream come alias per l'input, sostituire l'alias per TwitterStream nella query.If didn't use TwitterStream as the alias for the input, substitute your alias for TwitterStream in the query.

    In questa query viene usata la parola chiave TIMESTAMP BY per specificare un campo di timestamp nel payload da usare nel calcolo temporale.This query uses the TIMESTAMP BY keyword to specify a timestamp field in the payload to be used in the temporal computation. Se il campo non è stato specificato, l'operazione di windowing viene eseguita usando l'ora in cui ogni evento è arrivato all'hub eventi.If this field isn't specified, the windowing operation is performed by using the time that each event arrived at the event hub. Altre informazioni sono disponibili nella sezione relativa a tempo di arrivo e tempo di applicazione nelle informazioni di riferimento sulle query di Analisi di flusso.Learn more in the "Arrival Time vs Application Time" section of Stream Analytics Query Reference.

    Questa query accede anche a un timestamp per la fine di ogni finestra usando la proprietà System.Timestamp.This query also accesses a timestamp for the end of each window by using the System.Timestamp property.

  7. Fare clic su Test.Click Test. La query viene eseguita sui dati che sono stati campionati.The query runs against the data that you sampled.

  8. Fare clic su Salva.Click Save. In questo modo la query viene salvata nell'ambito del processo di Analisi di flusso.This saves the query as part of the Streaming Analytics job. I dati di esempio non vengono salvati.(It doesn't save the sample data.)

Provare a usare diversi campi dal flussoExperiment using different fields from the stream

La tabella seguente elenca i campi che fanno parte dei dati di flusso JSON.The following table lists the fields that are part of the JSON streaming data. È possibile sperimentare nell'editor di query.Feel free to experiment in the query editor.

Proprietà JSONJSON property DefinizioneDefinition
CreatedAtCreatedAt Orario di creazione del tweetThe time that the tweet was created
ArgomentoTopic Argomento che corrisponde alla parola chiave specificataThe topic that matches the specified keyword
SentimentScoreSentimentScore Punteggio del sentiment da Sentiment140The sentiment score from Sentiment140
AutoreAuthor Handle di Twitter che ha inviato il tweetThe Twitter handle that sent the tweet
TextText Corpo completo del tweetThe full body of the tweet

Creare un sink di outputCreate an output sink

A questo punto sono stati definiti un flusso di eventi, un input dell'hub eventi per inserire gli eventi e una query per eseguire una trasformazione nel flusso.You have now defined an event stream, an event hub input to ingest events, and a query to perform a transformation over the stream. L'ultimo passaggio consiste nel definire un sink di output per il processo.The last step is to define an output sink for the job.

In questa esercitazione gli eventi tweet aggregati ottenuti dalla query del processo vengono scritti nell'archiviazione BLOB di Azure.In this tutorial, you write the aggregated tweet events from the job query to Azure Blob storage. È anche possibile eseguire il push dei risultati al database SQL di Azure, ad Archiviazione tabelle di Azure, a Hub eventi o a Power BI, in base alle esigenze specifiche dell'applicazione.You can also push your results to Azure SQL Database, Azure Table storage, Event Hubs, or Power BI, depending on your application needs.

Specificare l'output del processoSpecify the job output

  1. Nella sezione Topologia processo fare clic sulla casella Output.In the Job Topology section, click the Output box.

  2. Nel pannello Output fare clic su + Aggiungi e quindi compilare il pannello con questi valori:In the Outputs blade, click + Add and then fill out the blade with these values:

    • Alias di output: usare il nome TwitterStream-Output.Output alias: Use the name TwitterStream-Output.
    • Sink: selezionare Archivio BLOB.Sink: Select Blob storage.
    • Opzioni di importazione: selezionare Usa l'archiviazione BLOB della sottoscrizione corrente.Import options: Select Use blob storage from current subscription.
    • Account di archiviazione.Storage account. Selezionare Crea un nuovo account di archiviazione.Select Create a new storage account.
    • Account di archiviazione (seconda casella).Storage account (second box). Immettere YOURNAMEsa, dove YOURNAME rappresenta il nome o un'altra stringa univoca.Enter YOURNAMEsa, where YOURNAME is your name or another unique string. Il nome può contenere solo lettere minuscole e numeri e deve essere univoco in Azure.The name can use only lowercase letters and numbers, and it must be unique across Azure.
    • Contenitore.Container. Immettere socialtwitter.Enter socialtwitter. Il nome dell'account di archiviazione e il nome del contenitore vengono usati insieme per fornire un URI per l'archiviazione BLOB, in modo simile al seguente:The storage account name and container name are used together to provide a URI for the blob storage, like this:

      http://YOURNAMEsa.blob.core.windows.net/socialtwitter/...

      Pannello "Nuovo output" per il processo di Analisi di flusso

  3. Fare clic su Crea.Click Create.

    Azure crea l'account di archiviazione e genera automaticamente una chiave.Azure creates the storage account and generates a key automatically.

  4. Chiudere il pannello Output.Close the Outputs blade.

Avviare il processoStart the job

Sono stati specificati l'input del processo, la query e l'output.A job input, query, and output are specified. A questo punto si è pronti ad avviare il processo di Analisi di flusso.You are ready to start the Stream Analytics job.

  1. Verificare che l'applicazione TwitterWpfClient sia in esecuzione.Make sure that the TwitterWpfClient application is running.

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

    Avviare il processo di Analisi di flusso

  3. Nel pannello Avvia processo, per Ora di inizio dell'output del processo, selezionare Ora e quindi fare clic su Avvia.In the Start job blade, for Job output start time, select Now and then click Start.

    Pannello "Avvia processo" per il processo di Analisi di flusso

    Azure informa l'utente quando il processo viene avviato e, nel pannello del processo, lo stato viene visualizzato come In esecuzione.Azure notifies you when the job has started, and in the job blade, the status is displayed as Running.

    Processo in esecuzione

Visualizzare l'output per l'analisi del sentimentView output for sentiment analysis

Quando il processo è in esecuzione ed elabora il flusso di Twitter in tempo reale, è possibile visualizzare l'output per l'analisi del sentiment.After your job has started running and is processing the real-time Twitter stream, you can view the output for sentiment analysis.

Per visualizzare l'output del processo in tempo reale, usare uno strumento come Azure Storage Explorer o Azure Explorer.You can use a tool like Azure Storage Explorer or Azure Explorer to view your job output in real time. A questo punto è possibile usare Power BI per estendere l'applicazione in modo da includere un dashboard personalizzato come quello riportato nello screenshot seguente:From here, you can use Power BI to extend your application to include a customized dashboard like the one shown in the following screenshot:

Power BI

Un'altra query che è possibile usare per comprendere il sentiment su Twitter si basa su un finestra temporale scorrevole.Another query you can use to understand Twitter sentiment is based on a Sliding Window. Per identificare gli argomenti di tendenza si cercano gli argomenti in cui le menzioni superano un valore soglia entro un determinato periodo di tempo.To identify trending topics, you look for topics that cross a threshold value for mentions in a specified amount of time.

Ai fini di questa esercitazione, si cercano gli argomenti menzionati più di 20 volte negli ultimi cinque secondi.For the purposes of this tutorial, you check for topics that are mentioned more than 20 times in the last 5 seconds.

  1. Nel pannello del processo fare clic su Arresta per arrestare il processo.In the job blade, click Stop to stop the job.

  2. Nella sezione Topologia processo fare clic sulla casella Query.In the Job Topology section, click the Query box.

  3. Modificare la query nel modo seguente:Change the query to the following:

    SELECT System.Timestamp as Time, Topic, COUNT(*) as Mentions
    FROM TwitterStream TIMESTAMP BY CreatedAt
    GROUP BY SLIDINGWINDOW(s, 5), topic
    HAVING COUNT(*) > 20
    
  4. Fare clic su Salva.Click Save.

  5. Verificare che l'applicazione TwitterWpfClient sia in esecuzione.Make sure that the TwitterWpfClient application is running.

  6. Fare clic su Avvia per riavviare il processo usando la nuova query.Click Start to restart the job using the new query.

SupportoGet support

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

Passaggi successiviNext steps