使用 Azure Data Lake Analytics 分析网站日志

了解如何使用 Data Lake Analytics 分析网站日志,尤其是找出尝试访问网站时哪些引用发生了错误。

重要

Azure Data Lake Analytics于 2024 年 2 月 29 日停用。 通过此公告了解更多信息。

对于数据分析,组织可以使用 Azure Synapse AnalyticsMicrosoft Fabric

先决条件

连接到 Azure

必须先连接到 Azure,才能生成并测试任意 U SQL 脚本。

连接到 Data Lake Analytics

  1. 打开 Visual Studio。
  2. 选择 “Data Lake > 选项和设置”。
  3. 选择 “登录”或“ 更改用户 ”(如果有人已登录),并按照说明进行操作。
  4. 选择“ 确定 ”关闭“选项和设置”对话框。

浏览 Data Lake Analytics 帐户

  1. 从 Visual Studio 中,通过按 CTRL+ALT+S打开“服务器资源管理器”
  2. 在“服务器资源管理器”中,展开“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 的详细信息,请参阅 Get started with U-SQL(U-SQL 入门)。

可以向应用程序中添加用户定义的运算符。 有关详细信息,请参阅 Develop U-SQL user defined operators for Data Lake Analytics jobs(为 Data Lake Analytics 作业开发 U-SQL 用户定义的运算符)。

创建并提交 Data Lake Analytics 作业

  1. 选择 “文件 > 新建 > 项目”。

  2. 选择“U-SQL 项目”类型。

    新建 U-SQL Visual Studio 项目

  3. 选择“确定” 。 Visual Studio 将创建包含 Script.usql 文件的解决方案。

  4. 在 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,请参阅 Get started with Data Lake Analytics U-SQL language(Azure Data Lake Analytics U-SQL 语言入门)。

  5. 向项目中添加新的 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();
    
  6. 切换回“提交”按钮旁边的第一个 U-SQL 脚本,指定 Analytics 帐户。

  7. 解决方案资源管理器,右键单击“Script.usql”,然后选择“生成脚本”。 验证“输出”窗格中的结果。

  8. 解决方案资源管理器,右键单击“Script.usql”,然后选择“提交脚本”。

  9. 验证 “分析帐户 ”是要在其中运行作业的帐户,然后选择“ 提交”。 完成提交后,“适用于 Visual Studio 的 Data Lake 工具结果”窗口中会出现提交结果和作业链接。

  10. 等待作业成功完成。 如果作业失败,则很可能缺少源文件。 请参阅本教程的先决条件部分。 有关故障排除的详细信息,请参阅监视 Azure Data Lake Analytics作业并对其进行故障排除

    作业完成后,将看到以下屏幕:

    Data Lake Analytics 分析网络日志网站日志

  11. 现在请为 Script1.usql 重复步骤 7-10。

查看作业输出

  1. “服务器资源管理器”中,依次展开“Azure”、“Data Lake Analytics”、“Data Lake Analytics帐户”和“存储帐户”,右键单击默认Data Lake Storage帐户,然后选择“资源管理器”。
  2. 双击“示例”打开文件夹,并双击“输出”
  3. 双击“UnsuccessfulResponses.log”
  4. 也可以双击该作业图形视图中的输出文件直接导航到输出。

后续步骤

若要借助不同的工具开始使用 Data Lake Analytics,请参阅: