你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
分析点击流数据是企业优化网站流量并深入了解用户行为的有效方法。 本快速入门概述了如何构建流式处理应用程序以分析网站点击流数据。
本指南中概述的方法使用 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将
$subscriptionId替换为您的 Azure 订阅 ID,并运行以下命令来部署 Azure 资源。 此过程可能需要几分钟才能完成。.\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId-
eventsPerMinute是生成的数据的输入速率。 在这种情况下,输入源每分钟生成 11 个事件。 - 可以在 Azure 门户 > 订阅中找到订阅 ID。
-
部署完成后,它会自动打开浏览器,可以在 Azure 门户中看到名为 ClickStream-Filter-rg-* 的资源组。 资源组包含以下五个资源:
资源类型 Name Description Azure 函数 点击流 生成点击流数据 事件中心 点击流 引入点击流数据以供使用 流分析作业 ClickStream-Filter 定义用于从点击流输入中提取 GET请求的查询Blob 存储 点击流 ASA 作业的输出目标 应用服务计划 点击流 Azure 函数的必备项 祝贺! 你已部署流式处理应用程序,以从网站点击流中提取请求。
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 Storage > 容器 > job-output 找到它。
Clickstream-RefJoin
如果要使用存储中的用户文件查找点击流的用户名,可以将点击流与参考输入联接,如以下体系结构:
假设已完成上一个示例的步骤,请运行以下命令以创建新的资源组:
将
$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
如果计划在将来使用此项目,可以跳过删除该项目,并暂时停止该作业。
后续步骤
若要了解 Azure 流分析,请继续阅读以下文章: