Schnellstart: Erstellen einer End-to-End-Streaminganwendung für die Clickstream-Analyse

Die Analyse von Clickstream-Daten ist eine effektive Möglichkeit für Unternehmen, den Websiteverkehr zu optimieren und Einblicke in das Benutzerverhalten zu gewinnen. In dieser Schnellstartanleitung wird beschrieben, wie Sie eine Streaminganwendung zum Analysieren von Website-Clickstream-Daten erstellen können.

Die in diesem Handbuch beschriebene Methode verwendet ein PowerShell-Skript zum Bereitstellen von Azure-Ressourcen mit automatisch generierten Beispieldatenströmen. Die automatisch generierten Daten ermöglichen das Untersuchen verschiedener Datenstromanalyseszenarien und helfen Ihnen, Azure-Ressourcen mühelos bereitzustellen.

Dies sind die typischen Szenarien für die Verarbeitung und Analyse von Clickstreams:

  • Clickstreamanforderungen filtern
  • Clickstream mit einer Datei verknüpfen

Voraussetzungen

Clickstreamanforderungen filtern

In diesem Beispiel lernen Sie, GET und POST Anfragen aus einem Clickstream einer Website zu extrahieren und die Ausgabeergebnisse in einem Azure Blob Storage zu speichern. Hier ist die Architektur für dieses Beispiel: Diagramm, das die Clickstream-Filterarchitektur mit einer Eingabe zeigt, die über Stream Analytics an Blob Storage weitergeleitet wird.

Beispiel für einen Website-Clickstream:

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

Verwenden Sie die im repository GitHub verfügbaren Skripts, um die erforderlichen Ressourcen bereitzustellen:

  1. Öffnen Sie PowerShell über das Startmenü, und klonen Sie dieses GitHub Repository in Ihr Arbeitsverzeichnis.

    git clone https://github.com/Azure/azure-stream-analytics.git
    
  2. Wechseln Sie zum Ordner "BuildApplications ".

    cd .\azure-stream-analytics\BuildApplications\
    
  3. Melden Sie sich bei Azure an, und geben Sie Ihre Azure-Anmeldeinformationen im Popupbrowser ein.

    Connect-AzAccount
    
  4. Ersetzen Sie sie $subscriptionId durch Ihre Azure-Abonnement-ID, und führen Sie den folgenden Befehl aus, um Azure-Ressourcen bereitzustellen. Dieser Vorgang kann einige Minuten dauern.

    .\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId
    
    • eventsPerMinute ist die Eingaberate für generierte Daten. In diesem Fall generiert die Eingabequelle 11 Ereignisse pro Minute.
    • Sie finden Ihre Abonnement-ID in Azure-Portalabonnements>.
  5. Nach Abschluss der Bereitstellung wird Ihr Browser automatisch geöffnet. Sie können eine Ressourcengruppe namens ClickStream-Filter-rg-* im Azure Portal sehen. Die Ressourcengruppe enthält die folgenden fünf Ressourcen:

    Ressourcentyp Name Description
    Azure-Funktion clickstream* Generieren von Clickstream-Daten
    Event Hubs clickstream* Erfassen von Clickstreamdaten für die Nutzung
    Stream Analytics-Auftrag ClickStream-Filter Definieren Sie eine Abfrage zum Extrahieren von GET-Anfragen aus der Clickstream-Eingabe.
    Blob Storage clickstream* Ausgabeziel für den Stream Analytics-Auftrag
    App Serviceplan clickstream* Eine Notwendigkeit für Azure-Funktion
  6. Sie haben eine Streaminganwendung zum Extrahieren von Anforderungen aus einem Website-Clickstream bereitgestellt.

  7. Der Stream Analytics-Auftrag ClickStream-Filter verwendet die folgende Abfrage, um HTTP-Anforderungen aus dem Clickstream zu extrahieren. Wählen Sie " Testabfrage " im Abfrage-Editor aus, um eine Vorschau der Ausgabeergebnisse anzuzeigen.

    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'
    

    Screenshot des Stream Analytics-Abfrage-Editors mit Testabfrageausgabeergebnissen.

  8. Die folgenden Beispielabfragen in den Abfragekommentaren sind für andere Datenstromanalyseszenarien mit einer Datenstromeingabe verfügbar.

    • Anzahl der Klicks für jede Stunde

      select System.Timestamp as Systime, count( * )
      FROM clickstream
      TIMESTAMP BY EventTime
      GROUP BY TumblingWindow(hour, 1)
      
    • Unterschiedliche Benutzer auswählen

      SELECT *
      FROM clickstream
      TIMESTAMP BY Time
      WHERE ISFIRST(hour, 1) OVER(PARTITION BY userId) = 1
      
  9. Alle Ausgabeergebnisse werden als JSON Datei in Azure Blob Storage gespeichert. Sie finden sie über Blob Storage > Container > job-output (Auftragsausgabe). Screenshot der Seite „Blob Storage-Container“ mit dem Auftragsausgabecontainer

Clickstream mit einer Referenzdatei verknüpfen

Um den Benutzernamen für den Clickstream mithilfe einer Benutzerdatei im Speicher zu ermitteln, können Sie den Clickstream mit einer Referenzeingabe verknüpfen, wie in der folgenden Architektur dargestellt: Diagramm, das die Clickstream-Architektur mit zwei Eingaben zeigt, die eine Datenstromeingabe und eine Referenzdatei verknüpfen.

Dieser Abschnitt baut auf den Ressourcen auf, die in Filter-Clickstream-Anforderungen bereitgestellt werden. Führen Sie die folgenden Befehle aus, um eine neue Ressourcengruppe zu erstellen:

  1. Ersetzen Sie sie $subscriptionId durch Ihre Azure-Abonnement-ID, und führen Sie den folgenden Befehl aus, um Azure-Ressourcen bereitzustellen. Dieser Vorgang kann einige Minuten dauern.

    .\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionId
    
  2. Nach Abschluss der Bereitstellung wird Ihr Browser automatisch geöffnet. Sie können eine Ressourcengruppe namens ClickStream-RefJoin-rg-* im Azure-Portal sehen. Die Ressourcengruppe enthält fünf Ressourcen.

  3. Der Stream Analytics-Auftrag ClickStream-RefJoin verwendet die folgende Abfrage, um den Clickstream mit Referenz-SQL-Eingabe zu verbinden.

    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. Sie haben eine Streaming-Anwendung bereitgestellt, um Ihre Benutzerdatei mit dem Clickstream einer Website zu verknüpfen.

Bereinigen von Ressourcen

Wenn Sie die Ressourcengruppe nicht mehr benötigen, führen Sie diesen Befehl in PowerShell aus, um sie zu löschen.

Remove-AzResourceGroup -Name $resourceGroup

Wenn Sie dieses Projekt in Zukunft verwenden möchten, können Sie das Löschen der Ressourcengruppe überspringen und stattdessen den Auftrag beenden.

Nächste Schritte

Um mehr über Azure Stream Analytics zu erfahren, fahren Sie mit den folgenden Artikeln fort: