昨日のQlik Senseでブログのアクセスログ分析試行の続きです。
今日はQlik Senseを使ってブログのアクセスログを分析する流れを、少し具体的に書いてみたいと思います。
アクセスログデータのロード
アクセスログファイルのデータを分析するためには、まずファイルの内容をQlik Senseにロードしなければなりません。
Qlik Senseでは、これについても簡単に実行できるインターフェースが用意されています。
単純な区切り文字入りのテキストデータファイルなどの場合は、ファイルをQlik Senseのウィンドウにドラッグ&ドロップするだけでデータ読み込み用のウィザードが起動され、そこで区切り文字や引用符の文字などを指定すればデータを読み込むことができます。
しかし今回は、異なるログファイルを繰り返しチェックすることになると思われますので、使い回しの効くロードスクリプトを作成することにしました。
この場合もロードスクリプトの作成画面にファイルをドラッグ&ドロップすると、以下のようなウィザードが表示されます(ウィザード画面の下半分には読み込むデータのサンプルが表示されています)。
ここで区切り文字や引用符の文字などを指定してウィザードを実行すると、以下のようなロードスクリプトが自動生成されます。
自動生成されたスクリプトではデータのフィールド名が行の先頭から順番に@1,@2,@3・・・と命名されますので、ここでは使いそうなフィールドだけわかりやすい名前になるように修正しました(手動での修正箇所はそれだけです)。
これでログファイル名の部分さえ書き換えて実行すれば、何度でも再利用することができます。
ちなみにアクセスログファイルは1日分で約7万行ありましたが、Qlik Senseはこれを数秒でロードします。
アクセスログデータの分析
上記のロードスクリプトによってQlik Senseにアクセスログのデータが読み込めましたので、次にそれを分析する画面を作成します。
ここでは、アクセス元の情報(IPアドレスなど)を存在件数が多い順に表示するテーブル(左側)と、ログの生データを表示するテーブル(右側)の2つを含む画面を作成しました。
このようにデータを簡単に集計・表示できるのがQlik Senseの特徴の1つです。
ここでは単純なテーブルしか使っていませんが、Qlik Senseでは他にも各種グラフや、集計軸を動的に変更できるピボットテーブルなど、様々なコンポーネントを使用することができます。
またQlik Senseのもう1つの特徴は、データを対話形式で動的に絞り込むことができることです。
例えば上の図の画面で、左側のテーブルの先頭にある一番件数が多いアクセス元である「66.249.79.102」が何者か知りたくなったとします。
そこで「66.249.79.102」の箇所をクリックすると、瞬時に以下のように「66.249.79.102」に該当するデータのみが絞り込まれた画面が表示されます。
ここで注目すべきは、右側のテーブルも左側のテーブルの選択状況に従って絞り込まれていることです。
今回の例では、Agentフィールド全てに「Googlebot」の名前が含まれていますので、これはGoogleのボットであろうと見当がつきました。
このように、高速なデータロード・集計・様々な形式での表示・インタラクティブな絞り込みなどを駆使してエンドユーザーが気になる部分を自ら発見し、掘り下げていくのがQlik Senseのデータ分析のやり方です。
私の場合はこれを使い、ブログに怪しいアクセス元からの大量アクセスが発生していないか、しばらく監視してみたいと思います。
今回は単純なテキストファイル(アクセスログファイル)の分析の例をご紹介しましたが、Excelファイルなどからもデータを読み込むこともできますし、その気になればデータベースに直接接続してデータをロードすることも可能です。
そう考えると応用範囲は無限大に広がります。最近はインターネット上にも様々なデータが公開されていますし、気になるデータがある方はこのQlik Senseを手に入れ、ぜひセルフサービス型のデータ分析にチャレンジしてみてください。