アクセスログ解析ソフトウェアの開発

ウェブサイトから何がわかるのか 〜 自力で Web Analytics

Contents

データウェアハウスの構築

ウェブ分析に必要なデータウェアハウス / Data warehouse / DW で扱うデータは以下のようなものがある。

とりあえず HTTPD サーバのログ(以下、生ログ)を分析ソフトウェアが処理しやすいように表形式のデータに変換して、それをデータ ウェアハウスとする。

データの保管は RDBMS を使用する。

前処理

生ログファイルは DW にインポートする前に年月日単位で分割しておく。

データの洗浄/クレンジング

データのノーマライズ

DW には以下のフィールドがある。

  • IPアドレス
  • アクセス時刻
  • リクエスト パス
  • リクエスト クエリ
  • ブラウザ
  • プラットフォーム
  • ステータス コード
  • HTTP メソッド
  • HTTP プロトコル(バージョン含む)
  • リファラー
  • リファラー ホスト
  • リファラー パス
  • リファラー クエリ

未定のもの

  • ビジターID (IPアドレス:ユーザーエージェント)
  • ブラウザ
  • プラットフォーム
  • 検索キーワード (リファラー クエリから抽出)
  • セッションID
  • アクセス年月日 (YYYY-MM-DD)
  • アクセス時間 (HH:MM:SS)

ノーマライズ ルール

IPアドレス string
逆引きされていないならそのまま。
アクセス時刻
年は4桁の数字、月は2桁の数字、日は2桁の数字。時、分、秒はそれぞれ2桁の数字。
リクエスト パス
リクエスト リソースのディレクトリまたはファイル名まで
リクエスト クエリー
リクエスト リソースのクエリ
ブラウザ
クライアントのブラウザの名称。推定不能の場合、Unknown。
プラットフォーム
クライアントのOSでデバイス環境。推定不能の場合、Unknown。
ステータス コード
数字
HTTP メソッド
生ログからそのまま
HTTP プロトコルとバージョン
生ログからそのまま
リファラー ホスト
リファラ文字列から抽出したホスト名。逆引きでホスト名を取得。
リファラー パス
リファラ文字列から抽出した path
リファラー クエリー
リファラ文字列から抽出した query

ユーザの設定

リクエストURI、リファラーを置換ルールを設定する事で書き換えることができる。

データモデル

スター スキーマが良さそう。ファクト テーブルは上記のフィールドとビジター数などを定義する。ディメンション テーブルも基本は上記のフィールドそのままかな。

ファクト テーブル

  • fact_key (レコード番号)
  • IPアドレス
  • (ホスト名)
  • 秒 (リクエスト順序の判定に必要かもしれない程度なので未定)
  • リクエスト URI - リーソース パス
  • HTTP メソッド
  • HTTP ステータスコード
  • プロトコル(バージョン含む)
  • リファラ ホスト
  • リファラ パス
  • リファラ クエリ
  • ユーザ エージェント

ユーザ エージェントはブラウザとプラットフォームに分割したいが、ウェブ クローラの扱いをどうするか検討中。

ファクトテーブルの最大レコード数やデータベースのサイズは未定。大きくても1年単位で分割するのが理想かな。

4つの DW(未定)

  • ウェブクローラーのアクセスログ
  • 人間のアクセスログ (分析に最も重要なもの)
  • ステータスコード404のアクセスログ
  • 上記以外のアクセスログ

データマートの構築

データマート / Data mart / DM

分析項目に特化したデータベースである。(一般的には DW がアプリケーションに中立的であり、DM は特定アプリケーションに向けて構築されたデータベースだ。)

データの洗浄

分析に最も重要な「人間のアクセスログ」からは指定のレコードを削除する。

削除指定できる項目:

  • クライアントのIPアドレス
  • リクエストのあったページ
  • ユーザーエージェント
  • リファラ

上記の項目に対する条件が含まれるレコードは DM から削除される。 [1]

DM の仕様/スキーマ

DM の名前は仮称。

basic

DW からセッションIDを付与して、ユーザー設定を行う。DW をさらに洗浄した感じ。

daily visitors

日別のビジター数とセッション数

  • Dependent: 年月日
  • Independent: ビジター数、セッション数

hourly visitors

時間別のビジター数とセッション数

  • Dependent: 時刻(0時〜23時の1時間毎で)
  • Independent: ビジター数、セッション数

page monitor

リクエストURLの集計。

  • Dependent: リクエストURL
  • Independent: ビュー、進入回数、離脱回数

clickstream

ページの閲覧順序(クリック順序)

  • Dependent: session ID
  • Independent: path

アプリケーション

ここからは DM を利用するアプリケーションの仕様を記す。

基礎的な集計

トレンド分析

パラメーター

課題

用語解説

データウェアハウス/data warehouse/DW/DWH
http://www.atmarkit.co.jp/aig/04biz/dwh.html
データマート/data mart/datamart/DM
http://www.atmarkit.co.jp/aig/04biz/datamart.html
独立変数/説明変数/Independent variables
原因に当たるもの。影響を与える変数。従属変数を説明するもの。 Dependent and independent variables
従属変数/目的変数/Dependent variables
結果に当たるもの。影響を受ける変数。予測/集計したい変数。 Dependent and independent variables

Footnotes

[1]削除するわけは分析の計算量を減らしたいから。

Date: 2008-01-21

スポンサード リンク