クリックストリーム データの分析は、企業が Web サイトのトラフィックを最適化し、ユーザーの行動に関する分析情報を得るための効果的な方法です。 このクイック スタートでは、Web サイトのクリックストリーム データを分析するためのストリーミング アプリケーションを構築する方法について説明します。
このガイドで説明する方法では、PowerShell スクリプトを使用して、自動生成されたサンプル データ ストリームを使用して Azure リソースをデプロイします。 自動生成されたデータを使用すると、さまざまなストリーム分析シナリオを調査でき、Azure リソースを簡単にデプロイできます。
クリックストリームの処理と分析の一般的なシナリオを次に示します。
- クリックストリーム要求をフィルター処理する
- Clickstream とファイルを結合する
[前提条件]
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
- Git のインストール。
- Azure PowerShell モジュール。 インストールまたはアップグレードするには、こちらを参照してください。
クリックストリーム要求をフィルター処理する
この例では、Web サイトのクリックストリームから GET 要求と POST 要求を抽出し、出力結果を Azure Blob Storage に格納する方法について説明します。 この例のアーキテクチャを次に示します:
。
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 リポジトリで使用可能なスクリプトを使用して、必要なリソースをデプロイします。
[スタート] メニューから PowerShell を開き、この GitHub リポジトリを作業ディレクトリに複製します。
git clone https://github.com/Azure/azure-stream-analytics.gitBuildApplications フォルダーに移動します。
cd .\azure-stream-analytics\BuildApplications\Azure にサインインし、ポップアップ ブラウザーで Azure 資格情報を入力します。
Connect-AzAccount$subscriptionIdを Azure サブスクリプション ID に置き換え、次のコマンドを実行して Azure リソースをデプロイします。 このプロセスが完了するまでに数分かかる場合があります。.\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId-
eventsPerMinuteは、生成されたデータの入力レートです。 この場合、入力ソースは 1 分あたり 11 個のイベントを生成します。 - サブスクリプション ID は 、Azure portal > サブスクリプションで確認できます。
-
デプロイが完了すると、ブラウザーが自動的に開き、Azure portal に ClickStream-Filter-rg-* という名前のリソース グループが表示されます。 リソース グループには、次の 5 つのリソースが含まれています。
リソースの種類 名前 Description Azure 関数 クリックストリーム(ウェブサイト上でのクリックの流れ) クリックストリーム データを生成する Event Hubs クリックストリーム(ウェブサイト上でのクリックの流れ) クリックストリーム データを取り込み、使用する ストリーム アナリティクス ジョブ ClickStream-Filter クリックストリーム入力から GET要求を抽出するクエリを定義するBlob Storage クリックストリーム(ウェブサイト上でのクリックの流れ) ASA ジョブの出力先 App Service プラン クリックストリーム(ウェブサイト上でのクリックの流れ) Azure 関数の必要性 祝賀! Web サイトのクリックストリームから要求を抽出するストリーミング アプリケーションをデプロイしました。
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'
クエリ コメントには、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
すべての出力結果は、ブログ ストレージ
JSONファイルとして格納されます。 Blob Storage > [コンテナー] > [job-output] で見つけることができます。
Clickstream-RefJoin
ストレージ内のユーザーファイルを使用してクリックストリームのユーザー名を確認したい場合は、クリックストリームを参照入力と結合することができます。以下のアーキテクチャです。
前の例の手順を完了していることを前提として、次のコマンドを実行して新しいリソース グループを作成します。
$subscriptionIdを Azure サブスクリプション ID に置き換え、次のコマンドを実行して Azure リソースをデプロイします。 このプロセスが完了するまでに数分かかる場合があります。.\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionIdデプロイが完了すると、ブラウザーが自動的に開き、Azure portal に ClickStream-RefJoin-rg-* という名前のリソース グループが表示されます。 リソース グループには、5 つのリソースが含まれています。
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祝賀! ストリーミング アプリケーションをデプロイして、ユーザー ファイルを Web サイトのクリックストリームと結合しました。
リソースをクリーンアップする
このプロジェクトを試してもリソース グループが不要になった場合は、PowerShell でこのコマンドを実行してリソース グループを削除します。
Remove-AzResourceGroup -Name $resourceGroup
今後このプロジェクトを使用する予定の場合は、削除をスキップして、現時点でジョブを停止できます。
次のステップ
Azure Stream Analytics の詳細については、次の記事に進んでください。