使用 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 的详细信息,请参阅 U-SQL 入门

可以向应用程序添加额外的用户定义运算符。 有关详细信息,请参阅 为 Data Lake Analytics 作业开发 U-SQL 用户定义的运算符

创建并提交数据湖分析任务

  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,请参阅 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 分析 Weblog 网站日志

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

查看任务输出

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

后续步骤

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