Schnellstart: Erstellen einer e2e Streaming-Anwendung für 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. Dies ist die Architektur für dieses Beispiel: Ein Eingang für den Klickstrom

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 für die Bereitstellung unserer erforderlichen Ressourcen verfügbar sind:

  1. Öffnen Sie PowerShell über das Startmenü, 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. Sobald die Bereitstellung abgeschlossen ist, wird Ihr Browser automatisch geöffnet, und 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 ASA-Auftrag
    App Serviceplan clickstream* Eine Notwendigkeit für Azure-Funktion
  6. Gratulation! Sie haben eine Streaminganwendung bereitgestellt, um Anforderungen aus einem Website-Clickstream zu extrahieren.

  7. Der ASA-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'
    

    Testabfrage

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

    • 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 im Blogspeicher gespeichert. Sie können es unter Blob Storage > Containers > job-output finden. Blob-Speicher

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 mit zwei Eingaben

Angenommen, Sie haben die Schritte für das vorherige Beispiel abgeschlossen, 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. Sobald die Bereitstellung abgeschlossen ist, wird Ihr Browser automatisch geöffnet, und Sie können eine Ressourcengruppe namens ClickStream-RefJoin-rg-* im Azure-Portal sehen. Die Ressourcengruppe enthält fünf Ressourcen.

  3. Der ASA-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. Gratulation! 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 auf PowerShell aus, um die Ressourcengruppe zu löschen.

Remove-AzResourceGroup -Name $resourceGroup

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

Nächste Schritte

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