Freigeben über


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

Die Analyse von Clickstreamdaten ist eine effektive Möglichkeit für Unternehmen, den Websitedatenverkehr zu optimieren und Erkenntnisse über das Benutzerverhalten zu gewinnen. In dieser Schnellstartanleitung wird beschrieben, wie Sie eine Streaminganwendung zum Analysieren der Clickstreamdaten von Websites erstellen können.

In der in diesem Leitfaden beschriebenen Methode wird ein PowerShell-Skript zum Bereitstellen von Azure-Ressourcen mit automatisch generierten Beispieldatenströmen verwendet. Die automatisch generierten Daten ermöglichen die Untersuchung verschiedener Streamanalyseszenarien und helfen Ihnen, Azure-Ressourcen mühelos bereitzustellen.

Das sind die typischen Szenarien für die Verarbeitung und Analyse von Clickstreamdaten:

  • Clickstreamanforderungen filtern
  • Clickstream mit einer Datei verknüpfen

Voraussetzungen

Clickstreamanforderungen filtern

In diesem Beispiel erfahren Sie, wie Sie GET- und POST-Anforderungen aus einem Website-Clickstream extrahieren und die Ausgabeergebnisse in einem Azure Blob Storage speichern. Hier sehen Sie die Architektur für dieses Beispiel: Clickstream eins-Eingabe

Beispiel für einen Website-Clickstream:

{
    "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"
}

Wir verwenden die Skripts, die im GitHub-Repository verfügbar sind, um die erforderlichen Ressourcen bereitzustellen:

  1. Öffnen Sie die PowerShell im 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 im Popupbrowserfenster Ihre Azure-Anmeldeinformationen ein.

    Connect-AzAccount
    
  4. Ersetzen 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 im Azure-Portal > Abonnements.
  5. Sobald die Bereitstellung abgeschlossen ist, wird Ihr Browser automatisch geöffnet, und im Azure-Portal wird eine Ressourcengruppe namens ClickStream-Filter-rg-* angezeigt. Die Ressourcengruppe enthält die folgenden fünf Ressourcen:

    Ressourcentyp Name BESCHREIBUNG
    Azure Function clickstream* Generieren von Clickstreamdaten
    Event Hubs clickstream* Erfassen von Clickstreamdaten für die Nutzung
    Stream Analytics-Auftrag ClickStream-Filter Definieren einer Abfrage zum Extrahieren von GET-Anforderungen aus der Clickstreameingabe
    Blob Storage clickstream* Ausgabeziel für den ASA-Auftrag
    App Service-Plan clickstream* Eine Notwendigkeit für die Azure-Funktion
  6. Glückwunsch! Sie haben eine Streaminganwendung bereitgestellt, um Anforderungen aus einem Website-Clickstream zu extrahieren.

  7. Der ClickStream-Filter des ASA-Auftrags verwendet die folgende Abfrage, um HTTP-Anforderungen aus dem Clickstream zu extrahieren. Wählen Sie im Abfrage-Editor Abfrage testen 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'
    

    Abfrage testen

  8. Es gibt Beispielcodes in den Abfragekommentaren, die Sie für andere Streamanalyseszenarien mit einer Streameingabe verwenden können.

    • Zählen von Klicks für jede Stunde

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

      SELECT *
      FROM clickstream
      TIMESTAMP BY Time
      WHERE ISFIRST(hour, 1) OVER(PARTITION BY userId) = 1
      
  9. Alle Ausgabeergebnisse werden als JSON-Datei im Blob Storage gespeichert. Sie finden sie über: Blob Storage > Container > job-output (Auftragsausgabe). Blob Storage

Clickstream-RefJoin

Wenn Sie den Benutzernamen für den Clickstream mithilfe einer Benutzerdatei im Speicher ermitteln möchten, können Sie den Clickstream mit einer Verweiseingabe als folgende Architektur verknüpfen: Clickstream zwei-Eingabe

Angenommen, Sie haben die Schritte für das vorherige Beispiel abgeschlossen, dann führen Sie die folgenden Befehle aus, um eine neue Ressourcengruppe zu erstellen:

  1. Ersetzen 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. Sobald die Bereitstellung abgeschlossen ist, wird Ihr Browser automatisch geöffnet, und im Azure-Portal wird eine Ressourcengruppe namens ClickStream-RefJoin-rg-* angezeigt. Die Ressourcengruppe enthält fünf Ressourcen.

  3. Die ClickStream-RefJoin des ASA-Auftrags verwendet die folgende Abfrage, um den Clickstream mit der SQL-Verweiseingabe zu verknüpfen.

    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. Glückwunsch! Sie haben eine Streaminganwendung bereitgestellt, um Ihre Benutzerdatei mit einem Website-Clickstream zu verknüpfen.

Bereinigen von Ressourcen

Wenn Sie dieses Projekt ausprobiert haben und die Ressourcengruppe nicht mehr benötigen, führen Sie diesen Befehl in PowerShell aus, um die Ressourcengruppe zu löschen.

Remove-AzResourceGroup -Name $resourceGroup

Wenn Sie dieses Projekt in Zukunft noch verwenden möchten, können Sie den Löschvorgang überspringen und den Auftrag vorerst beenden.

Nächste Schritte

Informationen zu Azure Stream Analytics finden Sie in den folgenden Artikeln: