ウェブ分析に必要なデータウェアハウス / Data warehouse / DW で扱うデータは以下のようなものがある。
- HTTPD サーバのログ
- 売上履歴
- 顧客情報
- その他のデータベース
とりあえず 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年単位で分割するのが理想かな。
- ウェブクローラーのアクセスログ
- 人間のアクセスログ (分析に最も重要なもの)
- ステータスコード404のアクセスログ
- 上記以外のアクセスログ
データマート / Data mart / DM
分析項目に特化したデータベースである。(一般的には DW がアプリケーションに中立的であり、DM は特定アプリケーションに向けて構築されたデータベースだ。)
分析に最も重要な「人間のアクセスログ」からは指定のレコードを削除する。
削除指定できる項目:
- クライアントのIPアドレス
- リクエストのあったページ
- ユーザーエージェント
- リファラ
上記の項目に対する条件が含まれるレコードは DM から削除される。
DM の名前は仮称。
DW からセッションIDを付与して、ユーザー設定を行う。DW をさらに洗浄した感じ。
日別のビジター数とセッション数
- Dependent: 年月日
- Independent: ビジター数、セッション数
時間別のビジター数とセッション数
- Dependent: 時刻(0時〜23時の1時間毎で)
- Independent: ビジター数、セッション数
リクエストURLの集計。
- Dependent: リクエストURL
- Independent: ビュー、進入回数、離脱回数
ページの閲覧順序(クリック順序)
- Dependent: session ID
- Independent: path
ここからは DM を利用するアプリケーションの仕様を記す。
- ビジター数
- 訪問数
- ページ毎のビュー数
- ページ毎の訪問数
- 生データはあらかじめ年月日単位で分割して処理する予定だがひとつのファイルサイズが大きなサイズ(100 MB 以上)の場合でも効率よく処理したい
Date: 2008-01-21