次の方法で共有


クイック スタート: Clickstream 分析用の e2e ストリーミング アプリケーションを構築する

クリックストリーム データの分析は、企業が Web サイトのトラフィックを最適化し、ユーザーの行動に関する分析情報を得るための効果的な方法です。 このクイック スタートでは、Web サイトのクリックストリーム データを分析するためのストリーミング アプリケーションを構築する方法について説明します。

このガイドで説明する方法では、PowerShell スクリプトを使用して、自動生成されたサンプル データ ストリームを使用して Azure リソースをデプロイします。 自動生成されたデータを使用すると、さまざまなストリーム分析シナリオを調査でき、Azure リソースを簡単にデプロイできます。

クリックストリームの処理と分析の一般的なシナリオを次に示します。

  • クリックストリーム要求をフィルター処理する
  • Clickstream とファイルを結合する

[前提条件]

クリックストリーム要求をフィルター処理する

この例では、Web サイトのクリックストリームから GET 要求と POST 要求を抽出し、出力結果を Azure Blob Storage に格納する方法について説明します。 この例のアーキテクチャを次に示します: Clickstream 1 つの入力

Web サイトのクリックストリームのサンプル:

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

GitHub リポジトリで使用可能なスクリプトを使用して、必要なリソースをデプロイします。

  1. [スタート] メニューから PowerShell を開き、この GitHub リポジトリを作業ディレクトリに複製します。

    git clone https://github.com/Azure/azure-stream-analytics.git
    
  2. BuildApplications フォルダーに移動します。

    cd .\azure-stream-analytics\BuildApplications\
    
  3. Azure にサインインし、ポップアップ ブラウザーで Azure 資格情報を入力します。

    Connect-AzAccount
    
  4. $subscriptionIdを Azure サブスクリプション ID に置き換え、次のコマンドを実行して Azure リソースをデプロイします。 このプロセスが完了するまでに数分かかる場合があります。

    .\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId
    
    • eventsPerMinute は、生成されたデータの入力レートです。 この場合、入力ソースは 1 分あたり 11 個のイベントを生成します。
    • サブスクリプション ID は 、Azure portal > サブスクリプションで確認できます。
  5. デプロイが完了すると、ブラウザーが自動的に開き、Azure portal に ClickStream-Filter-rg-* という名前のリソース グループが表示されます。 リソース グループには、次の 5 つのリソースが含まれています。

    リソースの種類 名前 Description
    Azure 関数 クリックストリーム(ウェブサイト上でのクリックの流れ) クリックストリーム データを生成する
    Event Hubs クリックストリーム(ウェブサイト上でのクリックの流れ) クリックストリーム データを取り込み、使用する
    ストリーム アナリティクス ジョブ ClickStream-Filter クリックストリーム入力から GET 要求を抽出するクエリを定義する
    Blob Storage クリックストリーム(ウェブサイト上でのクリックの流れ) ASA ジョブの出力先
    App Service プラン クリックストリーム(ウェブサイト上でのクリックの流れ) Azure 関数の必要性
  6. 祝賀! Web サイトのクリックストリームから要求を抽出するストリーミング アプリケーションをデプロイしました。

  7. ASA ジョブ ClickStream-Filter は、次のクエリを使用して、クリックストリームから HTTP 要求を抽出します。 クエリ エディターで [ クエリのテスト ] を選択して、出力結果をプレビューします。

    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'
    

    クエリのテスト

  8. クエリ コメントには、1 つのストリーム入力で他のストリーム分析シナリオに使用できるサンプル コードがあります。

    • 1 時間ごとにクリック数をカウントする

      select System.Timestamp as Systime, count( * )
      FROM clickstream
      TIMESTAMP BY EventTime
      GROUP BY TumblingWindow(hour, 1)
      
    • 個別のユーザーを選択する

      SELECT *
      FROM clickstream
      TIMESTAMP BY Time
      WHERE ISFIRST(hour, 1) OVER(PARTITION BY userId) = 1
      
  9. すべての出力結果は、ブログ ストレージ JSON ファイルとして格納されます。 Blob Storage > [コンテナー] > [job-output] で見つけることができます。 Blob Storage

Clickstream-RefJoin

ストレージ内のユーザーファイルを使用してクリックストリームのユーザー名を確認したい場合は、クリックストリームを参照入力と結合することができます。以下のアーキテクチャです。クリックストリーム二重入力

前の例の手順を完了していることを前提として、次のコマンドを実行して新しいリソース グループを作成します。

  1. $subscriptionIdを Azure サブスクリプション ID に置き換え、次のコマンドを実行して Azure リソースをデプロイします。 このプロセスが完了するまでに数分かかる場合があります。

    .\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionId
    
  2. デプロイが完了すると、ブラウザーが自動的に開き、Azure portal に ClickStream-RefJoin-rg-* という名前のリソース グループが表示されます。 リソース グループには、5 つのリソースが含まれています。

  3. ASA ジョブ ClickStream-RefJoin は、次のクエリを使用して、クリックストリームを参照 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. 祝賀! ストリーミング アプリケーションをデプロイして、ユーザー ファイルを Web サイトのクリックストリームと結合しました。

リソースをクリーンアップする

このプロジェクトを試してもリソース グループが不要になった場合は、PowerShell でこのコマンドを実行してリソース グループを削除します。

Remove-AzResourceGroup -Name $resourceGroup

今後このプロジェクトを使用する予定の場合は、削除をスキップして、現時点でジョブを停止できます。

次のステップ

Azure Stream Analytics の詳細については、次の記事に進んでください。