Analýza webových protokolů pomocí Azure Data Lake Analytics

Zjistěte, jak analyzovat protokoly webu pomocí Data Lake Analytics, zejména pokud chcete zjistit, kteří referenční osoby narazily na chyby, když se pokusili web navštívit.

Důležité

Azure Data Lake Analytics vyřazena 29. února 2024. Další informace najdete v tomto oznámení.

Pro analýzu dat může vaše organizace používat Azure Synapse Analytics nebo Microsoft Fabric.

Požadavky

Připojení k Azure

Než budete moct sestavovat a testovat skripty U-SQL, musíte se nejdřív připojit k Azure.

Postup připojení k Data Lake Analytics

  1. Otevřete sadu Visual Studio.
  2. Vyberte Možnosti a nastavení Data Lake>.
  3. Vyberte Přihlásit se nebo Změnit uživatele , pokud se někdo přihlásil, a postupujte podle pokynů.
  4. Výběrem OK zavřete dialogové okno Možnosti a nastavení.

Procházení účtů Data Lake Analytics

  1. V sadě Visual Studio otevřete Průzkumníka serveru stisknutím kombinace kláves CTRL+ALT+S.
  2. V Průzkumníku serveru rozbalte položku Azure a pak rozbalte položku Data Lake Analytics. Zobrazí se seznam účtů Data Lake Analytics, pokud nějaké máte. Ze studia nemůžete vytvářet účty Data Lake Analytics. Pokud chcete vytvořit účet, informace najdete v tématu Začínáme s Azure Data Lake Analytics pomocí webu Azure Portal nebo Začínáme s Azure Data Lake Analytics pomocí Azure PowerShell.

Vývoj aplikace U-SQL

Aplikace U-SQL je většinou skript U-SQL. Další informace o U-SQL najdete v tématu Začínáme s U-SQL.

Do aplikace můžete přidat další uživatelem definované operátory. Další informace najdete v tématu Vývoj operátorů definovaných uživatelem U-SQL pro úlohy Data Lake Analytics.

Postup vytvoření a odeslání úlohy Data Lake Analytics

  1. Vyberte Nový projekt souboru >>.

  2. Vyberte typ Projekt U-SQL.

    Nový projekt U-SQL Visual Studio

  3. Vyberte OK. Visual Studio vytvoří řešení se souborem Script.usql.

  4. Do souboru Script.usql zadejte následující skript:

    // 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;
    

    Pokud chcete porozumět U-SQL, přečtěte si téma Začínáme s jazykem Data Lake Analytics U-SQL.

  5. Přidejte do projektu nový skript U-SQL a zadejte následující:

    // 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. Přepněte zpět na první skript U-SQL a vedle tlačítka Odeslat zadejte svůj účet Analytics.

  7. V Průzkumník řešení vyberte pravým tlačítkem script.usql a pak vyberte Sestavit skript. Ověřte výsledky v podokně Výstup.

  8. V Průzkumník řešení vyberte pravým tlačítkem script.usql a pak vyberte Odeslat skript.

  9. Ověřte, že účet Analytics je ten, ve kterém chcete úlohu spustit, a pak vyberte Odeslat. Jakmile je odeslání hotové, v okně Výsledky nástrojů Data Lake pro Visual Studio jsou dostupné výsledky odeslání a odkaz na úlohu.

  10. Počkejte, až se úloha úspěšně dokončí. Pokud úloha selhala, pravděpodobně chybí zdrojový soubor. Projděte si část Požadavky v tomto kurzu. Další informace o řešení potíží najdete v tématu Monitorování a řešení potíží s úlohami Azure Data Lake Analytics.

    Po dokončení úlohy se zobrazí následující obrazovka:

    Analýza protokolů webu weblogů data Lake Analytics

  11. Teď opakujte kroky 7 až 10 pro Script1.usql.

Postup zobrazení výstupu úlohy

  1. V Průzkumníku serveru rozbalte Azure, rozbalte Data Lake Analytics, rozbalte Data Lake Analytics účet, rozbalte Účty úložiště, klikněte pravým tlačítkem na výchozí Data Lake Storage účet a pak vyberte Průzkumník.
  2. Poklikáním na Ukázky otevřete složku a potom poklikejte na Výstupy.
  3. Poklikejte na UnsuccessfulResponses.log.
  4. Můžete také poklikáním na výstupní soubor v zobrazení grafu úlohy přejít přímo na výstup.

Další kroky

Pokud chcete začít s Data Lake Analytics pomocí různých nástrojů, projděte si témata: