Analysera webbplatsloggar med hjälp av Azure Data Lake Analytics

Lär dig hur du analyserar webbplatsloggar med hjälp av Data Lake Analytics, särskilt för att ta reda på vilka referenter som stötte på fel när de försökte besöka webbplatsen.

Viktigt

Azure Data Lake Analytics tillbaka den 29 februari 2024. Läs mer med det här meddelandet.

För dataanalys kan din organisation använda Azure Synapse Analytics eller Microsoft Fabric.

Förutsättningar

Anslut till Azure

Innan du kan skapa och testa U-SQL-skript måste du först ansluta till Azure.

Så här ansluter du till Data Lake Analytics

  1. Öppna Visual Studio.
  2. Välj Data Lake-alternativ > och inställningar.
  3. Välj Logga in eller Ändra användare om någon har loggat in och följ instruktionerna.
  4. Välj OK för att stänga dialogrutan Alternativ och inställningar.

Bläddra bland dina Data Lake Analytics-konton

  1. Öppna Server Explorer från Visual Studio genom att trycka på CTRL+ALT+S.
  2. Gå till Server Explorer, expandera Azure och expandera sedan Data Lake Analytics. En lista över dina Data Lake Analytics-konton visas om det finns några. Du kan inte skapa Data Lake Analytics konton från studion. För att skapa ett konto, se Kom igång med Azure Data Lake Analytics med hjälp av Azure-portalen eller Kom igång med Azure Data Lake Analytics med hjälp av Azure PowerShell.

Utveckla U-SQL-program

Ett U-SQL-program är främst ett U-SQL-skript. Mer information om U-SQL finns i Kom igång med U-SQL.

Du kan lägga till användardefinierade operatorer i programmet. Mer information finns i Utveckla användardefinierade U-SQL-operatorer för Data Lake Analytics jobb.

Skapa och skicka ett Data Lake Analytics-jobb

  1. Välj Arkiv > Nytt > projekt.

  2. Välj typen U-SQL-projekt.

    nytt U-SQL Visual Studio-projekt

  3. Välj OK. Visual Studio skapar en lösning med en Script.usql-fil.

  4. Ange följande skript i filen 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;
    

    Information om U-SQL finns i Kom igång med Data Lake Analytics U-SQL-språk.

  5. Lägg till ett nytt U-SQL-skript i projektet och ange följande:

    // 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. Gå tillbaka till det första U-SQL-skriptet och ange ditt Analytics-konto bredvid knappen Skicka .

  7. Från Solution Explorer högerklickar du på Script.usql och väljer sedan Skapa skript. Kontrollera resultaten i fönstret Utdata.

  8. Välj Script.usqlfrån Solution Explorer och välj sedan Skicka skript.

  9. Kontrollera att Analytics-kontot är det konto där du vill köra jobbet och välj sedan Skicka. Resultat för skicka och jobblänk är tillgängliga i resultatfönstret för Data Lake-verktyg för Visual Studio när överföringen är klar.

  10. Vänta tills jobbet har slutförts. Om jobbet misslyckades saknar det troligtvis källfilen. Se avsnittet Krav i den här självstudien. Mer felsökningsinformation finns i Övervaka och felsöka Azure Data Lake Analytics-jobb.

    När jobbet har slutförts visas följande skärm:

    Data Lake Analytics analysera webbloggar webbplatsloggar

  11. Upprepa nu steg 7–10 för Script1.usql.

Visa jobbutdata

  1. Från Server Explorer expanderar du Azure, expanderar Data Lake Analytics, expanderar ditt Data Lake Analytics-konto, expanderar Lagringskonton, högerklickar på standardkontot Data Lake Storage och väljer sedan Utforskaren.
  2. Dubbelklicka på Exempel för att öppna mappen och dubbelklicka sedan på Utdata.
  3. Dubbelklicka på UnsuccessfulResponses.log.
  4. Du kan också dubbelklicka på utdatafilen i diagramvyn för jobbet för att navigera direkt till utdata.

Nästa steg

Om du vill komma igång med Data Lake Analytics med hjälp av olika verktyg, se: