雑記

mixiに書いている日記の代わりだったりします。

2006/05/05

PHPとPerlとMySQLと(2)

ということで、次はログをサマライズするツールを作ってみる。Apacheのログは標準なので、こんな感じのコードを作ってみた。入出力のファイルを指定して、コマンドラインとして起動する。Webサーバで動作させても保証できません(動くかもしれないが、試していない)。すると、出力側のファイルが、今回作成するテーブルに入力できるようになっている。

本来は、テーブル設計をきちんとやるべきなのだが、今回は苦心の末、こんな感じにまとめてみた。異論はあると思うけれど、とりあえず、これだけのデータがそろえば、あとはSQLをどうするか、というだけの問題に帰着できるはず(ただし、リファラについては、今回は解析の対象としていないため、PerlのツールではNULLが格納されるようになっている。カラムとしては存在する)。

あとは、以下のコマンドで、ファイルが読み込まれ、テーブルに登録される。

load data infile "出力ファイル名" into table logs;

と、ここまでくれば、あとはPHPでSQL文を書いていけばよいと言うことになるわけで、とりあえず、全レコードの件数をカウントするスクリプト用意してみる。あとは、これもhtdocsに入れて実行してみる。うまくいったら、あとはSQLの切り方次第ということになる。でも、まだ作ってないんだよね。そのうち作らなきゃ。