Leggere in inglese

Condividi tramite


Guida introduttiva: Creare un'applicazione di streaming e2e per l'analisi Clickstream

L'analisi dei dati clickstream è un modo efficace per consentire alle aziende di ottimizzare il traffico del sito Web e ottenere informazioni dettagliate sul comportamento degli utenti. Questa guida introduttiva illustra come creare un'applicazione di streaming per l'analisi dei dati clickstream del sito Web.

Il metodo descritto in questa guida usa uno script di PowerShell per distribuire le risorse di Azure con flussi di dati di esempio generati automaticamente. I dati generati automaticamente consentono di esplorare vari scenari di analisi del flusso e consentono di distribuire facilmente le risorse di Azure.

Ecco gli scenari tipici per l'elaborazione e l'analisi di clickstream:

  • Filtrare le richieste clickstream
  • Aggiungere clickstream con un file

Prerequisiti

Filtrare le richieste clickstream

In questo esempio si apprenderà come estrarre GET e POST richiedere da un sito Web clickstream e archiviare i risultati di output in un Archiviazione BLOB di Azure. Ecco l'architettura per questo esempio: Clickstream un input

Esempio di clickstream di un sito Web:

JSON
{
    "EventTime": "2022-09-09 08:58:59 UTC",
    "UserID": 465,
    "IP": "145.140.61.170",
    "Request": {
    "Method": "GET",
    "URI": "/index.html",
    "Protocol": "HTTP/1.1"
    },
    "Response": {
    "Code": 200,
    "Bytes": 42682
    },
    "Browser": "Chrome"
}

Verranno usati gli script disponibili nel repository GitHub per distribuire le risorse necessarie:

  1. Aprire PowerShell dal menu Start, clonare questo repository GitHub nella directory di lavoro.

    PowerShell
    git clone https://github.com/Azure/azure-stream-analytics.git
    
  2. Passare alla cartella BuildApplications .

    PowerShell
    cd .\azure-stream-analytics\BuildApplications\
    
  3. Accedere ad Azure e immettere le credenziali di Azure nel browser popup.

    PowerShell
    Connect-AzAccount
    
  4. Sostituire $subscriptionId con l'ID sottoscrizione di Azure ed eseguire il comando seguente per distribuire le risorse di Azure. Il completamento di questo processo può richiedere alcuni minuti.

    PowerShell
    .\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId
    
    • eventsPerMinute è la frequenza di input per i dati generati. In questo caso, l'origine di input genera 11 eventi al minuto.
    • È possibile trovare l'ID sottoscrizione in portale di Azure > Sottoscrizioni.
  5. Al termine della distribuzione, il browser viene aperto automaticamente e nel portale di Azure è possibile visualizzare un gruppo di risorse denominato ClickStream-Filter-rg-* . Il gruppo di risorse contiene le cinque risorse seguenti:

    Tipo di risorsa Nome Descrizione
    Funzione di Azure clickstream* Generare dati clickstream
    Hub eventi clickstream* Inserire dati clickstream per l'utilizzo
    Processo di Analisi di flusso ClickStream-Filter Definire una query per estrarre GET le richieste dall'input clickstream
    Archiviazione BLOB clickstream* Destinazione di output per il processo ASA
    Piano di servizio app clickstream* Una necessità per la funzione di Azure
  6. Congratulazioni. È stata distribuita un'applicazione di streaming per estrarre le richieste da un sito Web clickstream.

  7. Il processo ASA ClickStream-Filter usa la query seguente per estrarre le richieste HTTP dal clickstream. Selezionare Test query nell'editor di query per visualizzare in anteprima i risultati dell'output.

    SQL
    SELECT System.Timestamp Systime, UserId, Request.Method, Response.Code, Browser
    INTO BlobOutput
    FROM ClickStream TIMESTAMP BY Timestamp
    WHERE Request.Method = 'GET' or Request.Method = 'POST'
    

    Test Query

  8. Nei commenti di query sono disponibili codici di esempio che è possibile usare per altri scenari di analisi di flusso con un input di flusso.

    • Conteggio dei clic per ogni ora

      SQL
      select System.Timestamp as Systime, count( * )
      FROM clickstream
      TIMESTAMP BY EventTime
      GROUP BY TumblingWindow(hour, 1)
      
    • Selezionare un utente distinto

      SQL
      SELECT *
      FROM clickstream
      TIMESTAMP BY Time
      WHERE ISFIRST(hour, 1) OVER(PARTITION BY userId) = 1
      
  9. Tutti i risultati di output vengono archiviati come JSON file nell'archiviazione blog. È possibile trovarla tramite: Blob Storage > Containers > job-output. Archiviazione BLOB

Clickstream-RefJoin

Se si vuole trovare il nome utente per il clickstream usando un file utente nell'archiviazione, è possibile aggiungere il clickstream con un input di riferimento come architettura seguente: Clickstream due input

Si supponga di aver completato i passaggi per l'esempio precedente, eseguire i comandi seguenti per creare un nuovo gruppo di risorse:

  1. Sostituire $subscriptionId con l'ID sottoscrizione di Azure ed eseguire il comando seguente per distribuire le risorse di Azure. Il completamento di questo processo può richiedere alcuni minuti.

    PowerShell
    .\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionId
    
  2. Al termine della distribuzione, il browser viene aperto automaticamente ed è possibile visualizzare un gruppo di risorse denominato ClickStream-RefJoin-rg-* nel portale di Azure. Il gruppo di risorse contiene cinque risorse.

  3. Il processo ASA ClickStream-RefJoin usa la query seguente per unire il clickstream con l'input SQL di riferimento.

    SQL
    CREATE TABLE UserInfo(
      UserId bigint,
      UserName nvarchar(max),
      Gender nvarchar(max)
    );
    SELECT System.Timestamp Systime, ClickStream.UserId, ClickStream.Response.Code, UserInfo.UserName, UserInfo.Gender
    INTO BlobOutput
    FROM ClickStream TIMESTAMP BY EventTime
    LEFT JOIN UserInfo ON ClickStream.UserId = UserInfo.UserId
    
  4. Congratulazioni. È stata distribuita un'applicazione di streaming per aggiungere il file utente a un sito Web clickstream.

Pulire le risorse

Se il progetto è stato provato e non è più necessario il gruppo di risorse, eseguire questo comando in PowerShell per eliminare il gruppo di risorse.

PowerShell
Remove-AzResourceGroup -Name $resourceGroup

Se si prevede di usare questo progetto in futuro, è possibile ignorare l'eliminazione e arrestare il processo per il momento.

Passaggi successivi

Per informazioni su Analisi di flusso di Azure, continuare con gli articoli seguenti: