次の方法で共有


Azure Data Lake Analytics を使用して Web サイト ログを分析する

Data Lake Analytics を使用して Web サイト ログを分析する方法について説明します。特に、Web サイトにアクセスしようとしたときにエラーが発生した参照元を特定する方法について説明します。

重要

Azure Data Lake Analytics は、2024 年 2 月 29 日に廃止されました。 このお知らせでさらに学んでください。

データ分析の場合、組織は Azure Synapse Analytics 使用することも、Microsoft Fabric することもできます。

前提条件

  • Visual Studio 2015 または Visual Studio 2013

  • Visual Studio用Data Lakeツール

    Data Lake Tools for Visual Studio がインストールされると、Visual Studio の [ツール] メニューに Data Lake 項目が表示されます。

    U-SQL Visual Studio メニュー

  • Data Lake Analytics と Data Lake Tools for Visual Studioに関する基本的な知識です。 作業を開始するには、次を参照してください。

  • Data Lake Analytics アカウント。Azure Data Lake Analytics アカウントの作成を参照してください。

  • サンプル データをインストールします。 Azure portal で Data Lake Analytics アカウントを開き、左側のメニュー [サンプル スクリプト] を選択し、[サンプル データのコピー] 選択します。

Azure に接続する

U-SQL スクリプトをビルドしてテストする前に、まず Azure に接続する必要があります。

Data Lake Analytics に接続するには

  1. Visual Studio を開きます。
  2. Data Lake > オプションと設定を選択します。
  3. サインイン」または「ユーザー変更」を選択し、指示に従ってください。
  4. [OK] 選択して、[オプションと設定] ダイアログを閉じます。

Data Lake Analytics アカウントを閲覧するには

  1. Visual Studio で、Ctrl キー Alt キーを押しながら S キー 押して、サーバー エクスプローラーの を開きます。
  2. Server Explorerから、Azureを展開し、Data Lake Analyticsを展開します。 Data Lake Analytics アカウントがある場合は、そのアカウントの一覧が表示されます。 スタジオから Data Lake Analytics アカウントを作成することはできません。 アカウントを作成するには、「Azure portal を使用した 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 ユーザー定義演算子の開発」を参照してください。

Data Lake Analytics ジョブを作成して送信するには

  1. ファイル > 新しい > プロジェクトを選択します。

  2. U-SQL プロジェクトの種類を選択します。

    新しい U-SQL Visual Studio プロジェクト

  3. [OK] を選択. 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. Analytics アカウント がジョブを実行したい場所であることを確認し、[送信]を選択します。 提出の結果とジョブリンクは、提出が完了すると、Data Lake Tools for Visual Studio の結果ウィンドウで使用できます。

  10. ジョブが正常に完了するのを待つ。 ジョブが失敗した場合、ソース ファイルが見つからない可能性が最も高くなります。 このチュートリアルの「前提条件」セクションを参照してください。 トラブルシューティングの詳細については、「Azure Data Lake Analytics ジョブのの監視とトラブルシューティング」を参照してください。

    ジョブが完了すると、次の画面が表示されます。

    Data Lake Analytics はウェブログやウェブサイトのログを分析します

  11. 次に、Script1.usqlに対して手順 7 から 10 を繰り返します。

ジョブの出力を表示するには

  1. Server Explorerから、Azure展開し、Data Lake Analyticsを展開し、自分の Data Lake Analytics アカウントを展開し、ストレージ アカウントを展開して、既定の Data Lake Storage アカウントを右クリックし、Explorerを選択します。
  2. サンプル をダブルクリックしてフォルダを開き、その後、Outputsをダブルクリックします。
  3. UnsuccessfulResponses.logをダブルクリックします。
  4. ジョブのグラフ ビュー内の出力ファイルをダブルクリックして、出力に直接移動することもできます。

次のステップ

さまざまなツールを使用して Data Lake Analytics の使用を開始するには、次を参照してください。