了解如何使用 Data Lake Analytics 分析网站日志,尤其是在发现哪些引用者尝试访问该网站时遇到错误。
重要
Azure Data Lake Analytics 于 2024 年 2 月 29 日停用。 了解更多信息,请查看此公告。
对于数据分析,你的组织可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
先决条件
Visual Studio 2015 或 Visual Studio 2013。
用于 Visual Studio 的 Data Lake 工具。
安装用于 Visual Studio 的 Data Lake 工具后,Visual Studio 的“工具”菜单中会显示 Data Lake 项:
Data Lake Analytics 和用于 Visual Studio 的 Data Lake 工具的基础知识。 若要开始,请参阅:
Data Lake Analytics 帐户。 请参阅 创建 Azure Data Lake Analytics 帐户。
安装示例数据。 在 Azure 门户中,打开 Data Lake Analytics 帐户,然后在左侧菜单中选择 “示例脚本 ”,然后选择“ 复制示例数据”。
连接到 Azure
必须先连接到 Azure,然后才能生成和测试任何 U-SQL 脚本。
连接到 Data Lake Analytics
- 打开 Visual Studio。
- 选择 Data Lake > 选项和设置。
- 选择 “登录”或 “更改用户 ”(如果有人已登录),然后按照说明进行作。
- 选择 “确定 ”以关闭“选项和设置”对话框。
浏览您的 Data Lake Analytics 帐户
- 在 Visual Studio 中,按 Ctrl+Alt+S 打开服务器资源管理器。
- 在 服务器资源管理器中,展开 Azure,然后展开 Data Lake Analytics。 如果有任何帐户,则会看到 Data Lake Analytics 帐户的列表。 无法从工作室创建 Data Lake Analytics 帐户。 若要创建帐户,请参阅 Azure 门户的 Azure Data Lake Analytics 入门,或使用 Azure PowerShell 开始使用 Azure Data Lake Analytics。
开发 U-SQL 应用程序
U-SQL 应用程序主要是 U-SQL 脚本。 若要了解有关 U-SQL 的详细信息,请参阅 U-SQL 入门。
可以向应用程序添加额外的用户定义运算符。 有关详细信息,请参阅 为 Data Lake Analytics 作业开发 U-SQL 用户定义的运算符。
创建并提交数据湖分析任务
选择 “文件 > 新建 > 项目”。
选择 U-SQL 项目类型。
选择“确定”。 Visual Studio 使用 Script.usql 文件创建解决方案。
在 Script.usql 文件中输入以下脚本:
// Create a database for easy reuse, so you don't need to read from a file very time. CREATE DATABASE IF NOT EXISTS SampleDBTutorials; // Create a Table valued function. TVF ensures that your jobs fetch data from he weblog file with the correct schema. DROP FUNCTION IF EXISTS SampleDBTutorials.dbo.WeblogsView; CREATE FUNCTION SampleDBTutorials.dbo.WeblogsView() RETURNS @result TABLE ( s_date DateTime, s_time string, s_sitename string, cs_method string, cs_uristem string, cs_uriquery string, s_port int, cs_username string, c_ip string, cs_useragent string, cs_cookie string, cs_referer string, cs_host string, sc_status int, sc_substatus int, sc_win32status int, sc_bytes int, cs_bytes int, s_timetaken int ) AS BEGIN @result = EXTRACT s_date DateTime, s_time string, s_sitename string, cs_method string, cs_uristem string, cs_uriquery string, s_port int, cs_username string, c_ip string, cs_useragent string, cs_cookie string, cs_referer string, cs_host string, sc_status int, sc_substatus int, sc_win32status int, sc_bytes int, cs_bytes int, s_timetaken int FROM @"/Samples/Data/WebLog.log" USING Extractors.Text(delimiter:' '); RETURN; END; // Create a table for storing referrers and status DROP TABLE IF EXISTS SampleDBTutorials.dbo.ReferrersPerDay; @weblog = SampleDBTutorials.dbo.WeblogsView(); CREATE TABLE SampleDBTutorials.dbo.ReferrersPerDay ( INDEX idx1 CLUSTERED(Year ASC) DISTRIBUTED BY HASH(Year) ) AS SELECT s_date.Year AS Year, s_date.Month AS Month, s_date.Day AS Day, cs_referer, sc_status, COUNT(DISTINCT c_ip) AS cnt FROM @weblog GROUP BY s_date, cs_referer, sc_status;
若要了解 U-SQL,请参阅 Data Lake Analytics U-SQL 语言入门。
向项目添加新的 U-SQL 脚本并输入以下内容:
// Query the referrers that ran into errors @content = SELECT * FROM SampleDBTutorials.dbo.ReferrersPerDay WHERE sc_status >=400 AND sc_status < 500; OUTPUT @content TO @"/Samples/Outputs/UnsuccessfulResponses.log" USING Outputters.Tsv();
切换回第一个 U-SQL 脚本,然后在 “提交 ”按钮旁边,指定 Analytics 帐户。
在 解决方案资源管理器中,右键单击 Script.usql,然后选择“ 生成脚本”。 在“输出”窗格中验证结果。
在 解决方案资源管理器中,右键单击 Script.usql,然后选择“ 提交脚本”。
验证 分析账户 是否是您希望运行作业的账户,然后选择提交。 当提交完成后,提交结果和作业链接可在 Visual Studio 的 Data Lake 工具结果窗口中查看。
等待作业成功完成。 如果作业失败,则很可能缺少源文件。 请参阅本教程的“先决条件”部分。 有关故障排除的详细信息,请参阅 监视和排查 Azure Data Lake Analytics 作业问题。
作业完成后,会看到以下屏幕:
现在对 Script1.usql 重复步骤 7- 10。
查看任务输出
- 在服务器资源管理器中,展开Azure,展开Data Lake Analytics,展开你的 Data Lake Analytics 帐户,展开存储帐户,右键单击默认的 Data Lake Storage 帐户,然后选择Explorer。
- 双击 “示例 ”以打开文件夹,然后双击“ 输出”。
- 双击 UnsuccessfulResponses.log。
- 还可以双击作业图形视图中的输出文件,以便直接导航到输出。
后续步骤
若要使用不同的工具开始使用 Data Lake Analytics,请参阅: