快速入门:生成适用于点击流分析的 e2e 流式处理应用程序
分析点击流数据是企业优化网站流量和深入了解用户行为的有效方法。 本快速入门概述了如何生成用于分析网站点击流数据的流式处理应用程序。
本指南中概述的方法使用 PowerShell 脚本通过自动生成的示例数据流部署 Azure 资源。 自动生成的数据支持探索各种流分析方案,并帮助你轻松部署 Azure 资源。
下面是处理和分析点击流的典型方案:
- 筛选点击流请求
- 将点击流与文件联接
- Azure 订阅。 如果你没有 Azure 订阅,请创建一个试用版订阅。
- 安装 Git。
- Azure PowerShell 模块。 访问此处以进行安装或升级。
在此示例中,你将了解如何从网站点击流中提取 GET
和 POST
请求并将输出结果存储到 Azure Blob 存储。 以下是此示例的体系结构:
网站点击流示例:
{
"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.git
转到 BuildApplications 文件夹。
cd .\azure-stream-analytics\BuildApplications\
登录 Azure 并在弹出式浏览器中输入你的 Azure 凭据。
Connect-AzAccount -Environment AzureChinaCloud
将
$subscriptionId
替换为你的 Azure 订阅 ID 并运行以下命令来部署 Azure 资源。 此过程可能需要几分钟才能完成。.\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId
eventsPerMinute
是生成数据的输入速率。 在这种情况下,输入源每分钟生成 11 个事件。- 可以在“Azure 门户”>“订阅”中查找订阅 ID。
部署完成后,它会自动打开浏览器,Azure 门户中会显示名为 ClickStream-Filter-rg-* 的资源组。 资源组包含以下五个资源:
资源类型 名称 说明 Azure 函数 clickstream* 生成点击流数据 事件中心 clickstream* 引入点击流数据以供使用 流分析作业 ClickStream-Filter 定义一个查询以从点击流输入中提取 GET
请求Blob 存储 clickstream* ASA 作业的输出目标 应用服务计划 clickstream* Azure Function 的必要条件 祝贺你! 你已经部署了一个流式处理应用程序来从网站点击流中提取请求。
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'
查询注释中有示例代码,可将其用于具有一个流输入的其他流分析方案。
计算每小时的点击次数
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 存储”>“容器”>“job-output”>>。
如果要使用存储中的用户文件查找点击流的用户名,可以将点击流与参考输入联接,如以下体系结构:
假设已完成上一示例的步骤,请运行以下命令来创建一个新的资源组:
将
$subscriptionId
替换为你的 Azure 订阅 ID 并运行以下命令来部署 Azure 资源。 此过程可能需要几分钟才能完成。.\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionId
部署完成后,它会自动打开浏览器,Azure 门户中会显示名为 ClickStream-RefJoin-rg-* 的资源组。 资源组包含五个资源。
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
祝贺你! 你已经部署了一个流式处理应用程序来将用户文件与网站点击流联接。
如果已试用此项目且不再需要该资源组,请在 PowerShell 中运行此命令以删除该资源组。
Remove-AzResourceGroup -Name $resourceGroup
如果计划在将来使用此项目,可以跳过删除它的操作,暂时停止该作业。