あなたは1日に12㎞の山道を歩くことができますか。
僕はたぶん無理です。
ていうか会社の最寄り駅についてから約5分の道のりを走ることすらできないレヴェルの体力です。
例えば人類が進化して宇宙に進出したとして、そこに住む人たちもたぶんそんな山道を歩くことは出来なくなるんじゃないかな。
代わりになんか変な能力獲得しそうだけどw
宇宙 → 空気が振動しない → 声が伝わらない → テレパシー獲得
みたいな。
人も技術も環境やシチュエーションにあった進化をするものなのです。
というわけで、僕は今elggなる、SNSの構築用に進化したエンジンを用いて構築されたシステムのデータ解析&コンバート準備を進めております。データベースもそれ用に合わせているだろう割と特殊な形式をしています。
http://learn.elgg.org/en/2.0/index.html
データの持ち方に関してみた感じの特徴としては以下の感じ。
・テーブルをまたいだID(GUID)をもつ
ユーザ、グループ、投稿内容のようなSNSの主語、目的語となるようなデータは、テーブルをまたいだIDであるGUIDを持ちます。これは次に各特長に起因します。
・共通テーブルでの管理
SNSだと「誰が(主語)どんな内容をどのグループに(目的語)投稿した」といったデータや「誰が(主語)どのグループに(目的語)所属している」といったデータが必要となります。
これらのデータの多くはelggにおいては専用の格納テーブルを持たず、共通テーブルで管理されています。
この共通テーブルには「主語」に値するカラムと「目的語」に値するカラムが存在し、そこに前述のGUIDが入ってきます。おそらくいろんなカラムを作らなくてもいいように、という設計なんですかね。たしかに色々使いまわしが効きそう。
まあ、まだ解析も調査も途中なので今のところこんな感じです。
上司によるとNOSQLの考えに近いらしいです。
大容量を取り扱わざるを得ないSNSですから、高速化に適したデータ形式なんですかね。
というわけで、落とし方がわからなくなってきたので今回はここまで!