2009年4月17日金曜日

Google App Engine考察、データストア

SQLの経験が浅いため、私のデータ構造・処理の考え方は下記に近い。先日、連想配列に関する記事を上梓したが、Perlにとってクラス(インスタンス)とは連想配列と同義である。

前職のメイン業務だったアクセス解析では、一人のユーザが複数のページを見たり、コンバージョンや広告流入といった行動属性を元にログを集計する。テーブル形式のデータ構造では親子関係が表現しづらいので、私はPerlを使って次のようにデータを処理していた。

  1. 連想配列の器を用意する
  2. 分析に必要な情報を配列・連想配列に格納
  3. ユーザIDをキーに、上記の構造体を値に、連想配列にセットしていく
  4. これをforeachでぶん回し、結果をカウントして出力する
まさに上記記事のクラスと同じことである。これだと、レコードの数に制限はなくなるし、親子関係も自由に拡張できる。同僚の多くは、SQLを使って複数のテーブルをjoinし、一時テーブルを作成しながら処理していた。しかし、今でも私のやり方のほうが効率的だと思っている。

なんでこんな話をしているか、それはGoogle App EngineではPythonとデータストアというAPI(クラス)を使ってデータの保存・取り出しを実装するため、頭を整理してからPythonの勉強をするためである。

0 件のコメント:

コメントを投稿