Azure Data Lake Analytics'i kullanarak Web sitesi günlüklerini çözümleme

Özellikle web sitesini ziyaret etmeye çalışan hangi başvuranların hatayla karşılaştığını bulmak için Data Lake Analytics kullanarak web sitesi günlüklerini analiz etmeyi öğrenin.

Önemli

Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuru ile daha fazla bilgi edinin.

Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.

Önkoşullar

Azure'a Bağlanma

U-SQL betiklerini derleyip test etmeden önce Azure'a bağlanmanız gerekir.

Data Lake Analytics'e bağlanmak için

  1. Visual Studio'yu açın.
  2. Data Lake > Seçenekleri ve Ayarları'nı seçin.
  3. Oturum Aç'ı seçin veya birisi oturum açtıysa Kullanıcıyı Değiştir'i seçin ve yönergeleri izleyin.
  4. Seçenekler ve Ayarlar iletişim kutusunu kapatmak için Tamam'ı seçin.

Data Lake Analytics hesaplarınıza göz atmak için

  1. Visual Studio'dan CTRL+ALT+S tuşlarına basarak Sunucu Gezgini'ne gidin.
  2. Sunucu Gezgini'nden, Azure seçeneğini ve ardından Data Lake Analytics seçeneğini genişletin. Varsa Data Lake Analytics hesaplarınızın listesini görürsünüz. Stüdyodan Data Lake Analytics hesapları oluşturamazsınız. Hesap oluşturmak için bkz. Azure portal kullanarak Azure Data Lake Analytics kullanmaya başlama veya Azure PowerShell kullanarakAzure Data Lake Analytics kullanmaya başlama.

U-SQL uygulaması geliştirme

U-SQL uygulaması çoğunlukla bir U-SQL betiğidir. U-SQL hakkında daha fazla bilgi edinmek için bkz. U-SQL'i kullanmaya başlama.

Uygulamaya kullanıcı tanımlı ek işleçler ekleyebilirsiniz. Daha fazla bilgi için bkz. Data Lake Analytics işler için U-SQL kullanıcı tanımlı işleçler geliştirme.

Data Lake Analytics işi oluşturma ve gönderme

  1. Dosya > Yeni > Proje'yi seçin.

  2. U-SQL Projesi türünü seçin.

    yeni U-SQL Visual Studio projesi

  3. Tamam’ı seçin. Visual Studio, Script.usql dosyasıyla bir çözüm oluşturur.

  4. Script.usql dosyasına aşağıdaki betiği girin:

    // 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'i anlamak için bkz. Data Lake Analytics U-SQL dilini kullanmaya başlama.

  5. Projenize yeni bir U-SQL betiği ekleyin ve aşağıdakileri girin:

    // 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. İlk U-SQL betiğine dönün ve Gönder düğmesinin yanında Analytics hesabınızı belirtin.

  7. Çözüm Gezgini'denScript.usql dosyasını sağ seçip Betik Oluştur'u seçin. Çıktı bölmesinde sonuçları doğrulayın.

  8. Çözüm Gezgini'denScript.usql dosyasını sağ seçip Betiği Gönder'i seçin.

  9. İşi çalıştırmak istediğiniz hesabın Analytics Hesabı olduğunu doğrulayın ve gönder'i seçin. Gönderim tamamlandığında, gönderme işleminin sonuçları ve iş bağlantısı Visual Studio için Data Lake Araçları içinde sunulur.

  10. İş başarıyla tamamlanana kadar bekleyin. İş başarısız olursa büyük olasılıkla kaynak dosya eksiktir. Bu öğreticinin Önkoşul bölümüne bakın. Daha fazla sorun giderme bilgisi için bkz. Azure Data Lake Analytics işlerini izleme ve sorunlarını giderme.

    İş tamamlandığında aşağıdaki ekranı görürsünüz:

    data lake analytics web günlüğü web sitesi günlüklerini analiz eder

  11. Şimdi Script1.usql için 7- 10 arası adımları yineleyin.

İş çıktısını görmek için

  1. Sunucu Gezgini'ndenAzure'ı genişletin, Data Lake Analytics genişletin, Data Lake Analytics hesabınızı genişletin, Depolama Hesapları'nı genişletin, varsayılan Data Lake Storage hesabına sağ tıklayın ve gezgin'i seçin.
  2. Klasörü açmak için Örnekler'e çift tıklayın ve ardından Çıkışlar'a çift tıklayın.
  3. UnsuccessfulResponses.log çift tıklayın.
  4. Doğrudan çıktıya gitmek için işin graf görünümündeki çıkış dosyasına çift tıklayabilirsiniz.

Sonraki adımlar

Farklı araçlar kullanarak Data Lake Analytics ile çalışmaya başlamak için bkz.