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

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

重要

Azure Data Lake Analyticsは、2024 年 2 月 29 日に廃止されました。 詳細については、このお知らせを参照してください。

データ分析の場合、organizationは Azure Synapse Analytics または Microsoft Fabric を使用できます。

前提条件

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. サーバー エクスプローラーで、 [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 を理解するには、「 チュートリアル: Azure 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]\(スクリプト.usql\) を右クリックし、[Build Script]\(スクリプトのビルド\) を選択します。 [出力] ウィンドウで結果を確認します。

  8. ソリューション エクスプローラーから Script.usql を右選択し、[スクリプトの送信] を選択します。

  9. Analytics アカウントがジョブを実行するアカウントであることを確認し、[送信] を選択します。 送信が完了すると、Data Lake Tools for Visual Studio の [結果] ウィンドウに送信結果とジョブのリンクが示されます。

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

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

    Data Lake Analytics による Web サイトのログ (weblogs) の分析

  11. 次に、 Script1.usqlの手順 7 ~ 10 を繰り返します。

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

  1. [サーバー エクスプローラー] で、[Azure] を展開し、[Data Lake Analytics] を展開し、Data Lake Analytics アカウントを展開し、[ストレージ アカウント] を展開し、既定のData Lake Storage アカウントを右クリックして、[エクスプローラー
  2. [サンプル] をダブルクリックしてフォルダーを開き、 [出力] をダブルクリックします。
  3. UnsuccessfulResponses.log をダブルクリックします。
  4. ジョブのグラフ ビューで出力ファイルをダブルクリックして、出力ファイルに直接移動することもできます。

次のステップ

さまざまなツールを使用して Data Lake Analytics の使用を開始する方法については、以下をご覧ください。